是否可以从Fabric Beta下载Android APK文件?我们上传了多个版本。
来自Fabric的Mike来自这里。我们目前不提供下载.APK的方法,它们仅通过Beta by Crashlytics应用程序提供。
迟到的答案,但有人可能需要这个。您可以通过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。这可以用于同一设备。
梅苏特的回答是正确的。只是为了让它更清晰。
在第二个命令中,值$ {package_name_2} /base.apk来自第一个命令。有时它不完全是包名。
就我而言,它是$ {package_name} -1 / base.apk
如果您只想下载特定版本,请说“1.0(143)”,那么您可以在测试版应用程序中选择该版本并下载它。
如果您需要从同一版本上传多个apks(比如每个部署环境的apk,例如预验证,验证,生产),那么您需要设置gradle以为每个部署环境定义productFlavor,如下所示:
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控制台beta页面确实显示了两个apks,您可以选择下载并安装其中一个。唯一缺少的部分是两个变体都列出完全相同(因为它们具有相同的versionName和versionCode)。如果Fabric控制台显示除版本/构建信息之外的实际apk名称,则可以轻松解决此问题。我很乐意很棒的Fabric团队很快就能解决这个小功能请求。
在此之前,我使用的解决方法是根据Fabric beta控制台中的顺序识别构建(风险但有效),并将目标部署信息放在Fabric中针对给定构建的每个apk的发行说明中。