我的应用程序包含两个动态模块和即时应用程序。我正在使用应用程序包将我的制作版本上传到Play商店。
当我尝试将APK上传到 Firebase应用程序发行版时,我使用以下命令:
./gradlew assembleVariantRelease appDistributionUploadVariantRelease
不幸的是,以这种方式上传的应用导致崩溃,并且堆栈跟踪告诉我动态模块中有一些类丢失了。
我发现的解决方案是使用 bundletool 并从中提取universal.apk 。事实证明,提取的apk效果很好,包含了要应用程序正常运行的所有类。
当我使用 Fabric Beta 分发应用程序时,我只需要向
/projectPath/app/build/outputs/apk/variant/release
提供apk并运行./gradlew crashlyticsUploadDistributionVariantRelease
即可正常工作。它按预期上传了可运行的apk文件。当我尝试对Firebase App Distribution执行相同操作时(将通用apk提供到正确的文件夹,然后在不先添加
./gradlew appDistributionUploadVariantRelease
的情况下运行assembleVariantRelease
),该命令似乎不仅将apk上传到了Firebase,而且还覆盖了我以前的apk文件建立一个新的。当我手动(通过Web控制台)将Universal.apk上传到Firebase时,它也可以正常工作。
我的问题是:是否有gradle命令让Firebase App Distribution仅从特定文件夹上载apk而不会触发生成新apk文件?
最佳答案
只是在进行此操作,当前的Firebase文档尚未得到改进,因此我决定转到CLI,在此您可以指出apk路径。在中途,我的 friend 在firebase-community松弛中问了这个问题,结果您可以通过在gradle的app distribtuion块中添加apkPath
来指出apk。
附注:您可以从此处加入社区闲暇-> https://firebase.community/