firebaseAppDistribution 与 Github Actions 抛出错误“缺少应用程序 ID”,即使设置了 google 服务插件

El *_*uli 12 android gradle firebase github-actions firebase-app-distribution

我正在使用 github actions 实现 android 的应用程序分发,一切似乎都很好,但我收到错误:

* What went wrong:
Execution failed for task ':app:appDistributionUploadQaRelease'.
> Missing app id. Please check that it was passed in and try again
Run Code Online (Sandbox Code Playgroud)

我正在使用 google play 插件,因此它应该自动获取应用程序 ID。

https://firebase.google.com/docs/app-distribution/android/distribute-gradle#step_3_configure_your_distribution_properties

appId -- 您应用的 Firebase 应用 ID。仅当您未安装 Google Services Gradle 插件时才需要。

google-services.json我的应用程序模块中有文件,

root build.gradle

classpath 'com.google.gms:google-services:4.3.10'
classpath 'com.google.firebase:firebase-appdistribution-gradle:3.0.0' 
Run Code Online (Sandbox Code Playgroud)

appbuild.gradle:

plugins {
....
    id 'com.google.gms.google-services'
    id 'com.google.firebase.appdistribution'
}
Run Code Online (Sandbox Code Playgroud)

味道qa

productFlavors {
   ....
    qa {
        applicationId "custom.package.for.qa"
        ....
        firebaseAppDistribution {
            releaseNotes =  "something 123"
            groups = "testers"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我"appId = ...."在里面添加firebaseAppDistribution,则构建上传成功。但这不应该是必要的,因为谷歌播放插件。

并在 github 操作中:

-   name: Build & Deploy
    run: |
        export FIREBASE_TOKEN=${{ secrets.FIREBASE_TOKEN }}
        ./gradlew --stop
        ./gradlew clean
        ./gradlew assembleQaRelease appDistributionUploadQaRelease
Run Code Online (Sandbox Code Playgroud)

谢谢!

mtr*_*kal 6

这是 3.0.0 中的一个错误,在某些情况下会失败。

所以暂时降级为:com.google.firebase:firebase-appdistribution-gradle:2.2.0

我遇到了同样的问题,3.0.0但在使用服务帐户上传的 Bitbucket 管道上。相同的构建只是更新到 3.0.0 失败,更新到 2.2.0 就可以了。

由于 Google 不提供 Firebase 应用程序分发的变更日志,因此我们无法验证他们是否更改了配置中的某些内容。看起来,应用程序分发停止在 google-services.json 文件中搜索 AppId。

谷歌的回复:

我刚刚收到我们工程团队的反馈。我们的调查证实这是一个错误,因此,对于这可能在您的分发过程中造成的影响,我们深表歉意。他们正在努力解决此问题,但这很可能会在较新版本的 SDK 中提供。目前我们无法分享任何时间表来准确确认此错误何时得到修复。目前,您可以定期检查我们的发行说明GitHub 中的主要问题线程是否有更新。


tze*_*ian 6

我还确认这是他们库的最新版本中的一个错误:

com.google.firebase:firebase-appdistribution-gradle:3.0.0
Run Code Online (Sandbox Code Playgroud)

我在他们的 GitHub 上提出了一个问题,希望他们能尽快修复。


El *_*uli 0

我收到了 Firebase 支持的回复,不幸的是它仍然对我不起作用,但他能够重现该问题,然后通过执行以下操作解决它,希望它能为其他人解决该问题:

\n
Add the Firebase SDK plugins in your build.gradle (project) file. See Figure 1.0.\nApply the Firebase SDK plugins in your build.gradle (app) file. See Figure 2.0.\nMake sure that you have a google-services.json file in your app folder.\nRebuild and Upload your APK to Firebase App Distribution using the commands below:\n    In a terminal window, run gradlew assembleDebug.\n    In a terminal window, run gradlew appDistributionUploadDebug.\n
Run Code Online (Sandbox Code Playgroud)\n

图 1.0 - build.gradle(项目)

\n
buildscript {\n     // \xe2\x80\xa6\n     dependencies {\n        // Firebase SDK - Plugins\n        classpath 'com.google.gms:google-services:4.3.10'   // Google Services\n        classpath 'com.google.firebase:firebase-appdistribution-gradle:3.0.0' // App Distribution\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

图 2.0 - build.gradle(应用程序)

\n
plugins {\n    // \xe2\x80\xa6\n    id 'com.google.gms.google-services' // Google Services\n    id 'com.google.firebase.appdistribution' // App Distribution\n}\n\nandroid {\n     // \xe2\x80\xa6\n    buildTypes {\n        debug {\n            firebaseAppDistribution {\n                artifactType="APK"\n                releaseNotes="..."\n                testers="..@gmail.com"\n           }\n       }\n    }\n    // \xe2\x80\xa6\n}\n\ndependencies {\n    // \xe2\x80\xa6\n    implementation platform('com.google.firebase:firebase-bom:29.0.4')  // bom\n    implementation 'com.google.firebase:firebase-analytics-ktx'         // analytics\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我的项目正是这样设置的,但由于某种原因,github 操作仍然失败,缺少 id。

\n