Загрузка файлов ProGuard в Firebase

Попробуйте недавно выпущенную функцию, которая позволяет загружать файл сопоставления ProGuard в Firebase (https://firebase.google.com/docs/crash/android) с помощью задачи gradle. Ниже приводится задача, которую я выполняю.

./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.

Ответ 1

Установить относительный путь к json в gradle.properties(в корне проекта)

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 {
    ...
}

Ответ 2

Сообщение об ошибке вводит в заблуждение. Вы увидите, что если путь к файлу, который вы указали для учетной записи службы, не найден. Попробуйте передать полный, недвусмысленный путь к файлу учетной записи службы (старайтесь не зависеть от относительных путей).

Я буду следить за тем, чтобы следующая версия плагина имела более значимое сообщение об ошибке для случая, когда файл не найден. Извините за беспокойство.

Ответ 3

В моем случае я использовал Jenkins для загрузки сопоставлений proguard для меня. Мне пришлось изменить права доступа к файлу json private key с 400 до 444.