2016-12-17 56 views
12

我嘗試了最近發佈的功能,該功能允許使用Gradle任務將ProGuard映射文件上傳到Firebase(https://firebase.google.com/docs/crash/android)。以下是我正在運行的任務。將ProGuard映射文件上傳到Firebase

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

回答

24

設置相對路徑JSON在gradle.properties(在項目根)

FirebaseServiceAccountFilePath = /firebase-crashreporting.json 

apply plugin: 'com.android.application' 
apply plugin: 'com.google.firebase.firebase-crash' 

android { 
    ... 
} 

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

dependencies { 
    ... 
} 
+0

也爲我工作 –

+0

Awsome :)訣竅 –

+0

很棒,,,謝謝 –

5

錯誤消息是誤導性的。如果沒有找到您爲服務帳戶提供的文件路徑,您將看到。嘗試傳遞服務帳戶文件的完整無歧義路徑(儘量不要依賴相對路徑)。

我將確保插件的下一個版本具有更有意義的錯誤消息,以查找未找到該文件的情況。對於麻煩抱歉。

+0

謝謝道格。使用完整路徑讓我超越了這個問題。我得到的下一個錯誤是FileNotFoundException: /google-services.json「我想這應該是依賴於'google-services.json'(因爲各種原因我們使用'FirebaseApp.initializeApp ()'來初始化firebase,而不是依賴於那個文件的存在) –

+0

明白了,這是一個完全不同的問題,我將不得不提出一個不同的問題,讓你通過命令行傳遞項目id。 ,你可以嘗試下載你的項目的google-services.json文件,並把它放在預期的位置,這樣插件可以抓住它執行上傳所需的東西。 –

+0

我們這樣做的問題是, –

0

在我來說,我是用詹金斯上傳更新您的build.gradle這個屬性proguard映射爲我。我必須將json私鑰文件的文件權限從400更改爲444