使用微软CodePush动态更新Cordova APP

使用微软CodePush动态更新Cordova APP

code-push是微软提供的一套用于热更新 React Native和 Cordova应用的服务,微软的appcenter提供更新服务,也可以自己搭建服务器code-push-server。

https://microsoft.github.io/code-push/

https://appcenter.ms

安装appcenter-cli

code-push-cli已经废弃,目前推荐使用appcenter-cli,原来的npm install -g code-push-cli已经不建议使用了。

注意:一般情况下的命令都可以添加--help查看帮助信息。

https://docs.microsoft.com/en-us/appcenter/cli

npm install -g appcenter-cli
appcenter -v
appcenter --help

登录AppCenter

登录账号:

appcenter login

弹出到浏览器登录,也可以在浏览器输入命令返回的地址,如:https://appcenter.ms/cli-login?hostname=10390-SDIT

可以选择登录方式,如Github等:

登录后获取Access code from browser:填入

登录成功。

配置AppCenter CodePush

登录成功之后,可以创建和配置App了。

创建APP

appcenter apps下面的命令就是管理app列表:

#帮助
appcenter apps --help
#说明(帮助:appcenter apps create --help)
appcenter apps create -p|--platform <arg> -o|--os <arg> -d|--display-name <arg> [-r|--release-type <arg>] [-n|--name <arg>] [--description <arg>]
#示例
appcenter apps create -p Cordova -o Android -d NewConnectApp

创建结果:

App Secret: b50fff61-41a5-48fd-bc0e-xxxxxxxx
Description:
Display Name: NewConnectApp
Name: NewConnectApp
OS: Android
Platform: Cordova
Release Type:
Owner ID: 8e4aa89e-fc54-4e75-8c8e-xxxxxxxxxx
Owner Display Name: Gary
Owner Email: xxxxxxxxxx@gmail.com
Owner Name: fugary
Azure Subscription ID:

创建CodePushKey

新建App之后CodePushKey为空,创建Deployment,会得到CodePushKey,这个key将填到Cordova App的config.xml文件中,只有填入之后才能使用。

appcenter codepush deployment --help
# 创建Deployment
appcenter codepush deployment add -a fugary/NewConnectApp Production
appcenter codepush deployment list -a fugary/NewConnectApp --displayKeys

获取到Key如下:

配置Cordova APP

这里假设已经开发好基于Cordova的App了。

安装配置cordova-plugin-code-push插件

地址:https://github.com/Microsoft/cordova-plugin-code-push

安装cordova-plugin-code-push插件

cordova plugin add cordova-plugin-code-push@latest

配置config.xml

YOUR-ANDROID-DEPLOYMENT-KEY就是上面获取到的CodePushKey:

<platform name="android">
    <preference name="CodePushDeploymentKey" value="YOUR-ANDROID-DEPLOYMENT-KEY" />
</platform>
<platform name="ios">
    <preference name="CodePushDeploymentKey" value="YOUR-IOS-DEPLOYMENT-KEY" />
</platform>

platform相关应该已经存在,只需要添加一行:

<preference name="CodePushDeploymentKey" value="YOUR-ANDROID-DEPLOYMENT-KEY" />

使用codepush更新

在代码中需要调用更新代码:

if (window.cordova && window.codePush) {
   window.codePush.sync() // 默认ON_NEXT_RESTART安装
}

发布到AppCenter

appcenter codepush release-cordova --help
appcenter codepush release-cordova -a fugary/NewConnectApp  -d Production --description "new release"

下次启动App的时候会自动更新app了。

上一篇
下一篇