从 Fabric Beta 下载 Android APK 文件

Download Android APK file from Fabric Beta

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

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

如果您只想下载特定版本,请说“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,您可以选择下载并安装一个。唯一缺少的部分是两个变体被列为完全相同(因为它们具有相同的版本名称和版本代码)。如果 Fabric 控制台除了显示版本/构建信息之外还显示实际的 apk 名称,这很容易解决。我希望很棒的 Fabric 团队能尽快解决这个小功能请求。

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

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

Mesut 的回答是正确的。只是为了更清楚。

  1. adb shell 下午路径 ${package_name}

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

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

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