使用react-native-code-push插件来实现热更新的时候,会遇到一些问题。下面这个问题就让我差点崩溃了。
在测试 Production 和 Staging 是否会去检查各自环境下的bundle文件,我就遇到了混乱的问题。
有时候用 Release 打包出来的app会去检查 Staging 下的bundle文件。经过无数的排除,最终找到了原因。
因为项目用cocoapods来依赖react-native库,并且我把原来的project下的target删除掉了,然后重新创建了一个target。
编译的时候,系统提示警告:
Warning: The Copy Bundle Resources build phase contains this target's Info.plist file 'xxx/Info.plist'.
作为程序员,你懂得。我们从来不关心warning,只在乎crash。所以我就在在上面吃了一个大亏。
因为项目是根据编译环境自动去确定codepush的deployment key的,
上面的警告就是因为没有找到正确的info.plist的原因,导致$(CODEPUSH_KEY)的值不确定。所以就出现了开头所说的测试混乱的问题。
Tips:另外,切换编译的scheme后,必须将项目重新clean一遍,这样才能确保不会出现$(CODEPUSH_KEY)的值不确定的情况。
解决办法:
https://developer.apple.com/library/content/qa/qa1649/_index.html