CodePush热更新
注意: 项目不同,所用到CodePush服务器地址也可能不同,根据项目实际情况,确定服务器地址,以下所用到的服务器地址 https://appcenter.daokes.com/ 为公司目前所使用的。
1.环境配置
1. 安装CodePush指令(首次需要)
直接在终端上输入如下命令即可,本次执行为全局执行,后面无须重复执行此命令
npm install -g code-push-cli
2.登录
1.全局执行,后面无须重复执行此命令。执行命令后,会自动打开一个网页版登录界面
code-push login https://appcenter.daokes.com/
2.点击登录
用户名 : feidao
密码:feidao@2o19
3.登录成功以后,点击获取token,会给我们一个token
3.我们直接复制这个key,然后在终端中将这个key填写进去即可,按Enter即可
注意: 系统会把key保存在~/.code-push.config内,登录状态一直有效,除非手动执行code-push logout
注销,如果code-push logout
注销不生效,请手动删除.code-push.config文件或全局执行
~ cd && rm -rf .code-push.config
3.验证登录
使用以下命令验证登录是否成功
code-push login
2.在服务器中创建App
通常来说,我们的App会有ios和android两个端点,所以要创建两个app
注意: App命名方式:项目spaceid+所创建app端点,用 - 连接。 每注册成功一个会返回一套deployment key,包括Staging和Production(production 代表的是发布模式。staging 代表的是测试模式)。妥善保管,后面有用到。
1.添加iOS平台应用
code-push app add xxx-ios ios react-native
2.添加Android平台应用
code-push app add xxx-android Android react-native
3.查看已添加app
code-push app list
3.RN代码中集成CodePush
1.安装依赖
注意: 项目根目录下执行安装依赖,不允许把react-native-code-push放到link中
yarn add --dev react-native-code-push
4.项目配置Android热更新
1.查看已添加Android App Staging和Production
code-push deployment ls xxx-android -k
2.将staging(测试模式)或production(发布模式)复制到项目以下目录
w000012/android/app/src/main/res/values/strings.xml
3.将项目以下目录文件,服务器修改为 https://appcenter.daokes.com/
w000012/android/app/src/main/java/com/antCard/MainApplication.java
4.在执行推送热更新前,在项目首页或打开App的第一个页面的初始化中添加以下代码,deploymentKey要和staging保持一致!添加完成后打包apk
import code_push from 'react-native-code-push';
export default async function a001(fd: IFeidaoAiMobile) {
const res = await code_push.sync({
updateDialog: {
//指示是否要将可用版本的描述附加到显示给最终用户的通知消息中
appendReleaseDescription: true,
//表示在向最终用户显示更新通知时,您希望在发布说明前加上字符串
descriptionPrefix: '有新版本发布,请更新。',
title: '更新',
mandatoryUpdateMessage: '',
mandatoryContinueButtonLabel: '更新',
optionalInstallButtonLabel:'安装'
},
mandatoryInstallMode: code_push.InstallMode.IMMEDIATE,
//部署密钥
deploymentKey: 's1a6QRFRdzDhBFfhmalmDZQlVyCB4ksvOXqog'
});
}
5.每次推送前修改以下目录文件的更新版本号
android/app/build.gradle
6.修改页面内容后,执行推送热更新
code-push release-react xxx-android android
7.此时重启App,点击安装,重启App再次进入,热更新就完成了。