react-native 使用codepush静默热更新

新版的codepush已经集成到微软的 appcenter。
codepush有两种发布模式 一种 Staging 一种 Production,这里以Staging 演示
react-native版本:0.57.0
appcenter地址 :appcenterreact

须要appcenter的帐号,若是你有了微软、github 、google、facebook的帐号,能够直接登陆。若是没有那须要你注册上述几个的任何一个帐号。

登陆成功后,建立APP,这里以安卓为例

图片描述
选择 add new app
图片描述
填写完成 add new app
图片描述
建立
图片描述android

建立成功
图片描述git

开始安装一些须要的库github

appcenter的客户端npm

npm install -g appcenter-cli

在你的react-native项目根目录执行,安装codepush的库react-native

npm install --save react-native-code-push

由于codepush里面包含有native代码,安装完成后执行浏览器

react-native link react-native-code-push

安装完毕后,登陆appcenter,打开终端app

appcenter login

这个会打开浏览器,浏览器里面有个token,复制到终端回车便可登陆成功ide

查看 Deployment Key
终端执行函数

appcenter codepush deployment list -a <这里的参数就是上面图片中让记住-a后面的参数> -k

执行完毕后,会在终端输出
两个key name分别是 Staging、Production。这里咱们复制Staging的key。

切换到 android的代码 。打开

// 1. 导入包
import com.microsoft.codepush.react.CodePush;

public class MainApplication extends Application implements ReactApplication {

    private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
        ...
        //2.这里执行link的时候会自动生成
        @Override
        protected String getJSBundleFile() {
            return CodePush.getJSBundleFile();
        }

        @Override
        protected List<ReactPackage> getPackages() {
            // 3.用刚才上面复制的key替换下面的 deployment-key-here
            return Arrays.<ReactPackage>asList(
                new MainReactPackage(),
                new CodePush("deployment-key-here", MainApplication.this, BuildConfig.DEBUG)
            );
        }
    };
}

App.js代码

import codePush from "react-native-code-push";

class MyApp extends Component {
}
//使用codepush函数包装你的defaultApp。
MyApp = codePush(MyApp);

发布js到appcenter

appcenter codepush release-react -a <这里的参数就是上面图片中让记住-a后面的参数> -d Staging

发布成功后,在appcenter网页版里面能够看到。

到这里配置都已经ok了。 打包apk,这时候app就具备了热更新的能力, 每次修改好,使用 appcenter发布 app就会按照规则更新。默认的规则 app在启动的时候会静默检查更新,再下次app重启的时候,会静默安装更新。

相关文章
相关标签/搜索