发布主要版本时
版本管理可能很难,通常您希望在用户看到重大变化时发送主要更新。
但是,版本管理并不是为此而设计的,应用商店版本与原生版本不同。
原生版本用于管理破坏性更改在 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.
IOS __CAPGO_KEEP_1__
__CAPGO_KEEP_0__
Where Capgo find the version to compare
__CAPGO_KEEP_0__
将被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
示例
您的 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 版本。
如果您遵循此模式,无需担心,所有都将得到处理。
如果我不遵循此
在这种情况下,这意味着您必须将新应用程序发送到 Apple 和 Google 的 Capacitor 4,但不要发送到 Capgo。
然后你必须等待 100% 的用户都有了应用或至少 90%,这需要几个月的时间。
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
如果你正在使用 How to release major version in capgo 来规划回滚和版本控制,连接它与 回滚 查看《回滚》中的实现细节 版本目标 查看《版本目标》中的实现细节 更新行为 查看《更新行为》中的实现细节, bundle for the implementation detail in bundle, and Capgo实时更新 for the product workflow in Capgo Live Updates.