xcode升级到12之后,进行react-native打包并安装到设备上app启动闪退
观察闪退日志,如果原因是:Unknown argument type '__attribute__' in method -[RCTLinkingManager getInitialURL:reject:]. Extend RCTConvert to support this type
解决办法为:
项目/node_modules/react-native/React/Base/RCTModuleMethod.mm. (或者.m)文件
找到 static BOOL RCTParseUnused 这个方法
替换成
static BOOL RCTParseUnused(const char **input)
{
return RCTReadString(input, "__unused") || RCTReadString(input, "__attribute__((__unused__))") || RCTReadString(input, "__attribute__((unused))");
}
再次重新运行就可以了
如果启动之后出现[error][tid:com.facebook.react.JavaScript] Invariant Violation: requireNativeComponent: "BVLinearGradient" was not found in the UIManager.
解决办法如下:
查看xcodeproj的配置文件,查看general/frameworks libraries,and embedded content下的库是否都倒入正常,如果有不正常的重新再导入一次
mac下在terminal窗口执行react-native run-ios,出错,提示fsevents` unavailable (this watcher can only be used on Darwin)
原因是因为watchman版本过低,或者是环境出现错误,需要重新安装watchman。
安装办法为:
npm r -g watchman
brew install watchman
如果使用brew安装watchman提示brew command not found,则执行以下命令安装brew
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
配置ios app启动图标的步骤:
1、打开工程目录下的images.xcassets,然后选择appicon,选择右侧的iphone,准备3张图片,分辨率分别为120x120,180x180,1024x1024,然后将三张图片拖入相应的位置即可。
2、查看xcodeproj的配置文件,查看general/app icons and launch images,选择为appicon;
使用xcode导出ipa文件的步骤:
1、确保xcode工程配置好之后,先run看功能是否正常;
2、确定工程功能正常之后,打开xcode,选择product --- archive --- 选择distribute app ---development --- next --- 选择证书 --- export ---选择导出路径
备注:如果要上传到蒲公英测试,一定要选择add hoc,否则导出的ipa放到蒲公英上可能无法安装,但是选择add hoc就只有自己添加的uuid的指定设备才能安装,所以导出的时候最好选择enterprise,这样所有的设备都可以安装,导出的时候需要描述证书才行,描述证书需要去开发者账号下面生成,然后下载下来保存