1

我的应用程序由两个动态模块和即时应用程序组成。我正在使用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 文件的构建?

4

1 回答 1

2

只是在做这个,当前的 firebase 文档还没有改进,所以我决定转移到 CLI,在那里你可以指出 apk 路径。在中途,我的朋友在 firebase-community slack 中询问了这个问题,结果发现你可以通过apkPath在 gradle 中添加到 app distribtuion 块来指出 apk。

PS:您可以从这里加入社区 slack -> https://firebase.community/

于 2020-02-05T16:40:41.367 回答