自动将Beta版Android应用发布到Google Play商店

时间:2014-05-02 11:41:05

标签: android gradle rake publish

我正在寻找一种方法,可用于从我的CI服务器自动将应用程序发布到Google Play商店的alpha和beta测试流。

我的CI设置如下:

  1. Android应用程序是使用Android Studio编写的(使用Eclipse确实不是我们的选项)。
  2. 构建脚本是用Rake编写的,并运行Gradle任务以及Calabash-Android测试。
  3. 构建服务器是Teamcity 8+,目前在本地托管(尽管我们可能会在云端移动到Jenkins)。
  4. 通过stackoverflow扫描了这个问题的答案,唯一找到的是API to automatically upload apk to Google Play?但是这个问题的答案已经超过一年了,而且我们都知道一年是软件开发的一生,所以我希望事情可能会有所改善。

    我还有一个子问题,在发布到这两个流之后,测试人员需要多长时间才能在商店中看到它们?我听到24到48小时,考虑到发布到制作的应用只花了几个小时似乎有点奇怪。

3 个答案:

答案 0 :(得分:19)

更新:该插件现在可以从maven central获得com.savillians.gradle:android-publisher:0.4。将它添加到build.gradle中的buildscripts定义中,并按照下面的说明应用它。

我有完全相同的问题,感谢@ edovino的评论和Google Play API示例,我能够创建一个gradle插件,可以发布到您想要的任何风格/变体的任何音轨。

请参阅此处的来源:https://github.com/bluesliverx/gradle-android-publisher

我正在努力将其发布到maven central,以便它可以在构建脚本中使用,但是现在你可以抓住repo中的android-publisher子目录,将它放在gradle构建的根目录中,并将文件夹重命名为buildSrc。在要发布的android项目的build.gradle文件中使用以下行:

apply plugin: com.savillians.gradle.androidpublisher.AndroidPublisherPlugin

然后,您可以使用androidPublisher文件中的build.gradle块设置发布设置。

android {
    ...
}
androidPublisher {
    applicationName = "Company-Name-Product-Name/1.0"
    packageName = "<package name>"
    serviceAccountEmail = "<service account email>"
    serviceAccountKeyFile = file('<p12 keyfile - NOT the json file>')
    track = "alpha" // default, don't need to specify
    variantName = "release" // default, don't need to specify
}

确保您创建的服务帐户具有“发布管理员”权限,下载p12密钥文件并将其放在项目目录中。然后运行以下命令:

gradle androidPublish

这会使用您指定的凭据将其发送到Google Play。祝你好运,如果你有疑问,请告诉我,因为这是全新的。

答案 1 :(得分:5)

如果您正在使用JenkinsGoogle Play Android Publisher Plugin可让您自动上传Alpha版或Beta版。

你也可以用它来促进&#34;例如,从alpha到beta,或从beta到分阶段推出的APK。

还包括多个APK支持以及上传(或重复使用)扩展文件的功能。

通过与Jenkins中的凭据功能集成,该插件可以安全地访问您的Google Play帐户,而无需检查存储库中的私钥或类似内容。

答案 2 :(得分:0)

现在有一个简单的CLI工具,您可以在构建服务器构建步骤中调用它:

https://github.com/codebysd/java-play-store-uploader

它使用Google Publisher API并使用新的JSON密钥格式。