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

pau*_*ley 13 rake android publish gradle

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

我的CI设置如下:

  1. Android应用程序是使用Android Studio编写的(使用Eclipse确实不是我们的选择).
  2. 构建脚本是用Rake编写的,并运行Gradle任务以及Calabash-Android测试.
  3. 构建服务器是Teamcity 8+,目前在本地托管(尽管我们可能会在云中移动到Jenkins).

扫描完stackoverflow以获得此问题的答案后,唯一找到的是自动将apk上传到Google Play的API?然而,对于这个问题的答案是一年多了,而且我们都知道一年是软件开发的一生,所以我希望事情可能会有所改善.

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

bks*_*lle 19

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

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

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

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

apply plugin: com.savillians.gradle.androidpublisher.AndroidPublisherPlugin
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用文件中的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
}
Run Code Online (Sandbox Code Playgroud)

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

gradle androidPublish
Run Code Online (Sandbox Code Playgroud)

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

  • 我要注意的是,将P12私钥保存在您的存储库中并不是一个好主意,因为它(主要是由于Google Play发布商API的糟糕安全设计)提供了*很多*访问您的Google Play帐户.如果必须使用此插件,请将`serviceAccountKeyFile`参数指向由CI服务器管理的临时路径(例如,在Jenkins中使用Credentials Binding插件或Build Secret插件). (3认同)

Chr*_*Orr 5

如果您使用的是Jenkins,Google Play Android发布商插件可让您自动上传Alpha版或Beta版.

例如,您还可以使用它来"推广"APK,从alpha,beta,或从beta到分阶段推出.

还包括多个APK支持以及上载(或重用)扩展文件的功能.

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