飞道科技

飞道科技文档总汇

CodePush热更新

注意: 项目不同,所用到CodePush服务器地址也可能不同,根据项目实际情况,确定服务器地址,以下所用到的服务器地址 https://appcenter.daokes.com/ 为公司目前所使用的。

1.环境配置

1. 安装CodePush指令(首次需要)

直接在终端上输入如下命令即可,本次执行为全局执行,后面无须重复执行此命令

npm install -g code-push-cli

安装成功

2.登录

1.全局执行,后面无须重复执行此命令。执行命令后,会自动打开一个网页版登录界面

code-push login https://appcenter.daokes.com/

返回Key

2.点击登录

用户名 : feidao

密码:feidao@2o19

3.登录成功以后,点击获取token,会给我们一个token

返回Key

3.我们直接复制这个key,然后在终端中将这个key填写进去即可,按Enter即可

返回Key

注意: 系统会把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

注册ios成功

2.添加Android平台应用

code-push app add xxx-android Android react-native

注册Android

3.查看已添加app

code-push app list

查看App

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

查看Android

2.将staging(测试模式)或production(发布模式)复制到项目以下目录

w000012/android/app/src/main/res/values/strings.xml

查看Android

3.将项目以下目录文件,服务器修改为 https://appcenter.daokes.com/

w000012/android/app/src/main/java/com/antCard/MainApplication.java

修改服务器IP

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再次进入,热更新就完成了。

手机