我可以使用AAPT向APK添加版本代码吗?

时间:2012-07-30 20:54:06

标签: android versioning apk aapt

我被告知有一种方法可以使用aapt的--version-code选项将版本代码添加/插入APK,其清单中没有定义版本代码。但是,我没有找到任何人这样做的例子(除了https://groups.google.com/forum/#!msg/adt-dev/XjehZDzfXhk/g2sWBC37_I4J,它链接到一个死页,甚至不是我想做的事情),如果确实可以这样做的话。

目前在问题的apk上运行aapt d badging example.apk会返回类似

的内容
  

package:name ='com.example.core'versionCode =''versionName ='1.0.0'   sdkVersion: '8'

在我的清单中,我目前将versionName定义为xml文件中的字符串,因此我可以使用类似android:versionName="@string/app_version_name"的内容(在清单标记内)。但是,如果我使用版本代码尝试此操作,它似乎不想解析引用。它尝试将版本代码逐字地设置为我输入的路径,然后失败,因为它不是整数。

我尝试过像aapt p --version-code 100 example.apk这样的事情,但它似乎想要打包整个项目并期望文件目录作为输入,而不是apk文件。 (我认为这是aapt p[ackage]

的默认行为

使用aapt工具构建APK后,是否可以设置APK的版本代码?如果是这样,那么正确的语法是什么?

1 个答案:

答案 0 :(得分:2)

此解决方案不会直接使用aapt,但会在幕后使用。

您可以使用Android APKTool打开APK,更改 AndroidManifest.xml 文件,添加版本信息;然后再次使用APKTool重新打包。该工具是opensource并使用aapt。因此,您可以查看其代码,以了解如何直接使用aapt执行此操作。