2017-01-21 59 views
7

Staram się postępować zgodnie z tym documentation tutorial przez Firebase, aby skonfigurować Android Studio do automatycznego wysyłania mojego pliku mapowania ProGuard podczas budowania pakietu APK wersji dla mojej aplikacji na Androida.Trudności z ustawianiem Gradle do wysyłania plików mapowania ProGuard do Firebase

Jednak nie mogłem zrozumieć kroków 4 i 5 w części "Przesyłanie plików mapowania ProGuard z Gradle", głównie dlatego, że nie znalazłem żadnego pliku gradle.properties w katalogu głównym projektu lub ścieżce domowej, a ponieważ chcę zautomatyzować wykonywanie zadania app:firebaseUploadReleaseProguardMapping w Android Studio, którego nie wiem, jak to zrobić.

To jest zawartość pliku gradle.properties Utworzyłem w moim katalogu projektu:

FirebaseServiceAccountFilePath = /app/firebase-crash-reporting.json 

Plik firebase-crash-reporting.json donosi klucz prywatny moja ruina Firebase. Mój plik mapowań jest generowany w katalogu /app/build/outputs/mapping/release/, jeśli to pomaga.

Pomóż mi w wykonaniu tych 2 kroków i automatyzacji procesu w Android Studio.

Odpowiedz

1

gradle.properties jest własnością użytkownika i jest przez niego zarządzany całkowicie. Musisz go utworzyć, jeśli jeszcze nie istnieje. Oznacza to, że najprawdopodobniej powinieneś uzyskać informacje o tym, w jaki sposób zapewnia ona właściwości kompilacji i która lokalizacja jest najlepsza dla twoich właściwości.

Nie musisz nawet używać gradle.properties. Możesz również określić wszystkie właściwości wtyczki Crash Reporting za pomocą wiersza poleceń.

Po określeniu ścieżki do pliku konta usługi należy podać pełną, jednoznaczną ścieżkę do pliku. W twoim przykładzie wygląda na to, że zakładasz, że będzie wyglądał w katalogu aplikacji w Twoim projekcie. Jeśli chcesz to zrobić, musisz podać pełną ścieżkę do pliku.

+0

Dzięki, poprawiłem plik gradle.properties, teraz zawiera on pełną ścieżkę do pliku JSON klucza prywatnego. Jednak nie jestem pewien, jak sprawić, aby Android Studio uruchamiał "app: firebaseUploadReleaseProguardMapping" po "assembleRelease" poprawnie, próbowałem stworzyć konfigurację kompilacji Gradle, która uruchamia "app" config następnie zadanie firebaseRelease, ale kończy się niepowodzeniem z "No task to execute jest określony "błąd, będę wdzięczny za pomoc w tej sprawie. –

+0

Zadanie, które prześle mapowanie, najpierw utworzy plik APK. Widać to na liście zadań, które wykonuje. –

+0

To działa idealnie, widzę nowy plik mapujący przesłany do mojego pulpitu nawigacyjnego Firebase dla tej wersji, ale ten skrypt nie wdraża pakietu APK na moim urządzeniu przez ADB podczas budowania przy użyciu opcji "Uruchom" lub "Debugowanie", czy istnieje coś, co mogę dodać, aby wdrożyć pakiet APK, który został zbudowany? Dziękuję bardzo. –

5

Wystarczy dodać

afterEvaluate { 
     assembleRelease.doLast { 
      firebaseUploadReleaseProguardMapping.execute() 
     } 
    } 

w android części build.gradle.

Spowoduje to automatyczne przesłanie pliku mapowania do bazy Firebase, a także uruchomienie/wdrożenie apk do urządzenia za pomocą ADB.

+0

Błąd: (87, 1) Wykonanie nie powiodło się dla zadania ": hotelsclick: assembleRelease". > Nie można uzyskać nieznanej właściwości "firebaseUploadReleaseProguardMapping" dla zadania ": hotelsclick: assembleRelease" typu org.gradle.api.DefaultTask. Wydaje mi się, że skrypt nie wie, gdzie można uzyskać właściwość firebaseUploadReleaseProguardMapping. I ja też tego nie wiem ... -.- –

+0

@MarcoZanetti czy dodałeś 'compile 'com.google.firebase: firebase-crash: 10.2.4'' do' build.gradle'? –

+0

Tak @ vipul-asri :-) –