appcenter.ms 是微软的 app 管理网站,类似国内的友盟。这篇文章介绍使用 appcenter 的 codepush 功能给 cordova 项目实现代码热更新。codepush 除了支持 cordova 外,还支持 react native。
1 | # 安装 appcenter |
查看自己的 key
1 | $ appcenter codepush deployment list -a {用户名}/{项目名} --displayKeys |
因为 codepush 是被收购后合并到 appcenter 的,所以这里的 key 不是 appcenter 网页上的 key。必需要使用这个命令来查看。这里要注意,用户名既不是邮箱,也不是昵称,而是系统给你分配的用户名,在账号设置里查看。比如我的是boyquestion-163.com。
编辑 config.xml,加入
1 | <platform name="android"> |
如果你的 config.xml 里不是
1 | <access origin="*" /> |
那么还应该加入
1 | <access origin="https://codepush.appcenter.ms" /> |
在代码合适的地方加入
1 | document.addEventListener("resume", function () { |
项目就会自动更新了
下次当你编译好新的代码后只要执行
1 | # 测试 |
就可以推送了。更详细的可以查看参考里的文档。
特别注意 每个热更新推送都有一个对应 release 版本(Target Version),这个版本对应用户的 app 版本,不同版本间不会推送。
其实这很好理解,code push 只会更新 web 文件,不会更新插件对应的二进制文件,因此不同版本间的热更新可能会导致插件调用失败。
但是这种更新方式导致除了要维护 app 版本外,还要维护热更新版本。第一次使用的时候令我非常迷惑。
参考:
https://docs.microsoft.com/en-us/appcenter/distribution/codepush/cordova