我在家里有一些副项目应用程序,我设置了一个 Jenkins 安装来检查它们并构建 APK,然后我将它们转移到我的手机上并玩弄。
我希望在市场上免费发布其中的一些,因此我需要用证书对其进行签名并准备最终的 APK。
詹金斯可以做到这一点吗?例如,我是否可以有一个构建目标来生成我的“开发中”APK,并让该目标(或另一个)创建准备就绪的最终 APK 文件?
有什么建议吗?
我在家里有一些副项目应用程序,我设置了一个 Jenkins 安装来检查它们并构建 APK,然后我将它们转移到我的手机上并玩弄。
我希望在市场上免费发布其中的一些,因此我需要用证书对其进行签名并准备最终的 APK。
詹金斯可以做到这一点吗?例如,我是否可以有一个构建目标来生成我的“开发中”APK,并让该目标(或另一个)创建准备就绪的最终 APK 文件?
有什么建议吗?
在标准的 Android ant 构建文件中包含一个发布目标。如果在没有进一步配置的情况下启动,则只需构建一个未签名的 apk。正如 Christopher 指出的那样,您可以使用 和 进行签名构建key.store
来key.store.password
配置key.alias
您key.alias.password
的密钥库并通过 ant 脚本生成签名的 apk。有关此的文档可能会提供有关配置构建的更多信息。
如果可以自动进行签名(通过命令行或类似方式),那么答案是“是”。
有几种方法可以实现这一点,但首先:是否有充分的理由不签署每个构建?
签署每个构建意味着您不需要任何额外的配置来创建可发布的工件,并且您知道您测试的内容和部署的内容是相同的。
如果您想对您签署的构建有选择性,可以想到两种方法:
参数化构建:这些是可以在单击立即构建时自定义的环境变量。您可以添加一个标志,稍后在构建步骤中对其做出反应。
添加另一个作业,从您的主要构建作业中提取工件并对其进行签名,使用https://jenkins-server/job/jobname/lastSuccessfulBuild/artifact/
以下方法之一:如何从另一个作业 2 访问 Hudson 作业 1 工件?
是的......恕我直言,最简单的方法是使用 Maven Android 插件自动化它。示例项目有我在其中编写的 MorseFlash 示例,它使整个发布过程自动化,包括 jarsigning、zipaligning 和 proguard 运行、在开发和生产配置之间切换等等。
这一切都可以在命令行上完成,因此也可以在 Hudson 上完成。顺便说一句,如果你有兴趣,我在 AnDevCon 上做了关于 Maven 和 Android 以及 Android 测试和 CI 的演示,幻灯片在我的网站上。http://www.simpligility.com