一:安装注册CodePush,添加应用
1, npm install -g code-push-cli
2, code-push -v
3, code-push register
4, code-push login
5, code-push app add [APPNAME]
6, code-push app list
7, code-push deployment ls [APPNAME] -k
二:native 安装codepush相关库
1,npm install --save react-native-code-push (工程根目录安装,安装之后无需RN的package.json中再引入安装,当然你写了也没用,再npm install的时候此条目将会被自动删除);
2,react-native link react-native-code-push (此处注意,0.2X版本以上无需使用rpm,注意执行时appdelegate.m, jslocation, xcode.proj文件是否验证通过,如果没有,需在postlink.js中心修改查找路径,若出现不可知错误,注意使用版本是否正确);
三:Xcode引入
1,在Podfile中引入CodePush文件路径;
2,在appdelegate.m中,引入文件,并写入 NSURL *jsCodeLocation = nil; jsCodeLocation = [CodePush bundleURL];
3,在对应的地方引入 :
#ifdef DEBUG
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil]; //本地查找
#else
jsCodeLocation = [CodePush bundleURL]; //codepush服务查找
#endif
4,修改info.plist文件,注意版本号与codepush上推送的jsbundle文件的版本号一致,填写对应的Deployment Key ,允许相关网址使用http访问;
5, 在RN的app.js, 写上相应的更新代码(注意代码的正确性);
6,在RN 目录下执行 release-react [APPNAME] ios —t 1.0.10 —dev true —d Staging —des "Test12" —mandatory true , 将生成的jsbundle文件拖入工程之中;
7,运行XCODE工程,观察控制台,如若如果发现Checking for update,说明之前步骤均正确,如若出现App is up to date,则说明热更新成功;若没出现具体问题,具体分析;
*****,测试通过后执行:code-push promote [APPNAME] Staging Production 将bundle变为发布状态;
后感:在此过程中肯定会遇到很多问题,网上大多数回答都不靠谱,注意分析源码,有针对的查找问题。