安装 CodePush CLI

管理 CodePush 账号需要通过 NodeJS-based CLI。只需要在终端输入 npm install -g code-push-cli,就可以安装了。
安装完毕后,输入 code-push -v查看版本,如看到版本代表成功。

创建一个CodePush 账号

在终端输入code-push register,会打开注册页面让你选择授权账号。

授权通过之后,CodePush会告诉你“access key”,复制此key到终端即可完成注册。完成注册后会自动登录账号,你的session文件将会写在 /Users/你的用户名/.code-push.config。

相关命令
code-push login 登陆
code-push loout 注销
code-push access-key ls 列出登陆的token
code-push access-key rm 删除某个 access-key

在CodePush服务器注册app

为了让CodePush服务器知道你的app,我们需要向它注册app: 在终端输入code-push app add <appName>即可完成注册。


注册完成之后会返回一套deployment key,该key在后面步骤中会用到。如果你的应用分为Android和iOS版,那么在向CodePush注册应用的时候需要注册两个App获取两套deployment key,如:

code-push app add MyApp-Android
code-push app add MyApp-iOS

相关命令
code-push app add 在账号里面添加一个新的app
code-push app remove 或者 rm 在账号里移除一个app
code-push app rename 重命名一个存在app
code-push app list 或者 ls 列出账号下面的所有app
code-push app transfer 把app的所有权转移到另外一个账号

集成CodePush SDK(Android)

