React Native热更新部署/热更新-CodePush

配置准备步骤

安装Code-Push的命令行工具:

npm install -g code-push-cli


如果没有注册过Code-Push,则需要使用 code-push register  进行注册

注册过则需要使用 code-push login 进行登录

最后注册 APP 到 Code-Push服务器:

code-push app add <appName>  android react-nativecode2.png


注册完成之后会返回一套deployment key,该key在后面步骤中会用到(复制保存到不易丢失的地方)

集成CodePush SDK

Android

第一步:在项目中安装 react-native-code-push插件,终端进入你的项目根目录然后运行

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


第二步:在Android project中安装插件。

CodePush提供了两种方式:RNPM 和 Manual,本次演示所使用的是RNPM。

运行   npm i -g rnpm,来安装RNPM


第三步: 运行 rnpm link react-native-code-push 。这条命令将会自动帮我们在anroid文件中添加好设置。

在终端运行此命令之后,终端会提示让你输入deployment key,这时需将你的deployment Staging key输入进去。

code3.png



第四步:    检查在 android/app/build.gradle文件里面是否有如下代码

apply from: "../../nodemodules/react-native-code-push/android/codepush.gradle"

检查在/android/settings.gradle中  

include ':react-native-code-push'

project(':react-native-code-push').projectDir = new File(rootProject.projectDir, '../nodemodules/react-native-code-push/android/app')

检查在/android/app/src/main/res/values/strings.xml中  

    <string moduleConfig="true" name="reactNativeCodePushandroidDeploymentKey"><deployment key></string>

检查 deployment key:是否正确,注意空格

 <string>7YXk389Pl4uXDFhuh4TN__ped0lNb3042663-42da-499f-a4ab-5dde4f45a83a</string>


没有则添加


第五步: 添加配置

android/app/src/maim/java/com/MainApplication.java


import com.microsoft.codepush.react.CodePush;


public class MainApplication extends Application implements ReactApplication {

  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {

    @Override

    protected boolean getUseDeveloperSupport() {

      return BuildConfig.DEBUG;

    }

    @Override

    protected String getJSBundleFile() {

      return CodePush.getJSBundleFile();

    }

    @Override

    protected List<ReactPackage> getPackages() {

      return Arrays.<ReactPackage>asList(     

            new MainReactPackage(),

             new CodePush(getApplicationContext().getResources().getString(R.string.reactNativeCodePush_androidDeploymentKey), getApplicationContext(), BuildConfig.DEBUG), //指向deployment-key

            new VectorIconsPackage()

      );

    }

  };


第六步:修改versionName。

在 android/app/build.gradle中有个 android.defaultConfig.versionName属性,我们需要把 应用版本改成 1.0.0(默认是1.0,但是codepush需要三位数)

至此Code Push for Android的SDK已经集成完成。


设置更新策略


在 js中加载 CodePush模块

在app.js中

import codePush from 'react-native-code-push' 

export default codePush(App);


手动检测(可以不加)

任意目录下     import codePush from "react-native-code-push";


  onCheckUpdatePress() {

    console.log("checking update ..");

    codePush.sync({

      updateDialog: true,

      installMode: codePush.InstallMode.IMMEDIATE

    });

  }


   <TouchableOpacity onPress={this.onCheckUpdatePress}>

  </TouchableOpacity>


做完以上步骤 记得react-native  run-android  一次

打包发布新的APK 



发布更新

code-push release-react buyueta android



还有些不好表述的地方和特殊的问题没有加上,待完善。

日记本

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

赞赏支持
被以下专题收入,发现更多相似内容