3

我在家里有一些副项目应用程序,我设置了一个 Jenkins 安装来检查它们并构建 APK,然后我将它们转移到我的手机上并玩弄。

我希望在市场上免费发布其中的一些,因此我需要用证书对其进行签名并准备最终的 APK。

詹金斯可以做到这一点吗?例如,我是否可以有一个构建目标来生成我的“开发中”APK,并让该目标(或另一个)创建准备就绪的最终 APK 文件?

有什么建议吗?

4

3 回答 3

5

在标准的 Android ant 构建文件中包含一个发布目标。如果在没有进一步配置的情况下启动,则只需构建一个未签名的 apk。正如 Christopher 指出的那样,您可以使用 和 进行签名构建key.storekey.store.password配置key.aliaskey.alias.password的密钥库并通过 ant 脚本生成签名的 apk。有关此的文档可能会提供有关配置构建的更多信息。

于 2011-03-18T18:22:08.423 回答
5

如果可以自动进行签名(通过命令行或类似方式),那么答案是“是”。

有几种方法可以实现这一点,但首先:是否有充分的理由不签署每个构建?

签署每个构建意味着您不需要任何额外的配置来创建可发布的工件,并且您知道您测试的内容和部署的内容是相同的。

如果您想对您签署的构建有选择性,可以想到两种方法:

  • 参数化构建:这些是可以在单击立即构建时自定义的环境变量。您可以添加一个标志,稍后在构建步骤中对其做出反应。

  • 添加另一个作业,从您的主要构建作业中提取工件并对其进行签名,使用https://jenkins-server/job/jobname/lastSuccessfulBuild/artifact/以下方法之一:如何从另一个作业 2 访问 Hudson 作业 1 工件?

于 2011-03-18T18:14:30.110 回答
2

是的......恕我直言,最简单的方法是使用 Maven Android 插件自动化它。示例项目有我在其中编写的 MorseFlash 示例,它使整个发布过程自动化,包括 jarsigning、zipaligning 和 proguard 运行、在开发和生产配置之间切换等等。

这一切都可以在命令行上完成,因此也可以在 Hudson 上完成。顺便说一句,如果你有兴趣,我在 AnDevCon 上做了关于 Maven 和 Android 以及 Android 测试和 CI 的演示,幻灯片在我的网站上。http://www.simpligility.com

于 2011-03-22T23:28:29.023 回答