我使用Jenkins实现了持续集成管道,但作为最后一步,我希望Jenkins将已签名的APK文件部署/上传到Google Play商店和AndroidPit。我找了Jenkins / Hudson插件,但只发现了两个:一个用于Appaloosa,另一个用于Zubhium。
我在Google Play和AndroidPit上都有一个有效的开发者帐户,可以手动上传Jenkins生成的APK。但我的问题是:有没有人知道教Jenkins的方法(例如通过shell脚本?)将APK上传到提到的应用商店?
答案 0 :(得分:22)
詹金斯有一个Google Play Android Publisher plugin,它使用了在Google I / O 2014上宣布的Google Play Publishing API。
Google还发布了Java and Python libraries来帮助您使用该API。
有关API的更多信息,另请参阅:
http://android-developers.blogspot.com/2014/07/grow-with-google-play-scaled-publishing.html
答案 1 :(得分:4)
我只能说Google的Play商店。有一种方法,但要注意,它不美观,你必须编写你的解决方案。我现在正在写一个学士论文来解决这个问题 - “Android应用程序的持续交付”。我的解决方案是我的,这意味着我没有提出完美的解决方案,但我可以说这是一个非常有效的原型。
我发现了以下内容:
第一个解决方案是没有。谷歌提供Play Store API,但缺少上传内容。似乎他们已经在考虑制作这样的API,但它只提供应用内结算控制
第二个解决方案是使用Apache HttpComponents Library,它允许您为Google Play开发者控制台实现自己的客户端,但HttpClient缺少JavaScript解释器......有几种方法可以实现或添加一个。但当然,这不是最简单的方法。
我正在研究的第三个解决方案是使用Selenium Web浏览器自动化框架。所以基本上我从那些Play商店页面和对话中创建PageObjects。之后,您可以创建一些Factory来维护控制这些PageObjects的“路径”。
使用它们,我可以看到两个选项,例如WebDriver Objects使用“隐形”浏览器进程(如FF或Chrome),另一个我使用ChromeDriver使用可见浏览器进程,执行用户操作。并且不要忘记使用异常处理程序,它在使用时扫描网页是否出现错误。
由于Google的设计可能会发生变化,导致您的软件中断,因此存在很多陷阱。但也有一些方法可以解决这个问题。 =)并创建一个包含有关应用程序的所有有价值信息的XML,在继续下一步时会派上用场。
你可以create a Maven Plugin。这可以加载到Continuous Integration Server中。我希望我能帮助你一点。
答案 2 :(得分:2)
我认为PlayStore API目前不包含在内以减轻系统压力并避免滥用。
我相信我们可能会在gradle插件和IDE中看到这一点。 当我们等待谷歌决定打开API时,这是一个解决方案,就是这样,我只需提出它:
如果您有GUI,请在最后一步使用GUI自动化。
答案 3 :(得分:2)
由于Google Play发布了上传API,因此制作了一个插件:
https://wiki.jenkins-ci.org/pages/viewpage.action?pageId=73533143
我还没有尝试过,但看起来它正是我们想要的。
还有其他插件声称也会这样做(感谢@mdt)
答案 4 :(得分:1)
Jenkins的Google Play Android Publisher插件很不错。但是,它不支持上传说明和屏幕截图(至少目前为止)。
我找到了不错的Gradle插件,名为Gradle Play Publisher。它支持上传apk,更新元数据和上传截图。它只需要几个步骤来设置。