我的应用程序由两个动态模块和即时应用程序组成。我正在使用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 文件新的一个。
当我手动(通过 Web 控制台)将 Universal.apk 上传到 Firebase 时,它也可以正常工作。
我的问题是:Firebase App Distribution 是否有一个 gradle 命令仅从特定文件夹上传 apk 而不会触发新 apk 文件的构建?