1.安装RN版code-push插件
npm install --save react-native-code-push
2.到android/app/build.gradle 头部引入codepush.gradle
apply from: "../../node_modules/react-native-code-push/android/codepush.gradle"
3.到MainApplication.java中添加
import com.microsoft.codepush.react.CodePush;public class MainApplication extends Application implements ReactApplication {private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {...// 添加的内容---------------------------@Overrideprotected String getJSBundleFile() {return CodePush.getJSBundleFile();}// 添加的内容---------------------------};
}
4.在strings.xml 添加deployment key
<string moduleConfig="true" name="CodePushDeploymentKey">你的DeploymentKey</string>

检查更新

在App启动时检查更新,最简单的方式是在根component中进行请求

   CodePush.sync({updateDialog: {appendReleaseDescription: false,descriptionPrefix: '\n\n更新内容:\n',title: '更新',mandatoryUpdateMessage: '有最新版本需要更新',mandatoryContinueButtonLabel: '确定'}})

如果你期望更及时的获得更新,可以在每次APP从后台进入前台的时候去主动的检查更新,在应用的根component的componentDidMount中添加如下代码:

AppState.addEventListener("change", (newState) => {newState === "active" && codePush.sync();
});

sync方法,提供了如下属性以允许你定制sync方法的默认行为:

  • deploymentKey (String): 部署key,指定你要查询更新的部署秘钥,默认情况下该值来自于Info.plist(Ios)和MianActivity.java(Android)文件,你可以通过设置该属性来动态查询不同部署key下的更新。
  • installMode (codePush.InstallMode): 安装模式,用在向CodePush推送更新时没有设置强制更新(mandatory为true)的情况下,默认codePush.InstallMode.ON_NEXT_RESTART即下一次启动的时候安装。
    mandatoryInstallMode (codePush.InstallMode):强制更新,默认codePush.InstallMode.IMMEDIATE。
  • minimumBackgroundDuration (Number):该属性用于指定app处于后台多少秒才进行重启已完成更新。默认为0。该属性只在installMode为InstallMode.ON_NEXT_RESUME情况下有效。
  • updateDialog (UpdateDialogOptions) :可选的,更新的对话框,默认是null,包含以下属性
    appendReleaseDescription (Boolean) - 是否显示更新description,默认false
    descriptionPrefix (String) - 更新说明的前缀。 默认是” Description: “
    mandatoryContinueButtonLabel (String) - 强制更新的按钮文字. 默认 to “Continue”.
    mandatoryUpdateMessage (String) - 强制更新时,更新通知. Defaults to “An update is available that must be installed.”.
    optionalIgnoreButtonLabel (String) - 非强制更新时,取消按钮文字. Defaults to “Ignore”.
    optionalInstallButtonLabel (String) - 非强制更新时,确认文字. Defaults to “Install”.
    optionalUpdateMessage (String) - 非强制更新时,更新通知. Defaults to “An update is available. Would you like to install it?”.
    title (String) - 要显示的更新通知的标题. Defaults to “Update available”.

发布更新

通过code-push release-react发布更新

code-push release-react MyApp-iOS ios  --t 1.0.0 --dev false --d Production --des "1.优化操作流程" --m true

其中参数–t为二进制(.ipa与apk)安装包的的版本;–dev为是否启用开发者模式(默认为false);–d是要发布更新的环境分Production与Staging(默认为Staging);–des为更新说明;–m 是强制更新。

关于code-push release-react更多可选的参数,可以在终端输入code-push release-react进行查看。

另外,我们可以通过code-push deployment ls <appName>来查看发布详情与此次更新的安装情况。

React Native 0.60以上集成code push热更新相关推荐

  1. 苹果收购英特尔手机芯片业务;西门子将在华建立 5G 研发中心;React Native 0.60.4 发布 | 极客头条...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

  2. AppCenter Code Push热更新

    codePush已经被微软将其移动到了appcenter中心,后续关于codePush的相关问题都移步到appcenter官网中进行查看https://appcenter.ms 本文只记录通过code ...

  3. Code Push 热更新使用详细说明和教程

    CodePush CodePush是一个微软开发的云服务器.通过它,开发者可以直接在用户的设备上部署手机应用更新.CodePush相当于一个中心仓库,开发者可以推送当前的更新(包括JS/HTML/CS ...

  4. React Native 0.59.0 发布,使用 React 编写原生应用

    React Native 0.59.0 发布了.React Native 使开发者只使用 JavaScript 也能编写原生移动应用. 新版更新亮点: React Hooks React Native ...

  5. React Native 0.44.3 ----------微信h5支付

    本篇记录ios使用ReactNative完成微信h5支付的一些注意事项. a. 支付完成或者取消微信h5支付,会跳转到手机默认的浏览器中(safari),无法回到原App. b. 如何获得支付状态?? ...

  6. React Native 0.50版本新功能简介

    React Native在2017年经历了众多版本的迭代,从本人接触的0.29版本开始,到前不久发布的0.52版本,React Native作为目前最受欢迎的移动跨平台方案.虽然,目前存在着很多的功能 ...

  7. 爱奇艺回应遭做空;百度 App 部分频道停更;React Native 0.62 发布 | 极客头条

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 一分钟 ...

  8. 余承东吐槽苹果续航;微软 IE 浏览器被曝漏洞;React Native 0.61.0 发布 | 极客头条...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

  9. 9月27日科技资讯|余承东吐槽苹果续航;贾扬清担任阿里巴巴开源技术委员会负责人;React Native 0.61.0 发布

    「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有料的新闻资讯,让所有技术人,时刻紧跟业界潮流. 整理 | 胡 ...

最新文章

  1. Arachni web扫描工具
  2. 【6 插值方法】实例实战篇
  3. 我的Go+语言初体验——【三、spx案例测试_许式伟先生推荐补充(附-视频)】
  4. 联想服务器系统安装bios设置,Windows 8操作系统如何通过Legacy BIOS与UEFI两种模式安装...
  5. c++ winpcap开发(4)
  6. 7-4 panic和recover
  7. 剑指offer面试题[15]-链表中倒数第K个结点
  8. Reader entry: ���� 乱码
  9. makefile obj文件路径_makefile中包含的文件的路径
  10. eclipse的安装与环境配置
  11. 未来科技计算机作文600字,未来科技作文600字
  12. 计算机二级c语言题型及考点,全国计算机二级C语言考试题型及考试重点.doc
  13. Notepad++取消去除文字下面的红色波浪线
  14. Gramine(原graphene-sgx)软件栈
  15. 突破领英限制如何查找非好友电话,邮箱技巧
  16. 文字生成图片的软件有哪些?这篇文章给你介绍三个
  17. 《零售时代4.0》读后感
  18. linux学习lesson16
  19. 计算机硬盘越大运行速度越大吗,固态硬盘越大运行速度越快吗
  20. Cesium 热力图(可直接使用)

热门文章

  1. 标准坐标系与火星坐标系(高德)百度坐标系之间互转
  2. 关于头颈胸矫形器的介绍-矫形支具
  3. 大家好!欢迎加入QQ技术交流群。
  4. 【优秀作品欣赏】私人住宅区的联排别墅
  5. Unity微信支付,IOS提示支付签名验证失败。安卓没问题
  6. threeJS 物体贴花
  7. 【MySQL】Got an error reading communication packets
  8. 云计算疑难杂症解决方案一
  9. Android TextView竖直滚动文字广告效果
  10. vue elementui table组件内容换行