安卓Ant构建:调试和发布目标

8
根据“help”目标文档:
1. debug: 构建应用程序并使用调试密钥进行签名。 2. release: 构建应用程序,生成的APK文件在发布之前必须进行签名。
以下是我找到的内容,与我的预期略有不同:
1. debug: 忽略build.properties中的密钥库定义,无论您是否指定。它使用哪个密钥库文件?与Eclipse相同:默认的debug.keystore文件在您的“文档和设置”中。 它创建两个文件: - debug-unaligned.apk(已签名,未对齐) - debug.apk(已签名,已对齐)
2. release: 'help'说它没有签名。它创建这些文件: - unsigned.apk(未签名,未对齐)
接下来两个仅在 build.properties 中指定值时才会出现: - unaligned.apk(已签名,未对齐) - release.apk(已签名,已对齐)
任何有用的评论/验证将不胜感激。
3个回答

10

它使用哪个密钥库文件?与Eclipse相同:您的“文档和设置”中的默认debug.keystore文件吗?

是的。


谢谢!我假设我的队友可以用我的debug.keystore文件覆盖他们的默认文件,这样没问题吧?Eclipse不会试图覆盖这个文件,对吧? - manisha
@CommonsWare - 听起来不错。我们尝试了一下,看起来运行正常。我的队友可以使用Ant命令行构建,也可以在Eclipse中构建。这篇帖子对我们非常有帮助,感谢你的答案! - manisha
@CommonsWare 有没有可能让 Ant 从其他地方获取调试密钥库,就像发布版一样?我知道这可以在 Eclipse 中完成,所以我想应该也可以从命令行中完成。 - Scorpio
@Scorpio:“是否可以让Ant从其他地方获取调试密钥库,就像发布一样?”--也许可以。“所以我想应该可以通过命令行来完成”--使用Gradle肯定是可以的。谷歌已经建议开发人员停止在一年多的时间里投资于自定义Ant脚本。 - CommonsWare
@CommonsWare 是的,我知道,但是老习惯难改,我正在工作的项目仍然支持ant... - Scorpio

7

就发布目标而言,您将获得如下行为:

如果你有这样的行:

key.store=c:/users/me/my-release-key.keystore
key.alias=release_alias
key.store.password=myStorePassword
key.alias.password=myAliasPassword

在您的build.properties中,它将自动构建并签署您的apk,而无需提示任何内容。
如果您注释掉最后两行,则会提示您输入密码,如果密码正确,则完成签名构建。
如果您没有上述任何一行,则仅会构建一个未签名的apk,并以以下方式结束:
-release-nosign:
[echo] No key.store and key.alias properties found in build.properties.
[echo] Please sign C:\dev\projects\AntBuilds\MyProject\bin\MyProject-unsigned.apk manually
[echo] and run zipalign from the Android SDK tools.

.


这正是我所想的:关于帮助中的“发布”部分可能需要一点澄清,但在第一次使用时您会找到它。我喜欢有提示输入密码的处理方式。 - charlest

1

这个答案对我有用,我正在使用ant自动编译android应用程序,它会提示需要密码,我写了一个名为password的文件,并使用命令---ant release < passwd, 但是,它还提示我需要输入密码。

使用这里的提示

key.store=c:/users/me/my-release-key.keystore
key.alias=release_alias
key.store.password=myStorePassword
key.alias.password=myAliasPassword

我解决了这个问题。


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