答案有点晚了,但为任何想知道的人分享我的 2 美分 -
在我们的生产环境中,我们使用第 4 位来标识 codepush 版本(并在我们的应用程序的设置页面中显示此值)。appstore/playstore 版本(根据需要)采用X.X.X
格式,但应用程序 UI 显示X.X.X.X
.
当我们对更新进行代码推送时,我们增加第 4 位数字(它存储在 appconfig.js 中),并在下一次商店发布后将其重置为 1。因为代码推送版本可以针对特定的应用商店/播放商店版本(使用 -t CLI 的选项),通过这种方法,我们可以将最新的更新代码推送到最近的商店版本,同时也可以将补丁推送到以前的版本。例子:
初始商店版本 1.0.0 => 应用设置页面显示 1.0.0.1
- Codepush #1 ,
target 1.0.0
=>1.0.0.2
- Codepush #2 ,
target 1.0.0
=>1.0.0.3
存储版本 1.0.1 => 1.0.1.1
- Codepush #3,目标
1.0.1
=>1.0.1.2
- 补丁 Codepush #4 ,目标
1.0.0
=>1.0.0.4
(将以前版本的补丁应用到尚未更新到 1.0.1 的客户端)
如果由于某种原因我们不能再修补以前的版本(即要求从最新版本中添加新的本地模块),我们在应用程序中有一个内置机制来强制每个人更新到最新的商店版本(从服务器端远程触发) ,在这种情况下他们都会得到最新的codepush,我们不需要担心向后兼容性。