如何将Jenkins / Hudson上的APK上传到Play商店?

我使用Jenkins实现了一个持续集成pipe道,但作为最后一步,我希望Jenkins将已签名的APK文件部署/上传到Google Play Store和AndroidPit。 我寻找Jenkins / Hudson插件,但只find两个:一个用于Appaloosa,一个用于Zubhium。

我在Google Play和AndroidPit上都有工作的开发者帐户,可以手动上传Jenkins生成的APK。 但我的问题是: 有没有人知道教Jenkins (例如通过shell脚本?) 将APK上传到app store的方法?

Solutions Collecting From Web of "如何将Jenkins / Hudson上的APK上传到Play商店?"

Jenkins有一个Google Play Android发布者插件 ,它使用Google I / O 2014 发布的Google Play Publishing API 。

Google也发布了Java和Python库来帮助使用API​​。

有关API的更多信息,另请参阅:
http://android-developers.blogspot.com/2014/07/grow-with-google-play-scaled-publishing.html

我只能说Google的Play商店。 有一种方法,但要警告,它不是很漂亮,你必须编写你的解决scheme。 我现在正在写一个学士论文来解决这个问题 – “Android应用程序的持续交付”。 我的解决scheme是我的,这意味着我不提出一个完美的解决scheme的声明,但我可以说这是相当工作的原型。

我发现了以下内容:

  • 第一个解决scheme是没有。 Google提供了一个Play商店API ,但是它没有上传内容。 似乎他们已经在考虑制作这样一个API,但它只提供了应用内帐单控制

  • 第二个解决scheme是使用Apache HttpComponents库,它可以让你实现自己的客户端的谷歌播放开发者控制台,但HttpClient缺乏JavaScript解释器…几种方法来实现或添加一个。 但当然不是最简单的方法。

  • 我正在开发的第三个解决scheme是使用Selenium Web Browser自动化框架。 所以基本上我从Play商店页面和对话创buildPageObjects 。 之后,您可以创build一些工厂来维护控制这些PageObject的“path”。

使用它们,我可以看到两个选项,例如WebDriver对象 ,它使用FF或Chrome等“不可见”浏览器进程,另一个是ChromeDriver ,它使用可见的浏览器进程执行用户操作。 并且不要忘记有exception处理程序,它会在使用中扫描网页上显示的错误。

由于Googledevise中可能发生的变化,导致您的软件崩溃,因此存在很多隐患。 但是也有一些方法可以解决这个问题。 =)然后创build一个XML,其中包含有关应用程序的所有有价值的信息,这些信息在继续下一步时会派上用场。

你可以创build一个Maven插件 。 这可以加载到您的Continuous Integration Server中。 我希望我能帮你一下。

我相信它目前不包含在PlayStore API中以减轻系统压力并避免滥用。

我相信我们可能在未来的Gradle插件和IDE中看到这一点。 虽然我们等待谷歌决定开放API,但这是一个解决scheme,这是如此之大,我只是不得不提出:

如果你有一个GUI,最后一步使用GUI自动化。

自Google Play发布上传API以来,已经有一个插件:

https://wiki.jenkins-ci.org/pages/viewpage.action?pageId=73533143

我还没有尝试过,但看起来像我们正在寻找。

还有其他插件声称做相同的(谢谢@ mdt)

Jenkins的Google Play Android Publisher插件是一个很好的插件。 但是,它不支持上传描述和截图(至less现在)。

我find了不错的Gradle插件,名为Gradle Play Publisher 。 它支持上传apk,更新元数据,并上传截图。 而且只需要几个步骤来设置。