Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用Ant构建已签名和未签名版本_Android_Ant_Amazon - Fatal编程技术网

Android 使用Ant构建已签名和未签名版本

Android 使用Ant构建已签名和未签名版本,android,ant,amazon,Android,Ant,Amazon,我在安卓市场上发布了一款安卓应用程序。我只需键入antrelease即可准备发布的构建。我配置了一个密钥库,这样我就可以在一个步骤中构建最终的已签名、模糊、zipaligned的市场就绪APK。我没有修改任何build.xml文件,只是将它们指向我的密钥库 现在,我也需要在亚马逊商店发布这个应用程序。这需要我生成一个未签名的生成。作为如上所述构建正常版本构建过程的一部分,在bin目录中生成MyApp release unsigned.apk文件。这看起来很有希望,除了此文件的时间戳早于同样生成的

我在安卓市场上发布了一款安卓应用程序。我只需键入
antrelease
即可准备发布的构建。我配置了一个密钥库,这样我就可以在一个步骤中构建最终的已签名、模糊、zipaligned的市场就绪APK。我没有修改任何
build.xml
文件,只是将它们指向我的密钥库

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


我需要对构建过程进行哪些修改,以便用一个命令生成一个(未签名、模糊、zipaling)Amazon就绪的APK

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

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

通过在注释之间添加行来覆盖-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 -->

然后在发布目标中添加新zip注释之间的行

<!-- 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,但是它看起来非常简单,可以更改

您不需要对包进行zipalign,因为根据amazon的说法,他们在签署包后会对包进行zipalign


根据,对未签名的包进行zip对齐是没有用的,因为amazon将执行的签名操作将取消对包的对齐。

您建议的更改非常有效,谢谢。以您的回答为灵感,我最终只修改了发布目标(而不是-set发布模式目标)以完全删除签名步骤。(我有一个单独的build.xml用于我的Amazon构建和我的常规Android Market构建。)你能发布整个build.xml文件吗?我有一个名为
common
的库项目,它被引用了,我得到了以下错误:
BUILD FAILED/srv/android-sdk-linux_x86/tools/ant/BUILD.xml:466:执行此行时发生了以下错误:项目“common”中不存在目标“${BUILD.Target}”。