什么是Android Bundle版本和版本代码以及它们如何相关?

ina*_*ina 19 android version unity-game-engine android-version google-play

a)Android软件包版本和版本代码表示什么?

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

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

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

c)它们如何相关?对捆绑版本进行编号的正确方法是什么?


NB在搜索中似乎没有一个解释差异的来源.到目前为止,我一直非常偶然地编写我的捆绑包,但我想知道如何做到这一点.

这些名称似乎特定于Unity,但我不确定我是否理解参数甚至是从该页面的内容...

Sev*_*yev 20

没有"捆绑版本".这是一个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.

  • 答案很好,但OP要求Unity播放器设置._Bundle Version_将用于填充`android:versionName`.有关检测到的解释,请参阅[此博客文章](https://mogutan.wordpress.com/2015/03/06/confusing-unity-mobile-player-settings-for-versions/) (4认同)

Ari*_*nJM 14

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"格式的版本号转换为整数.或者,每次发布新版本时,您只需将数字增加一即可.