美文网首页
iOS RN项目运行深坑

iOS RN项目运行深坑

作者: 小苏羿 | 来源:发表于2019-11-30 14:42 被阅读0次
首先需要知道的终端命令(可能会用到,文中可能不提,遇到问题可能用得上,燃烧吧 骚年!)

查看iOS设备:
在终端中输入xcrun simctl list devices

检验设备链接,出现device则链接:
adb devices

真机调试服务转接至谷歌开发:
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运用也是可以的。推荐前两者,可以看到比较多报错信息。

项目环境

"react": "16.3.1",
"react-native": "0.55.4"

注:由于是比较古老的项目,所以才会出现各种问题,如果从头开始做,估计不会出现这么多版本不兼容的问题,反正说多了都是泪,跑个项目跑了两天才跑起来,牛逼(ma mai bi)。

出现问题

问题1

已有项目无法运行

尝试解决:

1.删除依赖,重新npm install(各种依赖问题,并不是解决方法)
2.卡在install third party(估计是心塞住了,始终是无法install成功)

终端看进度 --verbose一直卡在13%,install你妹啊,牛逼(gun),网上大多数的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.最后,发现日志中的某个字眼,boost_1_63_0.tar.gz (问题解决)

恼羞成怒的我,做最后的尝试,不成功我就跟着项目同归于尽。
第一步:
进入文件夹:~/.rncache

第二步:
找到一台你同事的电脑,也进入这个文件夹,把所有文件传到我的电脑,然后直接暴力替换。

第三步:
不用化身复仇者,同归于尽,编译成功,卡在install third party也不出现了,后面一路通畅。

第四步:
但是会报一个CFBundleShortVersionString什么版本号的,修改iOS项目中的info.plist文件中CFBundleShortVersionString

第五步:
项目运行成功的欢呼,敲锣打鼓,谢天谢地,拜关二哥

问题2

模拟器下出现 ----- 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地址。两个设备必须连接同一个网络(需要连接同一个局域网)。

问题4(此问题超纲,只是业务问题)

iOS推送无法获取token,估计是开发者中心证书配置有问题

问题5(此问题也超纲,也只是业务问题)

更新百度地图后Variable has incomplete type 'void'
解决:修改build settings 的compile sources as的方式,别看百度地图的鬼文档,别选Objective - C++。

最后

总的来说,这是一次不错的经历。入坑出坑再自己跳进去,整得跟个非主流玩自残一样。也即将开始我的前端之路。iOS开发估计也是时候说再见了。处在高不成低不就的状况,这是大家的现状吗,既然说了就记录下吧,反正不会有人看。

相关文章

网友评论

      本文标题:iOS RN项目运行深坑

      本文链接:https://www.haomeiwen.com/subject/scsowctx.html