11

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

4

4 回答 4

8

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

于 2017-06-20T14:22:03.860 回答
7

迟到的答案,但有人可能需要这个。您可以通过 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。这可以用于同一设备。

于 2019-04-12T09:42:39.687 回答
1

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

  1. adb shell pm 路径 ${package_name}

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

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

就我而言,它是 ${package_name}-1/base.apk

于 2019-05-10T14:17:42.810 回答
-1

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

如果您需要从同一个版本上传多个 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 的发行说明中,以用于给定构建。

于 2017-11-29T16:35:39.110 回答