若是以前在模擬器調試過,換成真機運行的時候務必關閉模擬器;
須要修改的配置:react
Bundle Identifier 修改成: com.soho3qios
若是上來就運行的話,會報錯:npm
改完界面:json
修改以下:react-native
確認目標設備的系統版本一致:xcode
一樣也要確認Tests測試用例項目下的配置:測試
打開Info.plist文件;ui
值改成YES;spa
打開AppDelegate.m文件;修改jsCodeLocation 的引用位置爲咱們添加進來的jsbundle;
修改成:調試
jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"/main.ios" withExtension:@"jsbundle"];
目前爲止配置的基本差很少了,這個時候能夠點運行試試,但極有可能會出現如下錯誤:
好像是類庫導入的問題;
查看到報錯的文件位置:
是在測試用例下類庫缺失;
解決辦法:
新增:
解決完上邊問題,再次 CMD + R 運行,若是運行成功,便可在手機上看到模擬器運行時一樣界面;
離線運行須要打包後把jsbundle添加到項目中;同時,xcode中須要修改下配置;
文件中找到localhost,替換爲你的IP;
react-native bundle --entry-file index.js --bundle-output ./ios/bundle/main.ios.jsbundle --platform ios --assets-dest ./ios/bundle --dev false
在ios目錄下新建一個bundle文件夾,用於存放打包完的main.ios.jsbundle 和assets文件;
或者直接在package.json 中添加命令:
"bundle-ios": "react-native bundle --entry-file index.js --bundle-output ./ios/bundle/main.ios.jsbundle --platform ios --assets-dest ./ios/bundle --dev false"
接下來運行打包命令;
npm run bundle-ios
輸出jsbudle後在Xcode中添加進去;
直接拖進去,
選擇此項
再次運行,若是順利,便可成功打一個離線包,裝到手機上;
離線包模式下開啓Chrome調試會很慢,甚至load不出來;因此能夠打Release包;
具體設置: Product > Scheme > Edit Scheme
選擇Relesase
這種版本不會出現紅屏報錯;