【发布时间】:2020-01-29 13:36:24
【问题描述】:
我的应用由两个动态模块和即时应用组成。我正在使用 app bundle 将我的生产版本上传到 Play 商店。 当我尝试将 apk 上传到 Firebase App Distribution 时,我使用命令:
./gradlew assembleVariantRelease appDistributionUploadVariantRelease
不幸的是,以这种方式上传的应用程序会导致崩溃,并且堆栈跟踪告诉我动态模块中的某些类丢失了。
我找到的解决方案是使用 bundletool 并从中提取 universal.apk。事实证明,提取的 apk 效果很好,包含了应用程序工作所需的所有类。
当我使用 Fabric Beta 分发应用程序时,我只需将 apk 提供给 /projectPath/app/build/outputs/apk/variant/release 并运行 ./gradlew crashlyticsUploadDistributionVariantRelease 即可。它按预期上传了工作 apk 文件。
当我尝试对 Firebase App Distribution 执行相同操作时(将通用 apk 提供到正确的文件夹,然后运行 ./gradlew appDistributionUploadVariantRelease 而不首先添加 assembleVariantRelease),似乎该命令不仅将 apk 上传到 Firebase,而且还通过构建一个新的 apk 文件来覆盖我以前的 apk 文件。
当我手动(通过网络控制台)将 Universal.apk 上传到 Firebase 时,它也可以正常工作。
我的问题是:Firebase App Distribution 是否有 gradle 命令仅从特定文件夹上传 apk 而不会触发新 apk 文件的构建?
【问题讨论】:
标签: android firebase gradle android-app-bundle firebase-app-distribution