关于react-native-code-push的原生集成攻略

注:此文集成code-push是基于自建热更新服务器来维护的,如果使用微软的热更新服务器集成有部分区别。

首先通过npm 或者 yarn 将依赖下载下来:

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

or

yarn add react-native-code-push 

Android 集成

1. 常规集成依赖,执行link,一键配置原生:

如果react native 在^ 0.27版本及以上则用以下指令

react-native link react-native-code-push

如果react native 版本低于^ 0.27版本(基本不可能低于...)

rnpm link react-native-code-push

文中此后的配置不考虑react native 低版本的原生配置(React Native> = v0.29

2. 手动集成依赖,执行link后,必须手动配置检查原生配置问题:

  • 在您的android/settings.gradle文件中,进行以下添加:
include ':app'
...
include ':react-native-code-push'
project(':react-native-code-push').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-code-push/android/app')
  • 在您的android/app/build.gradle文件中,将:react-native-code-push项目添加为编译时依赖项:
...
dependencies {
    ...
    compile project(':react-native-code-push')
}
  • 在您的android/app/build.gradle文件中,将文件codepush.gradle添加在react.gradle下面进行构建:
...
apply from: "../../node_modules/react-native/react.gradle"
apply from: "../../node_modules/react-native-code-push/android/codepush.gradle"
...
  •  配置MainApplication.java文件
...

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

...

public class MainApplication extends Application implements ReactApplication {

  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {

    // 2.覆盖的getJSBundleFile方法,为了让app启动时,在CodePush运行时找到JS的bundle文件
    @Override
    protected String getJSBundleFile() {
        return CodePush.getJSBundleFile();
    }

    @Override
    public boolean getUseDeveloperSupport() {
      return BuildConfig.DEBUG;
    }

    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
        new MainReactPackage(),
        // 3. 实例化CodePush运行时的一个实例
        // 可传三个参数也可传四个,用微软提供的服务器则可以不用传第四个参数
        // 参数1: code push key,参数4: 热更新服务器地址
        new CodePush(BuildConfig.CODEPUSH_KEY, getApplicationContext(), BuildConfig.DEBUG, "https://your.hotUpdateServer.com/"),
        ...
      );
    }
  };
  • 上图的“BuildConfig.CODEPUSH_KEY”,需在您的android/app/build.gradle文件中添加如下配置:
    buildTypes {
        debug {
            signingConfig signingConfigs.release
            buildConfigField "String", "CODEPUSH_KEY", '"这里输入你的Staging key"'
        }
        releaseStaging {
            signingConfig signingConfigs.release
            buildConfigField "String", "CODEPUSH_KEY", '"这里输入你的Staging key"'
        }
        release {
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            signingConfig signingConfigs.release
            buildConfigField "String", "CODEPUSH_KEY", '"这里输入你的Production key"'
        }
    }

注:可以通过执行./gradlew assembleReleaseStaging输出Staging包来测试,也可以通过debug包来更方便的测试热更新功能。

更多细节问题请参考android集成文档

IOS 集成

请参考ios集成官方文档

对于IOS方面的小白,有几个配置细节可以提一提:

1. 配置 Staging key :

  • 选择项目Info,点击Configurations下的“+”新增Staging模式

  • 在Build Setting文件下添加CODEPUSH_KEY配置

2. 需在Info.plist文件配置热更新key“CodePushDeploymentKey”及热更新服务器地址“CodePushServerURL”。

 

完结。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值