【问题标题】:Automatic publish Beta Android app to the Google Play store自动将 Beta Android 应用发布到 Google Play 商店
【发布时间】:2014-05-02 11:41:04
【问题描述】:

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

我的 CI 设置如下:

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

通过stackoverflow扫描了这个问题的答案,唯一找到的是API to automatically upload apk to Google Play?这个答案已经有一年多了,而且我们都知道一年是软件开发的一生,所以我希望事情可能有所改善。

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

【问题讨论】:

  • Brand-spanking-new:Google 刚刚提供了发布 API。检查文档@@developers.google.com/android-publisher/#publishing 抱歉 - 还没有完整的解决方案,我自己正在完成设置...
  • 这个问题的状态如何?
  • @pauljriley 你能分享你如何上传apk到play store吗?
  • 我不知道,但是你有没有为此寻找过 Android Studio 插件?
  • 对于那些通过网络搜索来到这里并只想得到答案的人,不管是否离题:Fastlane 是一个自动化 Play Store 和 App Store 部署的工具。

标签: android gradle rake publish


【解决方案1】:

编辑

下面的插件不再有效,因为 Google shut down 他们的 API 的旧版本。考虑改用Gradle Play Publisher


更新:插件现在可以从 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。在build.gradle 文件中为您要发布的android 项目使用以下行:

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

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

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。祝您好运,如果您有任何问题,请告诉我,因为这是全新的。

【讨论】:

  • 我目前正在尝试使用这个插件,但是插件和类路径配置不匹配。说找不到那个指定的插件。
  • 它如何知道使用哪个 APK?
  • @user1810737,您是否将其添加到 buildscripts 配置块中,而不仅仅是普通的依赖项?它使用 variantName 来决定要获取哪个 APK。除非您定义自己的变体,否则默认的 release 应该可以正常工作。
  • applicationName 是否需要与开发者控制台中的名称匹配?它甚至可以在任何地方使用吗?
  • 我会注意到,将 P12 私钥保存在您的存储库中并不是一个好主意,因为它(主要归功于 Google Play 发布者 API 的糟糕安全设计)提供了很多 访问您的 Google Play 帐户。如果您必须使用此插件,请将 serviceAccountKeyFile 参数指向由 CI 服务器管理的临时路径(例如,在 Jenkins 中使用 Credentials Binding 插件或 Build Secret 插件)。
【解决方案2】:

如果您使用的是JenkinsGoogle Play Android Publisher Plugin 可让您自动上传 alpha 或 beta 版本。

例如,您还可以使用它来将 APK 从 alpha 版“提升”到 beta 版,或者从 beta 版到分阶段推出。

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

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

【讨论】:

    【解决方案3】:

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

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

    它使用谷歌发布者 API 并使用新的 JSON 密钥格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-20
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      • 2017-12-22
      • 1970-01-01
      • 2017-07-07
      相关资源
      最近更新 更多