React Native 插曲 iOS真機(jī)調(diào)試(失敗解決)

這幾天残吩,打算把之前集合到原生項(xiàng)目中的React Native項(xiàng)目在真機(jī)上跑跑哥力,順便試下發(fā)布更新等,理清以后的發(fā)布流程筋栋。零远。苗分。結(jié)果,就一直卡在真機(jī)調(diào)試上了牵辣,明明在網(wǎng)絡(luò)上一堆摔癣,都是超簡單的替換localhost就行。纬向。結(jié)果結(jié)果择浊,試了好久,終于解決了逾条。

正常方案(React Native 0.29.0之前版本)

首先琢岩,你要讓調(diào)試用電腦和你的手機(jī)必須處于相同的 WiFi 網(wǎng)絡(luò)中下

  1. 打開 iOS 項(xiàng)目的 AppDelegate.m 文件

  2. 更改 jsCodeLocation 中的 localhost 改成你電腦的局域網(wǎng)IP地址(查看IP地址:點(diǎn)擊設(shè)置->網(wǎng)絡(luò)->就可以看到本機(jī)IP)

NSURL *jsCodeLocation;
jsCodeLocation = [NSURL URLWithString: @"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];
//
//  將localhost換成局域網(wǎng)中主機(jī)Mac的IP地址
jsCodeLocation = [NSURL URLWithString: @"http://10.10.10.60:8081/index.ios.bundle?platform=ios&dev=true"];
  1. 在 Xcode 中,選擇你的手機(jī)作為目標(biāo)設(shè)備师脂,Run 即可

可以通過晃動設(shè)備來打開開發(fā)菜單(重載担孔、調(diào)試等)

然后發(fā)覺江锨,我試了n久,一直失敗糕篇,提示無連接到服務(wù)器啄育。
感覺這個方法在iOS9之前應(yīng)該都是可以成功的。
原因如下:
Google后查證拌消,iOS9引入了新特性App Transport Security (ATS)挑豌。詳情:App Transport Security (ATS)
新特性要求App內(nèi)訪問的網(wǎng)絡(luò)必須使用HTTPS協(xié)議拼坎。
(下文提供解決方案)

React Native 0.29.0之后版本方案

React Native iOS在0.29.0版本中BundleURL加載方法做了重大改變浮毯,新增了RCTBundleURLProvider單例類專門處理BundleURL,使用NSUserDefaults保存配置信息泰鸡。

默認(rèn)加載方式

Debug模式下债蓝,執(zhí)行react-native-xcode.sh編譯腳本會自動獲取當(dāng)前網(wǎng)卡en0的IP地址,并打入App包中一個配置文件ip.txt盛龄,App運(yùn)行時會讀取ip文件饰迹,自動生成Developer Server URL,通過這種加載方式余舶,我們不再需要手動去把”localhost”改成Mac的IP了啊鸭,每次編譯都會讀取當(dāng)前最新的IP。

jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];

手動設(shè)置IP

RCTBundleURLProvider在接口中暴露了jsLocation屬性匿值,可以通過setJsLocation手動設(shè)置IP赠制。(如果只是本地調(diào)試的話,其實(shí)沒有必要手動設(shè)置哈挟憔,因?yàn)槟J(rèn)加載方式就回讀取當(dāng)前最新的IP)

//  調(diào)用前先設(shè)置IP
[[RCTBundleURLProvider sharedSettings] setJsLocation:@”10.10.10.60”];

App Transport Security 設(shè)置

上面兩種不同的方案主要是針對React Native不同版本做的區(qū)分钟些,,推薦使用第二種方案绊谭,比較簡單直接政恍。
不過如果是iOS9的話,估計(jì)上面的方案均沒有讓你真的調(diào)試成功达传,原因在于:
iOS9引入了新特性App Transport Security (ATS)篙耗。詳情:App Transport Security (ATS)
新特性要求App內(nèi)訪問的網(wǎng)絡(luò)必須使用HTTPS協(xié)議宪赶。(如果直接用IP地址發(fā)出http請求失敗的話大多數(shù)原因也是這個宗弯,同下解決辦法)

解決辦法:
需要在Info設(shè)置NSAppTransportSecurity的NSAllowsArbitraryLoads為true

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

效果如下:


NSAppTransportSecurity設(shè)置.png

花費(fèi)了幾天的時間弄真機(jī)測試和打包更新,因?yàn)榫W(wǎng)上查到的資料大多是以前的搂妻,而NSAppTransportSecurity又是iOS9的新特性罕伯,這個真的很重要哈,所以就作為一個插曲插進(jìn)原本有規(guī)劃的寫作叽讳,分享下追他,希望讀者不用走這歪路。岛蚤。邑狸。如果還是調(diào)試失敗的話歡迎留言討論下哈哈。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末涤妒,一起剝皮案震驚了整個濱河市单雾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌她紫,老刑警劉巖硅堆,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異贿讹,居然都是意外死亡渐逃,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進(jìn)店門民褂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茄菊,“玉大人,你說我怎么就攤上這事赊堪∶嬷常” “怎么了?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵哭廉,是天一觀的道長脊僚。 經(jīng)常有香客問我,道長遵绰,這世上最難降的妖魔是什么辽幌? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮街立,結(jié)果婚禮上舶衬,老公的妹妹穿的比我還像新娘。我一直安慰自己赎离,他們只是感情好逛犹,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著梁剔,像睡著了一般虽画。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上荣病,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天码撰,我揣著相機(jī)與錄音,去河邊找鬼个盆。 笑死脖岛,一個胖子當(dāng)著我的面吹牛朵栖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播柴梆,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼陨溅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了绍在?” 一聲冷哼從身側(cè)響起门扇,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎偿渡,沒想到半個月后臼寄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡溜宽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年吉拳,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坑质。...
    茶點(diǎn)故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡合武,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出涡扼,到底是詐尸還是另有隱情稼跳,我是刑警寧澤,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布吃沪,位于F島的核電站汤善,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏票彪。R本人自食惡果不足惜红淡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望降铸。 院中可真熱鬧在旱,春花似錦、人聲如沸推掸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谅畅。三九已至登渣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間毡泻,已是汗流浹背胜茧。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留仇味,地道東北人呻顽。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓雹顺,卻偏偏與公主長得像,于是被迫代替她去往敵國和親芬位。 傳聞我的和親對象是個殘疾皇子无拗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內(nèi)容