2017-01-19 56 views
8

otrzymuję następujący błąd podczas wykonywania skryptu, aby przesłać pliki symboli (za każdym razem staram się budować mój projekt):iOS Firebase crash Raportowanie - Błąd running build skrypt

upload-sym-util.bash:351: error: symbolFileUploadLocation: The API Key and the authentication credential are from different projects.

Oto mój skrypt kompilacji:

if [ "$CONFIGURATION" == "Debug" ]; then 
    GOOGLE_APP_ID=<app-id> 
    "${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey-Dev.json 
else 
    GOOGLE_APP_ID=<app-id> 
    "${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey.json 
fi 

Co zrobiłem/sprawdzane:

  1. GOOGLE_APP_ID i CrashReportingKey*.json są związane dowcip h ten sam projekt.
  2. Moje pliki GoogleService-Info*.plist mają pole API_KEY.
  3. Sprawdzanie "Uruchom skrypt tylko podczas instalacji", co pozwala mi uruchomić aplikację, ale w rzeczywistości nie uruchamia skryptu w środowisku programistycznym. Tak więc awarie są wysyłane do Firebase, ale nie są one symbolizowane.

Jestem otwarty na wszelkie pomysły. Dzięki!

+0

Czy starał się usunąć GoogleService-Info * .plist, a następnie pobrać i zainstalować ponownie? – i6x86

+0

Przejdę teraz dokładnie przez ten sam problem. – JustinM

+0

@ i6x86 Nie "przeinstalowałem" ich, ale pobrałem je ponownie i zweryfikowałem, że są takie same jak te w moim projekcie. – cohenadair

Odpowiedz

8

Masz rację, że nie ma możliwości zastąpienia usługi GoogleService-Info.plist. Nadal istnieje jednak sposób na zastąpienie informacji, które wykorzystuje skrypt wysyłania z tego pliku.

  1. Otwórz plik GoogleService-Info.plist odpowiadający .json.
  2. Wyszukaj GOOGLE_APP_ID i API_KEY.
  3. Dostosuj skrypt budować tak:

    export FIREBASE_APP_ID=<GOOGLE_APP_ID> 
    export FIREBASE_API_KEY=<API_KEY> 
    
    "${PODS_ROOT}"/FirebaseCrash/upload-sym "ServiceAccount.json" 
    

W twoim przypadku, jako ostatni skrypt powinien wyglądać mniej więcej tak:

if [ "$CONFIGURATION" == "Debug" ]; then 
     export FIREBASE_APP_ID=<app-id> 
     export FIREBASE_API_KEY=<API_KEY for dev> 
     "${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey-Dev.json 
    else 
     export FIREBASE_APP_ID=<app-id> 
     export FIREBASE_API_KEY=<API_KEY for release> 
     "${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey.json 
    fi 
+0

Zaznaczam to jako zaakceptowaną odpowiedź, ponieważ faktycznie rozwiązuje problem w pytaniu. Moja odpowiedź nie pozwala na dwa środowiska awaryjne. – cohenadair

4

Problem dotyczy nazwy pliku GoogleService-Info.plist.

W moim projekcie, miałem następujące pliki:

  • GoogleService-Info.plist
  • GoogleService-Info-Dev.plist
  • CrashReportingKey.json
  • CrashReportingKey-Dev.json

Firebase crash Raportowanie skrypt wysyłania zawsze szuka pliku o nazwie GoogleService-Info.plist dokładnie. Odkąd znalazłem jeden, a ja mówiłem skryptowi, aby użył CrashReportingKey-Dev.json, rzucił błąd niezgodności projektu.

Z moich badań wynika, że ​​nie ma sposobu, aby przekazać skrypt do przesłania Firebase Crash Reporting, którego pliku chcesz użyć, dlatego zdecydowałem się przesłać pliki symboli tylko do wersji, co jest w porządku.

Mój skrypt uruchamiania jest teraz następujący i działa tak, jak powinien.

if [ "$CONFIGURATION" == "Release" ]; then 
    GOOGLE_APP_ID=<app-id> 
    "${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey.json 
fi 

Następnie usunąłem CrashReportingKey-Dev.json z mojego projektu.

7

postanowiłem:

w terminalu: rm $ HOME/Library/Preferences/com.google.SymbolUpload *

Xcode: Produkty -> Clean

+0

Po godzinach odpadków ... proste "czyste" działało !! –

+0

Dzięki za tę małą wskazówkę. Dodałem rm $ HOME/Library/Preferences/com.google.SymbolUpload * do skryptu kompilacji, dzięki czemu mogę obsługiwać wiele kont Firebase. –

0

Mam dziś ten błąd. I znalazłem ten config, po prostu zastąpić ten GOOGLE_APP_ID z wartością w swojej GoogleService-Info.plist

Zobacz obraz tutaj, przepraszam, że nie masz uprawnień, aby opublikować zdjęcie Replace GOOGLE_APP_ID