将 ProGuard 映射文件上传到 Firebase

Uploading ProGuard Mapping Files to Firebase

我正在试用最近发布的功能,该功能允许使用 gradle 任务将 ProGuard 映射文件上传到 Firebase (https://firebase.google.com/docs/crash/android)。以下是我运行的任务。

./gradlew -PFirebaseServiceAccountFilePath=xxxxx.json :app:firebaseUploadReleaseProguardMapping

但是,它似乎无法识别服务帐户文件。有没有人有幸让这个工作?我也试过在 gradle.properties.

中定义 FirebaseServiceAccountFilePath
* What went wrong:
Execution failed for task ':app:firebaseUploadReleaseProguardMapping'.
> Service account file path has not been defined! Service accounts are used to authorize your mapping file uploads.  Learn more at
  https://firebase.google.com/docs/crash/android.

错误消息具有误导性。如果找不到您为服务帐户提供的文件路径,您将看到。尝试传递服务帐户文件的完整、明确的路径(尽量不要依赖于相对路径)。

我会确保下一版本的插件在找不到文件的情况下有更有意义的错误消息。抱歉给您带来麻烦。

在 gradle.properties 中将相对路径设置为 json(在项目根目录中)

FirebaseServiceAccountFilePath = /firebase-crashreporting.json

并在您的 build.gradle

中更新此 属性
apply plugin: 'com.android.application'
apply plugin: 'com.google.firebase.firebase-crash'

android {
    ...
}

setProperty("FirebaseServiceAccountFilePath", rootProject.rootDir.absolutePath + FirebaseServiceAccountFilePath)

dependencies {
    ...
}

在我的例子中,我使用 Jenkins 为我上传混淆器映射。我不得不将 json 私钥文件的文件权限从 400 更改为 444