[运行./gradlew appDisUploadDevDebug
时出现错误,提示找不到应用程序。
罪魁祸首是我的开发人员口味applicationIdSuffix = ".dev"
。删除它会允许apk上载,但是工件将无法正确构建。为了记录,我计划仅将dev风格用于内部分发。
[我收到一条错误消息,说我应该启用应用程序分发,但是由于这是在“ firebase项目”级别完成的,并且已经完成了主要的操作,所以我不能再这样做了。
* What went wrong:
Execution failed for task ':app:appDistributionUploadDevDebug'.
> App Distribution could not find your app 1:xxxxxxxxx:android:0b3f<xxxxxxxxx>.
Make sure to onboard your app by pressing the "Get started" button on the App Distribution page in the Firebase console:
https://console.firebase.google.com/project/_/appdistribution
将其记录为错误,由于找到了解决方法,因此我将添加回复。
解决方法:要解决此问题,请打开app/google-services.json
,然后寻找mobilesdk_app_id
键作为主程序包名称。
例如,在我的情况下,我注意到1:xxxxxxx:android:0b3f<xxxxxxx>
是带有.dev
后缀的软件包的值,而主软件包名称(无.dev
)显示在1:xxxxxxx:android:7eb88<xxxxxxxx>
下]]
所以转到app/build.gradle
,firebaseAppDistribution
块看起来像这样
firebaseAppDistribution { appId = "1:xxxxxxxx:android:7eb88<xxxxxxxx>"
我仍然认为这是Firebase发行版中的错误。听起来分发gradle代码选择了正确的值,但是分发服务器不兼容。
BTW]当开发人员希望/需要拥有2个独立的Firebase项目时,您需要下载2个独立的google-services.json
文件,并将它们放置在适当的风味文件夹中。我也有一个(第二和第三)应用程序,与该设置共享一个项目,但是还没有添加firebase发行版来检查其行为。
供参考,我的解决方法在提供serviceCredentialsFile
时起作用。我也尝试过使用Web令牌认证,但结果没有定论。