更好的放置versionCode/versionName的位置是哪里?build.gradle还是AndroidManifest.xml?

29

如果你不知道,告诉你一声,你问了一个很棒的问题! ;) - kirtan403
3个回答

51

实际上没有区别,但是我将告诉您一些相关信息。

  1. 如果您在AppManifest.xml和build.gradle中都写了versionCode和versionName,当您编译应用程序时,build.gradle中的版本将替换AppManifest.xml中的版本,并进入第二点。

  2. 如果您没有在AppManifest.xml中编写它们,在编译和构建应用程序时,您在build.gradle中编写的versionCode和versionName将自动编写到AppManifest.xml中。

  3. 如果您只在AppManifest.xml中编写了它们,则不会发生任何事情。 它已经被写了...

因此,总结一下,build.gradle覆盖了AppManifest.xml。

希望这有所帮助。

来源:https://developer.android.com/studio/publish/versioning

注意:如果您的应用程序直接在元素中定义应用程序版本,则Gradle构建文件中的版本值将覆盖清单中的设置。 此外,在Gradle构建文件中定义这些设置允许您为应用程序的不同版本指定不同的值。 为了提高灵活性并避免合并清单时潜在的覆盖问题,您应该从元素中删除这些属性,而是在Gradle构建文件中定义您的版本设置。


5
这里您可以找到官方文档
请注意Gradle 覆盖AndroidManifest.xml中的信息。我建议您始终使用gradle脚本来设置这些值。
如果某个属性没有通过DSL设置,则会使用一些默认值。以下是处理方式的表格。
 Property Name   Default value in DSL object     Default value
 versionCode     -1                              value from manifest if present
 versionName     null                            value from manifest if present

感谢您提供参考。 - Confuse

0

使用Gradle,我无法回忆起任何需要使用AndroidManifest.xml中的版本的情况。

我的第一个想法是从AndroidManifest.xml中删除版本,并使用来自build.gradle的版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接