首先需要知道的終端命令(可能會用到来颤,文中可能不提,遇到問題可能用得上稠肘,燃燒吧 騷年8GΑ)
查看iOS設備:
在終端中輸入xcrun simctl list devices
檢驗設備鏈接,出現(xiàn)device則鏈接:
adb devices
真機調試服務轉接至谷歌開發(fā):
adb reverse tcp:8081 tcp:8081
查看端口是否被占用:
1项阴、netstat -anp tcp | grep 8081
2本讥、lsof -i:8081
查看配置信息(此處用于查看ip地址):
ifconfig
運行項目:
1.react-native run-ios --simulator "iPhone 8”
2.react-native run-ios --device "XXX"(xxx代表真機設備名字)
注:運行項目的命令在VS和webstorm中使用,如果沒有直接安裝鲁冯,直接從xcode運用也是可以的。推薦前兩者色查,可以看到比較多報錯信息薯演。
項目環(huán)境
"react": "16.3.1",
"react-native": "0.55.4"
注:由于是比較古老的項目,所以才會出現(xiàn)各種問題秧了,如果從頭開始做跨扮,估計不會出現(xiàn)這么多版本不兼容的問題,反正說多了都是淚验毡,跑個項目跑了兩天才跑起來衡创,牛逼(ma mai bi)。
出現(xiàn)問題
問題1
已有項目無法運行
嘗試解決:
1.刪除依賴晶通,重新npm install(各種依賴問題璃氢,并不是解決方法)
2.卡在install third party(估計是心塞住了,始終是無法install成功)
終端看進度 --verbose一直卡在13%狮辽,install你妹啊一也,牛逼(gun),網(wǎng)上大多數(shù)的copy高玩(**)工程師都是下面這個解決方法喉脖。然而并沒卵用
第一步:
終端: cd node_modules/react-native/scripts && ./ios-install-third-party.sh && cd ../../../
第二步:
終端:cd node_modules/react-native/third-party/glog-0.3.4/ && ../../scripts/ios-configure-glog.sh && cd ../../../../
3.最后椰苟,發(fā)現(xiàn)日志中的某個字眼,boost_1_63_0.tar.gz (問題解決)
惱羞成怒的我树叽,做最后的嘗試舆蝴,不成功我就跟著項目同歸于盡。
第一步:
進入文件夾:~/.rncache
第二步:
找到一臺你同事的電腦,也進入這個文件夾洁仗,把所有文件傳到我的電腦层皱,然后直接暴力替換。
第三步:
不用化身復仇者京痢,同歸于盡奶甘,編譯成功,卡在install third party也不出現(xiàn)了祭椰,后面一路通暢臭家。
第四步:
但是會報一個CFBundleShortVersionString什么版本號的,修改iOS項目中的info.plist文件中CFBundleShortVersionString
第五步:
項目運行成功的歡呼方淤,敲鑼打鼓钉赁,謝天謝地,拜關二哥
問題2
模擬器下出現(xiàn) ----- dyld: Library not loaded: @rpath/******.framework/******
Referenced from: /Users/******/Library/Developer/CoreSimulator/Devices/******/data/Containers/Bundle/Application/******/******.app/demo
Reason: no suitable image found. Did find:
/Users/******/Library/Developer/CoreSimulator/Devices/******/data/Containers/Bundle/Application/******/******.app/Frameworks/******.framework/******: no matching architecture in universal wrapper
解決:將此framework替換成兼容x86的架包
問題3
真機一直卡在Loading dependency graph, done.(ios rn可以運行但是很久才進入項目)
解決:
Xcode 里修改RCTWebSocketExecutor.m文件携茂,然后將其中的"localhost"改為你的電腦的IP地址你踩。兩個設備必須連接同一個網(wǎng)絡(需要連接同一個局域網(wǎng))。
問題4(此問題超綱讳苦,只是業(yè)務問題)
iOS推送無法獲取token带膜,估計是開發(fā)者中心證書配置有問題
問題5(此問題也超綱,也只是業(yè)務問題)
更新百度地圖后Variable has incomplete type 'void'
解決:修改build settings 的compile sources as的方式鸳谜,別看百度地圖的鬼文檔膝藕,別選Objective - C++。
最后