1

假设我发布了一个需要 API 级别 2 的 Android 应用程序,并且清单中有以下内容。

android:versionCode="1"
android:versionName="1.0"
android:minSdkVersion=2

然后我创建了一个现在需要 API 级别 3 的重大更新

android:versionCode="3"
android:versionName="2.0"
android:minSdkVersion=3

现在,如果我在 1.0 版中发现了我想要修复的错误怎么办?可能仍有 1.0 版用户的设备不支持 API 级别 3。

我可以发布以下内容

android:versionCode="4"
android:versionName="1.1"
android:minSdkVersion=2

但随后所有原来的 2.0 用户都将降级到 1.1。我是否只需要同时发布更新的 API 级别 3 版本?

android:versionCode="5"
android:versionName="2.1"
android:minSdkVersion=3

有没有更好的方法来处理这种情况?我是否应该将我的版本代码值隔开以允许像这样的中间更新?

4

2 回答 2

1

Should I instead space out my version code values to allow for intermediate updates like this?

这个。如果您发布具有更高版本要求的更新,并且您打算继续支持旧版本的用户,最好在您的版本代码中留出足够的空间来独立更新两个版本。

我想说实现这一点的最佳方法是将您所针对的 Android 版本作为版本代码的一部分包含在内,或者从版本名称派生版本代码(如果您的版本名称为更新提供了足够的空间)。

android:versionCode="2001"
android:versionName="1.0"
android:minSdkVersion=2

android:versionCode="3001"
android:versionName="2.0"
android:minSdkVersion=3

android:versionCode="2002"
android:versionName="1.1"
android:minSdkVersion=2

android:versionCode="3002"
android:versionName="2.1"
android:minSdkVersion=3

或者

android:versionCode="1000"
android:versionName="1.0"
android:minSdkVersion=2

android:versionCode="2000"
android:versionName="2.0"
android:minSdkVersion=3

android:versionCode="1001"
android:versionName="1.1"
android:minSdkVersion=2

android:versionCode="2001"
android:versionName="2.1"
android:minSdkVersion=3
于 2013-05-31T00:27:24.880 回答
0

您也许可以为此目的使用 maxSdkVersion。对于 1.1 版,您可以执行以下操作:

android:versionCode="4"
android:versionName="1.1"
android:minSdkVersion=2
android:maxSdkVersion=2

maxSdkVersion 已被 Google 弃用且不推荐,但它仍应为 Google Play 中 API 级别 3 的设备过滤 1.1 版(尽管它们仍可以侧载它,但我不会担心)。有关此属性的更多信息,请查看文档

如需其他答案,请查看此处

于 2016-09-05T18:14:39.133 回答