12

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

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

但是,它似乎没有识别服务帐户文件。有没有人有运气让这个工作?我也尝试过FirebaseServiceAccountFilePath在 gradle.properties 中定义。

* 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.
4

3 回答 3

24

在 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 {
    ...
}
于 2017-01-26T23:03:39.863 回答
5

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

对于找不到文件的情况,我将确保插件的下一个版本具有更有意义的错误消息。抱歉给您添麻烦了。

于 2016-12-17T18:13:51.207 回答
0

就我而言,我正在使用 Jenkins 为我上传 proguard 映射。我不得不将 json 私钥文件的文件权限从400更改为444.

于 2017-04-17T08:16:21.140 回答