我正在使用 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
我正在使用 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'
在app
的build.gradle
中:
Translated text:
in app
's build.gradle
:
plugins {
....
id 'com.google.gms.google-services'
id 'com.google.firebase.appdistribution'
}
在 qa
风格中:
productFlavors {
....
qa {
applicationId "custom.package.for.qa"
....
firebaseAppDistribution {
releaseNotes = "something 123"
groups = "testers"
}
}
}
如果我在firebaseAppDistribution
中添加"appId = ...."
,则构建成功上传。但由于谷歌玩插件,这不应该是必需的。
在 Github Action 中:
- name: Build & Deploy
run: |
export FIREBASE_TOKEN=${{ secrets.FIREBASE_TOKEN }}
./gradlew --stop
./gradlew clean
./gradlew assembleQaRelease appDistributionUploadQaRelease
谢谢!
firebase-appdistribution-gradle:3.0.0
的一个bug。奇怪的是,当我直接从命令行运行./gradlew
命令时,它可以正常工作。但是在新检出代码且清除所有缓存(gradle等)的情况下,第一次运行也会从命令行失败。第二次运行后,它就可以正常工作了。问题在于CI(GitHub actions/CircleCI)总是在新的检出代码环境下运行。 - Luzian