【问题标题】:Building the signing and release prepartion of android apps into jenkins/hudson?将 android 应用程序的签名和发布准备构建到 jenkins/hudson 中?
【发布时间】:2024-04-15 22:45:02
【问题描述】:

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

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

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

有什么建议吗?

【问题讨论】:

    标签: android hudson jenkins android-install-apk


    【解决方案1】:

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

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

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

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

    • Parameterized builds:这些是可以在单击立即构建时自定义的环境变量。您可以添加稍后在构建步骤中做出反应的标志。

    • 使用https://jenkins-server/job/jobname/lastSuccessfulBuild/artifact/ 或此处的一种方法添加另一个作业,从您的主要构建作业中提取工件并对其进行签名:How to access Hudson job1 artifacts from another job2?

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 有可能:只需将“key.store.password”和“key.alias.password”添加到您的属性文件中。
      【解决方案3】:

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

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

      【讨论】: