【问题标题】:Download Android APK file from Fabric Beta从 Fabric Beta 下载 Android APK 文件
【发布时间】:2017-11-22 04:38:16
【问题描述】:

是否可以从 Fabric Beta 下载 Android APK 文件?我们上传了多个版本。

【问题讨论】:

    标签: google-fabric fabric-beta


    【解决方案1】:

    来自 Fabric 的 Mike。我们目前不提供下载 .APK 的方法,它们仅由 Crashlytics 应用程序通过 Beta 版提供。

    【讨论】:

    • 嗨,迈克。现在你们提供这种选择吗? Fabric 迁移到 Firebase 后,我无法下载位于 Beta 中的关键版本
    • 我建议联系 Firebase 支持,看看是否有办法或提供反馈。我不再从事该产品的工作,所以我不知道最新的情况。
    【解决方案2】:

    迟到的答案,但有人可能需要这个。您可以通过 Beta 或任何方式从应用程序安装的设备上以一种 hacky 方式下载它:

    将设备连接到您的计算机并运行以下命令,确保您已正确配置adb

    adb shell pm list packages | grep xyz          # get the package name of the app
    adb shell pm path app.xyz.stg                  # get the path of the app
    adb pull /data/app/app.xyz.stg/base.apk .      # pull the app to PWD
    

    应用的名字是base.apk,改成xyz。这可以用于同一设备。

    【讨论】:

      【解决方案3】:

      梅苏特的回答是正确的。只是为了更清楚。

      1. adb shell pm path ${package_name}

      2. adb pull /data/app/${package_name_2}/base.apk

      在第二个命令中,值 ${package_name_2}/base.apk 来自第一个命令。有时它不完全是包名称。

      在我的例子中,它是 ${package_name}-1/base.apk

      【讨论】:

      • 如果您喜欢 Mesut 的回答,请给他一个 'up' :)
      • 在这里,对于其他任何人来说半自动化(所以我们可以将旧版本导入 Firebase App Distribution,因为有时需要测试更新/迁移):adb pull `adb shell pm path your.base.package.name | sed 's/package://'` & mv base.apk YourApp-1.2.3-staging.apk(或任何命名方案你喜欢...)
      【解决方案4】:

      如果您只想下载特定版本,例如“1.0(143)”,那么您可以在测试版应用中选择该版本并下载。

      如果您需要从同一构建中上传多个 apk(例如为每个部署环境(例如预验证、验证、生产)上传一个 apk),那么您需要设置您的 gradle 来为每个部署环境定义 productFlavors,如下所示:

      android {
          ...
          flavorDimensions "deploymentEnvironment"
      
          productFlavors {
              prevalidation {
                  dimension "deploymentEnvironment"
              }
              validation {
                  dimension "deploymentEnvironment"
              }
              production {
                  dimension "deploymentEnvironment"
              }
          }
          ...
      }
      

      然后,您使用以下 gradle 任务作为说明性示例,将来自同一个构建(每个目标部署环境一个)的多个 APK 发布到同一个 Fabric 项目。实际任务取决于为您的项目定义的变体:

      ./gradlew -s assemblePrevalidationRelease assembleValidationRelease ./gradlew -s crashlyticsUploadDistributionPrevalidationRelease crashlyticsUploadDistributionValidationRelease

      Fabric 控制台测试版页面确实显示了这两个 apk,您可以选择下载并安装其中一个。唯一缺少的部分是两个变体被列为完全相同(因为它们具有相同的 versionName 和 versionCode)。如果 Fabric 控制台除了版本/构建信息之外还显示实际的 apk 名称,这可以很容易地解决。我希望出色的 Fabric 团队能够尽快解决这个小功能请求。

      在此之前,我使用的一种解决方法是根据 Fabric beta 控制台中的顺序识别构建(有风险但有效),并将目标部署信息放在 Fabric 中给定构建的每个 apk 的发行说明中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多