23

a) Android 捆绑包版本和版本代码表示什么?

b) 捆绑版本和版本代码有什么区别?

i) 假设我有一个捆绑版本0.137,版本代码与此有何关系?版本代码可以是137吗?

ii) 当我1.0接下来发布捆绑版本时会发生什么?我可以只调用版本代码10吗?

c)它们之间有什么关系?为捆绑版本编号的正确方法是什么?


注意在搜索中似乎没有解释差异的来源。到目前为止,我一直非常随意地给我的包裹编号,但我想弄清楚如何正确地做到这一点。

这些名称似乎是特定于Unity的,但我不确定是否即使从该页面也能理解参数的含义......

4

3 回答 3

25

没有“捆绑版本”。这是一个 iOS/Mac 术语。构建的 Android 应用程序称为包。

Android 有两个指定版本的地方:版本名称(android:versionName在清单中)和版本代码(android:versionCode)。它们不必相互关联,但实际上它们通常是相互关联的。当您发布更新时,Google Market 使用版本代码(不是名称)来确保您的更新晚于当前发布的软件包。

版本名称是最终用户看到的。它的格式没有限制;它是一个自由文本字符串,尽管绝大多数应用程序都坚持 1.2 或 1.2.3 模式。

关联版本名称和版本代码的方式取决于您。您可以使用顺序版本代码,也可以使用major*10000 + minor*100 + build公式 - 这就是 Google 对他们的应用程序所做的,因此 v. 4.10.3 将具有代码 41003。

于 2012-03-16T17:20:04.727 回答
16

更新

在较新版本的 Unity Bundle Version中变成了Version捆绑版本代码仍然存在。有关这些值的文档可以在 Unity 文档中找到 Android 播放器设置(Android 播放器设置 > 其他设置 > 标识):https ://docs.unity3d.com/Manual/class-PlayerSettingsAndroid.html#Identification

  • 版本:输入包的构建版本号,它标识包的迭代(已发布或未发布)。版本以包含由点分隔的数字的字符串的通用格式指定(例如,4.3.2)。(在 iOS 和 Android 之间共享。)

  • 捆绑版本代码:内部版本号。此数字仅用于确定一个版本是否比另一个版本更新,数字越大表示版本越新。这不是向用户显示的版本号;该数字由versionName属性设置。该值必须设置为整数,例如“100”。您可以根据需要定义它,只要每个后续版本都有一个更高的数字。

    例如,它可以是内部版本号。或者,您可以通过在低 16 位和高 16 位中分别编码“x”和“y”来将“xy”格式的版本号转换为整数。或者您可以在每次发布新版本时简单地将数字增加一。

    如果启用了按目标架构拆分 APK,则将此数字保持在 100000 以下。每个 APK 必须有一个唯一的版本代码,因此 Unity 将 100000 加到 ARMv7 的数字上,将 200000 加到 ARM64 上。

原始答案

Unity 在其“播放器设置手册”页面中有答案:http: //docs.unity3d.com/Manual/class-PlayerSettings.html更新:此链接不再包含以下信息):

  • Bundle Version:指定bundle的构建版本号,它标识了bundle的迭代(已发布或未发布)。版本以包含由点分隔的数字的字符串的通用格式指定(例如,4.3.2)。(这在 iOS 和 Android 之间共享。)

  • 捆绑版本代码:内部版本号。此数字仅用于确定一个版本是否比另一个版本更新,数字越大表示版本越新。这不是向用户显示的版本号;该数字由 versionName 属性设置。该值必须设置为整数,例如“100”。您可以根据需要定义它,只要每个后续版本都有一个更高的数字。例如,它可以是内部版本号。或者,您可以通过在低 16 位和高 16 位中分别编码“x”和“y”来将“xy”格式的版本号转换为整数。或者您可以在每次发布新版本时简单地将数字增加一。

于 2014-06-02T18:05:43.783 回答
2

这并没有直接解决这个问题,而是相关的(并且与 ArianJM 的答案相关)。

由于我刚刚将新版本上传到亚马逊应用商店的问题,我提出了这个问题。

ArianJM 中引用的 Unity 手册页面上的内容已更改并且(至少对于 5.4 版)不再包含有关 Bundle 版本或 Bundle 版本代码的任何信息。

在 Unity 5.4 中:

捆绑版本现在是版本。此字段由 Amazon Appstore 标识为版本名称

Bundle Version Code 仍然是Bundle Version Code。此字段由 Amazon Appstore 标识为版本代码该字段只允许数字

我正在将新版本上传到亚马逊应用商店,虽然我将 Unity 中的版本更新为 1.1,但捆绑版本代码没有更新,结果被亚马逊应用商店拒绝,因为它与以前的相同捆绑版本代码(Amazon Appstore 中的版本代码)。

我已经在 Unity 中更新了 Bundle 版本代码 - 但无法将其更新为 1.1 或 1_1,因为该字段是严格的数字- 因此将其更新为 2。

我相信这让我们回到了原始问题的一部分: 是否有正确的方法来为捆绑版本编号?

尽管在我的情况下随意将其更改为 2 显然不是一个方案 - 它与之前的数字不同且更高,因此可以正常工作。

这不是一个计划,但 Unity 缺乏解决这些字段的当前文档 - 以及 Unity 和 Amazon Appstore 之间相似但不同的字段名称似乎导致了这些临时决定。

于 2016-08-05T15:28:49.850 回答