发布主要版本时
版本管理可能很难,通常您希望在用户看到重大变化时发送主要更新。
但是,版本管理不是为此而设计的,应用商店版本与原生版本不同。
原生版本用于管理破坏性更改 code
在 IOS 中,例如,iOS 16 是苹果公司的 store version code 的版本是 20A5283p (他们似乎不使用 SemVer)
现在很明显,我们不混合它们,并将它们用于它们的目的!
重大发布
在您的 Capacitor 应用程序中,重大发布是必要的,当发生破坏性更改时。 例如,新 IOS 目标(15 到 16),或新版本的 Capacitor(3 到 4),或您使用的插件(1.2 到 2.0)已更新到重大版本。 此更改意味着所有工具都必须对齐以处理破坏性更改。 因此,如果您发布重大版本,Capacitor 将不会将其发送给没有从商店安装的用户。 此行为可以自定义。您可以在这里了解更多信息
版本信息
That why Capgo follows this system.
So if you release a major version, Capgo will not send it to a user who doesn’t have it installed from the store.
__CAPGO_KEEP_0__ __CAPGO_KEEP_1__
__CAPGO_KEEP_0__
在 Capgo 中找到要比较的版本
IOS
将用于 Capgo 比较 JavaScript 版本并找到主要升级
在 IOS 中,变量在您的项目中设置为此处 ios/App/App/Info.plist 在下面的键中CFBundleShortVersionString 或 ios/App/App.xcodeproj/project.pbxproj 在下面的键中 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
Example
您的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 版本。
如果您遵循这个模式,不用担心,所有都已处理。
如果我不遵循这个
在这种情况下,这意味着您必须将新应用程序与 Capacitor 4 发送到苹果和谷歌,但不要发送到 Capgo。
然后您必须等待 100% 的用户都有应用程序,或者至少 90%,这需要几个月的时间。
在此期间,您不能发送任何更新 Capgo,因为老用户无法获得新版本。 您没有选择只让某些用户接收更新的方法。