前言:code-push是 software 开源的一套可用于React Native,Cordova等的热更新功能,可以省去原生开发的审核机制,节约开发的时间成本,国内也有Pushy.但是 code-push 是在微软的服务器不方便调试,而且很不稳定,说不定还要收费,code-push-server可以解决此痛点.
1,安装code-push-server (源码安装,当然还可以使用 npm 方式的安装)
git clone https://github.com/lisong/code-push-server.git
cd code-push-server
npm install
2,初始化数据库(记得安装 MySQL 数据库)
./bin/db init --dbhost localhost --dbuser root --dbpassword 123456(改为你自己的数据库密码)
3,启动server
./bin/www
会发现一堆的错误,是因为我们需要修改 config.js(位于code-push-server/config)
修改红框中的其他默认 创建路径
创建路径
4,终端登录 server
输入命令 登录系统获取 tokencode-push login http://127.0.0.1:3000
点击获取
填写 token,登录成功
5,创建新的项目,注意版本iOS or Android
创建新的项目code-push app add 项目名称-ios ios react-native
6,查看项目的 key
查看项目的 keycode-push deployment ls marketRN-ios -k
6,查看项目的上传记录
code-push deployment h marketRN-ios Staging
查看项目的上传记录
7,上传热更新内容
上传热更新内容code-push release-react marketRN-ios ios
8,配置 APP, 以 iOS 为例
用 Xcode,打开 iOS 版本的应用,修改 info.plist, 添加两个字段
添加字段
<key>CodePushDeploymentKey</key>
<string>MEXuvXUBggE4HcLDnVgW9UP2f6TJ4ksvOXqog</string>
<key>CodePushServerURL</key>
<string>http://127.0.0.1:3000</string>
9,添加RN 代码
关键代码onCheckUpdate() {
codePush.checkForUpdate()
.then((update)=>{
if (!update) {
alert('已是最新版本,客官请等等~');
}else{
codePush.sync({
// updateDialog: true,
updateDialog: {
optionalIgnoreButtonLabel: '稍后',
optionalInstallButtonLabel: '立即更新',
optionalUpdateMessage: '发现新版本,是否更新?',
title: '提示'
},
installMode: codePush.InstallMode.IMMEDIATE,
//宋金委本地的 codepushserver 的 key
deploymentKey: 'MEXuvXUBggE4HcLDnVgW9UP2f6TJ4ksvOXqog'
});
}
});
}
10,测试示意图
提示更新已是最新
网友评论