第二节: CodePush热更新问题

一:安装注册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变为发布状态;

后感:在此过程中肯定会遇到很多问题,网上大多数回答都不靠谱,注意分析源码,有针对的查找问题。

你可能感兴趣的:(第二节: CodePush热更新问题)