【问题标题】:android ant build: debug and release targetsandroid ant build:调试和发布目标
【发布时间】:2011-06-10 21:11:12
【问题描述】:

根据“帮助”目标文档:

  1. debug:构建应用程序和 使用调试密钥对其进行签名
  2. 释放;构建应用程序: 生成的 APK 文件必须经过签名 在发布之前

这是我发现的,与我预期的有点不同:

调试:忽略build.properties 中的密钥库定义,无论您是否指定它们。它使用的是哪个 ksysstore 文件?与 Eclipse 相同:Documents and Settings 中的默认debug.keystore 文件?

它创建了两个文件:

  1. -debug-unaligned.apk(签名,未对齐)
  2. -debug.apk(签名,对齐)

release: 'help' 表示它没有签名。它会创建这些文件:

  1. -unsigned.apk(无符号,未对齐)

接下来的两个仅当您具有build.properties 中指定的值时:

  1. -unaligned.apk(已签名,未对齐)
  2. -release.apk(签名,对齐)

任何有用的 cmets / 验证将不胜感激。

【问题讨论】:

    标签: android ant


    【解决方案1】:

    它使用的是哪个 kesystore 文件?和 Eclipse 一样:你的 Documents and Settings 中的默认 debug.keystore 文件?

    是的。

    【讨论】:

    • 谢谢!我假设我的队友可以用我的覆盖他们的默认 debug.keystore 文件? Eclipse 不会尝试覆盖这个文件,对吧?
    • @CommonsWare - 听起来不错。我们尝试了它,它似乎正在工作。我的队友可以使用 Ant 从命令行构建,也可以从 Eclipse 构建。这篇文章对我们帮助很大,感谢您的回答!
    • @CommonsWare 是否可以让 ant 从其他地方获取调试密钥库以进行发布?我知道这可以从 Eclipse 完成,所以我认为它也应该可以从命令行完成。
    • @Scorpio “是否可以让 ant 从其他地方获取调试密钥库以进行发布?” - 可能。 “所以我认为也应该可以从命令行执行此操作” - 使用 Gradle 绝对是可能的。一年多来,Google 一直在建议开发人员停止投资自定义 Ant 脚本。
    • @CommonsWare 是的,我知道,但是旧习惯很难改掉,我正在做的项目仍然支持 ant...
    【解决方案2】:

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

    如果你有这样的行:

    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.
    

    .

    【讨论】:

    • 这就是我的想法:帮助的“发布”部分可能需要稍微澄清一下,但你第一次这样做时就会发现它。我喜欢密码处理的提示。
    【解决方案3】:

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

    使用此处的提示

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

    我解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多