起步
- 按照官网说明,npm.brew.cocoaPods一个都跑不了,这些东西安装不成功的原因大抵都是网络原因造成的,设置使用国内高校或是淘宝镜像基本可以解决。
- 接下来在react-native init xxx项目后,使用react-naitve run-ios后就出现了很多令人难受的大坑。
坑点1
问题:
使用xcode打开文件后,爆红提示"Command PhaseScriptExecution failed with a nonzero exit code"
原因:
Xcode10以后的版本,默认选中的最新的New Build System(Default),在这个编译系统的环境下,打包的CI脚本一直会报错。
(不知道是偶尔的情况还是一定会出现的情况)(是偶尔的情况)
解决方法:
解决办法:Xcode菜单栏选择File-- Workspace Setting,把new build system(Defalt)切换到 Legacy Build System 在模拟器上运行即可。
坑点2 (端口问题)
问题:
错误代码65,8081端口被占用
原因:
通过命令行查询得知是公司电脑监控软件的线程占用了8081端口,使用杀线程的命令,杀不完。
解决方法1(推荐暂时性需求使用):
在xcode内打开文件,在里面搜索8081关键字,然后全部改为9998,除去注释文件,应该是有3个文件,4处地点修改。修改后使用 react-native run-ios --port=9998命令,在9998端口上运行。
解决方法2:(推荐想要一劳永逸或者想多开RN的同学用)
使用0.6版本RN及之后版本的项目:
1.xcode开启你的项目,点击左侧目录最上面的,有你的项目名xcodeproj文件,右侧TARGETS中选中你的项目,在BulidPhases中找到Start Packager项,修改其中的PORT端口(默认8081)
2.在xcode搜索栏中搜索8081关键字,全部替换成你需要的端口即可。
使用0.59版本RN及之前版本的项目:
在xcode文件目录Libraries文件夹React.xcodeproj中,在右侧的Targets中选择中React,选择BuildPhases菜单栏,在底下的Start Packager选项中修改PORT端口
注:
启动后提示URL Bundle Error的话,看一下自己是否将项目文件中所有端口设置修改了,不然会连接不到已运行在本地修改后端口的PackagerServer服务的。
坑点3
问题:
启动过程中提示找不到reactxxx.h文件
原因:
react-native init时最后进行pod install的不成功(这个在我公司的电脑上试了好几次,没一次成功过的,推测是权限问题),丢失了依赖库文件
解决方法
进入项目根目录下的ios目录,pod install,如果还是提示pod install错误,到项目根目录下,sudo xcode-select --switch /Applications/Xcode.app
然后再进去pod installl
坑点4
问题:
Could not parse the simulator list output
原因:
更新版本后,没有通过xcode使用过模拟器
解决方法:
随便用个程序使用xcode在模拟器上运行后,再在加载RN程序即可
坑点5
问题:
更新xcode11.0之后,再运行RN,提示: Could not find iPhone X simulator
解决方法1:
在终端react-native run-ios命令后加:
--simulator="iPhone 11 Pro Max"
解决方法2:
- 从新React-native 一个项目,用xcode11打开其iOS目录下的xcworkspace,
- 在选择模拟器那里,点add additional Simulator
- 在菜单左下角点“+”,里面选择添加iPhoneX
(old)网上帖子说的在local-cli/runIOS/findMatchingSimulator.js 文件修改判断条件的语句 ,但是文件里莫得这些个东西,针对的问题也不是因为xcode11升级引起的