【问题标题】:Building both signed and unsigned releases with Ant使用 Ant 构建已签名和未签名的版本
【发布时间】:2012-02-11 19:46:17
【问题描述】:

我在 Android Market 上发布了一个 Android 应用。我只需键入ant release 即可准备发布版本。我配置了一个密钥库,以便我可以一步构建最终签名、混淆、压缩对齐的市场就绪 APK。除了将它们指向我的密钥库之外,我没有修改任何 build.xml 文件。

现在,我也需要在亚马逊商店发布该应用程序。这需要我生成一个未签名的版本。作为如上所述构建正常发布版本的过程的一部分,MyApp-release-unsigned.apk 文件在bin 目录中生成。这看起来很有希望,除了这个文件的时间戳早于同样产生的-unaligned.apk 变体。这表明-unsigned.apk 尚未压缩对齐,因此尚未准备好发布。

我需要对构建过程进行哪些修改,才能使用单个命令生成(未签名、混淆、压缩对齐)Amazon-ready APK?

【问题讨论】:

    标签: android ant amazon


    【解决方案1】:

    首先,查看我的 build.xml 中的 echo 语句,您是对的 - 未签名的包未对齐。

    假设您使用的是最新的 SDK,那么我修改了 build.xml 以制作一个额外的文件 (projectname-release-unsigned-aligned.apk),如下所示:

    通过在 cmets 之间添加行来覆盖 -set-release-mode 目标

    <target name="-set-release-mode" depends="-set-mode-check">
    <property name="out.packaged.file" location="${out.absolute.dir}/${ant.project.name}-release-unsigned.apk" />
    <!-- NEW PROPERTY FOR UNSIGNED ALIGNED FILE -->
    <property name="out.unsignedaligned.file" location="${out.absolute.dir}/${ant.project.name}-release-unsigned-aligned.apk" />
    <!-- NEW PROPERTY FOR UNSIGNED ALIGNED FILE END -->
    

    然后将 NEW zip cmets 之间的行添加到发布目标

    <!-- Zip aligns the APK -->
    <zipalign-helper in.package="${out.unaligned.file}"out.package="${out.final.file}" />
    <!-- NEW Zip aligns the unsigned APK -->
    <zipalign-helper in.package="${out.packaged.file}" out.package="${out.unsignedaligned.file}" />
    <!-- NEW Zip aligns the unsigned APK  END --> 
    

    这应该会给你额外的未签名和对齐的文件。我没有测试生成的 APK,但它看起来很容易更改

    【讨论】:

    • 您建议的更改效果非常好,谢谢。以您的回答为灵感,我最终只修改了发布目标(而不是 -set-release-mode 目标)以完全删除签名步骤。 (我的 Amazon 构建和常规 Android Market 构建有一个单独的 build.xml。)
    • 你能发布整个 build.xml 文件吗?我有一个名为 common 的库项目,它被引用并且我收到此错误:BUILD FAILED /srv/android-sdk-linux_x86/tools/ant/build.xml:466: The following error occurred while executing this line: Target "${build.target}" does not exist in the project "common".
    【解决方案2】:

    你不需要压缩包,因为根据this question,亚马逊会在他们签名后压缩包。

    根据this page on the Android developer site,未签名包的zip对齐是没有用的,因为亚马逊会做的签名操作会取消对齐包。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-05
      • 2017-11-21
      相关资源
      最近更新 更多