新版的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重启的时候,会静默安装更新。