发布重大版本时
版本管理可能会很困难,通常您希望在用户出现重大变化时发送一个主要更新。
但是,版本管理并不是为此而设计的,应用商店版本与原生版本是不同的。
原生版本用于管理破坏性更改在 code
例如,在 iOS 中,iOS 16 是苹果的 store version code 版本是 20A5283p (他们似乎没有使用 SemVer)
现在我们清楚地知道我们不混淆它们,并且使用它们的目的!
重大发布
In您的Capacitor应用中,发生重大变更时,需要进行重大版本更新。 例如,新IOS目标(15到16),或新版本Capacitor(3到4),或您使用的插件(1.2到2.0)已更新到重大版本。
这意味着所有工具都必须对齐以处理重大变更。
这就是为什么Capgo遵循这个系统。
因此,如果您发布重大版本,Capgo将不会将其发送给尚未从商店安装它的用户。
您可以自定义此行为。要了解更多信息,请参阅 这里
版本
Capgo在哪里找到版本以进行比较
IOS
Capgo将使用它来比较JavaScript版本并找到重大升级
在IOS中,变量设置在您的项目中 ios/App/App/Info.plist 在这里CFBundleShortVersionString 或 ios/App/App.xcodeproj/project.pbxproj 在__CAPGO_KEEP_0__中 MARKETING_VERSION 如果 MARKETING_VERSION 在您的 Info.plist 文件中设置了。
您可以通过在
capacitor.config.json文件 这里的文档
Android
将使用Capgo与JavaScript版本进行比较,来查找主要升级。
在Android中,变量在您的项目 android/app/build.gradle 下设置的键 defaultConfig.versionName
您可以通过设置版本键在
capacitor.config.json文件 文档
JavaScript
将用于 Capgo 与 Native 版本进行比较并找到主要升级
在 JavaScript 中,变量在您的项目中设置为 package.json 在 version
示例
您的 Ionic 应用程序当前以版本 1.2.3 使用 Capacitor 3
您正在升级到 capacitor 4。
您需要将版本号升级到 2.2.3,然后所有您的包都包含 Capgo,并注意到这一大变化。
当您将此版本发布到Capgo和App Store时。
所有下一次的Capgo实时更新 2.2.4 将不会发送给版本 1.2.3 只有版本 2.2.3 如果您遵循此模式,则无需担心,所有事情都将得到处理。
如果我不遵循此模式
在这种情况下,这意味着您必须将新应用程序与__CAPGO_KEEP_0__ 4发送给苹果和谷歌,但不要发送到__CAPGO_KEEP_1__。
In this case, that means you have to send your new app with Capacitor 4 to Apple and Google, but don’t to Capgo.
在此期间,您无法发送任何__CAPGO_KEEP_0__更新,因为老用户无法获得新版本。 您无法选择仅发送更新给某些用户。
While during this time you cannot send any update with Capgo, since old user cannot get the new version. You don’t have a way to select only some users to receive the update.
Keep going from How to release major version in capgo
Capgo How to release major version in capgo to plan rollback and version control, connect it with Rollbacks for the implementation detail in Rollbacks Version Targeting for the implementation detail in Version Targeting Update Behavior for the implementation detail in Update Behavior bundle for the implementation detail in bundle, and Capgo Live Updates for the product workflow in Capgo Live Updates.