以下为react-native项目在ios真机调试总结:
在mac的terminal进入react-native项目目录,执行react-native run-ios出现如下错误提示:unable to exec Xcode native xcrun(Permission deny),解决办法是执行sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
在终端通过命令查看可用的设备列表:xcrun simctl list devices
在终端通过命令指定运行的模拟器:react-native run-ios --simulator "iPhone 5"
在终端通过命令指定运行的设备:react-native run-ios --device "iPhone 5"
在终端执行react-native run-ios --device "iPhone 5"命令之后,完成react-app的编译,但是在最后安装到真机设备的时候失败,错误提示为:make sure you have ios-deploy installed globally
解决办法如下:sudo npm install -g ios-deploy --unsafe-perm=true (--allow-root)
安装应用到真机设备之后,点击应用启动的时候如果提示不受信任的应用开发者,解决办法为:设置-->通用-->描述文件与设备管理-->开发者应用-->信任应用即可
使用yarn下载依赖库的时候如果出现 An unexpected error occurred:"https://raw.githubusercontent.com/facebook... connect ECONNREFUSED 151.101.108.133:443"
解决办法如下:修改mac的hosts文件,命令:sudo vim /etc/hosts,拉到文件的最后,i(进入输入模式),增加199.232.68.133 raw.githubusercontent.com,按esc,进行命令模式,wq(保存并退出),sudo killall -HUP mDNSResponder修改立即生效
以下为react-native项目在Xcode打离线包总结:
1、打离线资源命令为:react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ./ios/bundle/main.jsbundle --assets-dest ./ios/bundle (如果ios目录下没有bundle文件夹则自己创建一个)
第一步完成之后在bundle目录下会生成一个main.jsbundle文件和一个assets文件夹
2、用Xcode打开react-native ios工程,然后将第一步的bundle文件夹拖动到Xcode的ios项目下,注意的是必须选择Creat folder references否则运行时将会报错,无法找到文件。
3、修改Appdelegate.m文件
4、如果遇到没有权限操作某一个文件或者文件夹,解决办法如下:
提示没有写权限,并让你试图去finder或者终端中修改它。
选中工程文件夹点右键,在 “显示简介"——>"共享与权限"——>"-+"号。 添加本用户(就是你登录的那个账号),授予读写权限,并点击下方的设置符号选择"应用到包含的项目",操作如下图:
如果下图点击小设置图标没任何显示,要先点击右边小锁进行解锁
5、Xcode报错误信息:No account for team "QMP96B5DPW". Add a new account in the Accounts preference pane or verify that your accounts have valid credentials.
原因:项目中的teamID未修改。
解决方法
搜索 QMP96B5DPW 并修改为自己的ID。
6、如果遇到react-native-wechat包的问题,参考另一篇文章:https://blog.csdn.net/chali1314/article/details/112534235
7、如果build successful,但是在运行的过程中提示如下错误
解决办法是查看target和test的development team是否一致,如果不一致,设置为一致
8、使用Xcode的run编译运行ipa文件的时候,发现build目录下只有debug文件,没有release文件,解决办法如下:
我们可以取消DEBUG模式,开启RELEASE发布模式,如下截图所示,
选择Product->Scheme->Edit Scheme,
下图可以选择Debug和Release两种模式,
这里我选择了Release,那么则默认没有定义Debug,这样就在发布程序的时候,节省了一些硬件设备的资源。