CodePush 简介
CodePush 是微软提供的一套用于热更新 React Native 和 Cordova 应用的服务。
CodePush 是提供给 React Native 和 Cordova 开发者直接部署移动应用更新给用户设备的云服务。CodePush 作为一个中央仓库,开发者可以推送更新 (JS, HTML, CSS and images),应用可以从客户端 SDK 里面查询更新。CodePush 可以让应用有更多的可确定性,也可以让你直接接触用户群。在修复一些小问题和添加新特性的时候,不需要经过二进制打包,可以直接推送代码进行实时更新。
CodePush 可以进行实时的推送代码更新:
直接对用户部署代码更新
管理 Alpha,Beta 和生产环境应用
支持 React Native 和 Cordova
支持JavaScript 文件与图片资源的更新
热更新的比较简单,说简单点就是一个.jsbundle文件/Assets素材文件版本管理工具。有些小伙伴担心使用微软服务器进行更新觉得会不安全,但是codePush管理的是.jsbundle所以大家大可以直接使用。图中是打包上传过程(code-push release-react Demo-iOS ios --t 1.6.0 --d Staging --des “第5次更新测试” -m false)。然而 CodePush 服务器是在国外的,国内使用的话速度并不理想,所以自建CodePush 服务是最理想的。网上已有大量的本地服务器搭建指南。
服务器搭建
链接上远端服务器之后进入需要的文件夹
ssh root@ 100.100.100.100
输入密码
cd /xx/xx/xx/
1, 服务端需要使用 code-push-server 和MySQL 所以需要先将这两个安装好。
(1)下载code-push-server代码
git clone https://github.com/lisong/code-push-server.git
cd code-push-server && npm install
(2)MySQL
官网下载后直接双击安装,下载地址;
打开“系统设置”,看到最新安装的MySQL,进入并启动服务。
(3)配置code-push-server
创建表结构
./bin/db init --dbhost '对应数据库IP' --dbuser root --dbpassword 数据库密码
eg.. ./bin/db init --dbhost 127.0.0.1 --dbuser root --dbpassword root
若表结构创建不成功,请检查MySql是否正常运行。若正常运行也可以自己创建表结构(表结构SQL)
然后继续配置config.js
cd config/config.js
客户端搭建:
1. 客户端需要安装 code-push-cli 参考文档
npm install -g code-push-cli
2. 登录code-push-server,使code push和自建的服务器关联
执行命令查看当前是否登录,因为是新服务,所以要先保证没有别的账号正在登录
code-push whoami
如果报错如下,表示没有登录
[Error] You are not currently loggedin. Run the'code-push login'command to authenticatewiththe CodePush server.
如果没有报错 并且显示邮箱账号,则表示已经登录账户,则我们要先注销当前账号
code-push logout
code-push login http://服务器地址:3000
//提示此表示登录成功 Successfully logged-in……
创建应用:
Usage: code-push app add <appName> <os> <platform>
选项:
-v, --version 显示版本号 [布尔]
示例:
app add MyApp ios react-native Adds app "MyApp", indicating that it's an iOS React Native app
app add MyApp windows react-native Adds app "MyApp", indicating that it's a Windows React Native app
app add MyApp android cordova Adds app "MyApp", indicating that it's an Android Cordova app
e.g..
code-push app add ReactNativeCodePushDemo-ios ios react-native
可以使用
code-push deployment ls XunHuiFinance-ios -k
进行查看
可以通过命令行查看,更多相关命令,请查阅官方文档
躺坑:
以上如果都配置好的话如果发现打包上传提示
[Error] connect ECONNREFUSED 127.0.0.1:3000
此时需要对本地的code-push配置文件/user/xxx/.code-push.config 进行关联
重新登录code-push服务器输入密码拿到token 输入token 就可以了。此时阿里云上的服务和我本地的RN项目才算关联起来了
其他步骤请参考已下资料: