react-native-code-push热更新

code-push账号

  • 1.安装Code-Push的命令行工具:
npm install -g code-push-cli
  • 2.注册
code-push register
  • 3.若已经注册过,则直接登录
code-push login

运行之后,会在浏览器中打开一个返回token的页面
复制token值到控制台登录

  • 4.创建应用
code-push app add <Your APP Name> <OS(ios/anroid/windows/macOS)> <platform(Objective-C / Swift/react-native/cordova/xamarin)>

如:

code-push app add MyApp ios react-native

也可以到code-push 后台管理:https://appcenter.ms/apps/create进行创建,
如下图:

code-push001.png

 

code-push002.png

 

  • 5.查看所有应用
code-push app ls //code-push app list

code-push003.png

  • 6.查看你的deployment key
code-push deployment ls Delivery  -k

如下图:

 

code-push006.png

  • 7.在Xcode中填写你的key

     

    code-push005.png

  • 8.添加测试
code-push deployment add Delivery Test

使用react-native-code-push

  • 1.安装
npm i react-native-code-push --save
react-native link react-native-code-push

注意:需要根据当前项目的react-native版本,指定特定版本,不指定则默认安装最新版,
具体可参考官方说明文档react-native-code-push
运行react-native link react-native-code-push 正常情况会引入相关的库,如下图:

code-push004.png

 

若没有配置成功,可手动导入库

  • 2.引入
import codePush from "react-native-code-push";
  • 3.组件中使用
App = codePush(App); // Wrap Your Component
codePush.checkForUpdate('Your Deployment Key').then((update)=>{
  // codePush.checkForUpdate().then((update)=>{
    console.log('update is ',update);
    if(!update){
       Alert.alert("提示","已是最新版本--",[
         {text:"Ok", onPress:()=>{
             console.log("点了OK");
           }}
       ]);
    }
    else{
      codePush.sync({
       deploymentKey: 'Your Deployment Key',
        updateDialog: {
          optionalIgnoreButtonLabel: '稍后',
          optionalInstallButtonLabel: '后台更新',
          optionalUpdateMessage: '有新版本了,是否更新?',
          title: '更新提示'
        },
        installMode: codePush.InstallMode.IMMEDIATE
      });
    }
  });

注意,若使用react-native-navigation组件需要在screen注册时,
用codePush包裹你的screen,
不然就会出现很恶心、很恶心的问题——APP更新成功,重启之后又

回滚了,,,

回滚了,,,

回滚了,,,

真是心中一万只草泥马奔腾而过啊~~~

具体如下:

Navigation.registerComponent('AboutUS', () => codePush(AboutUS));
  • 4.打包release
react-native bundle --entry-file index.ios.js --platform ios --dev false --bundle-output ios/ios.jsbundle
  • 5.发布到code-push Staging
code-push release-react MyAPP ios
  • 6.从Staging发布到正式环境
code-push promote Delivery Staging Production

或者直接发布到正式环境

code-push release-react MyAPP ios -d Production

注意IOS是根据info中的版本号来决定是否更新,版本独立不影响的位数是三位
即iOS版本都是独立不影响,version=X.Y.Z,当codepush发布更新时,只会影响与其X.Y.Z三位数完全相同的版本,其他版本不会受影响。

  • 7.查看历史发布版本
code-push deployment history MyAPP Staging

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值