发布主版本时
版本管理可能会很困难,通常您希望在用户看到重大变化时发送一个主要更新。
但是,版本控制不是为此而设计的,应用商店版本与原生版本不同。
原生版本用于管理破坏性更改在 code
例如,在 iOS 中,iOS 16 是 store version of Apple, but the code version is 20A5283p (他们似乎没有使用 SemVer)
现在我们清楚地知道我们不混淆它们,并使用它们的目的!
重大发布
在您的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 在此键下 MARKETING_VERSION 如果 MARKETING_VERSION 在您的 Info.plist 文件中设置。
您可以通过在
capacitor.config.json文件中设置版本键来覆盖此行为 这里的文档
安卓
将由Capgo用于与JavaScript版本进行比较并找到重大升级
在安卓中,变量在您的项目中设置在这里 android/app/build.gradle 在此键下 defaultConfig.versionName
您可以通过设置版本号键来覆盖此行为
capacitor.config.json文件 这里的文档
JavaScript
Capgo 将使用此版本号与原生版本号进行比较,找到主要升级
在 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 版本。
如果您遵循这个模式,不用担心,所有的都很好处理。
如果我不遵循这个模式
在这种情况下,这意味着您必须将新应用程序的 Capacitor 4 发送给 Apple 和 Google,但不要发送给 Capgo。
然后您必须等待 100% 的用户都有应用程序,或者至少 90%,这将花费几个月的时间。
在此期间,您无法发送任何更新到 Capgo,因为老用户无法获得新版本。 您没有选择只发送更新给某些用户的方法。