【问题标题】:Can I use AAPT to add a version code to an APK?我可以使用 AAPT 向 APK 添加版本代码吗?
【发布时间】:2012-07-28 14:05:38
【问题描述】:

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

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

包: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 后设置其版本代码?如果是这样,正确的语法是什么?

【问题讨论】:

    标签: android versioning apk aapt


    【解决方案1】:

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

    你可以使用Android APKTool打开你的APK,修改 AndroidManifest.xml 文件,添加版本信息;然后再次使用 APKTool 重新打包。该工具是开源的并使用 aapt。因此,您可以查看其代码以了解如何直接使用 aapt 来完成。

    【讨论】:

    • 我主要是在寻找可以添加到我们当前的 maven 构建过程中的解决方案。例如,如果您设置了某个属性,默认的 android build.xml 将在运行 aapt 时插入版本代码。但是,我无法控制 maven aapt 调用,所以我希望能够在制作 apk 之后再添加一个以插入版本代码。
    • 我最终选择了使用脚本的更简单的查找/替换模板清单,但这将是一个很好的替代解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 2020-05-07
    相关资源
    最近更新 更多