Nie można ukończyć przesyłania dSYM When migracja tkaniny do bazy ogniowej dla crashlytics

12

Używam xcode11 z systemem Mac OS 10.14.1. Zaimplementowałem migrację tkaniny do bazy ogniowej przy użyciu następujących dokumentów.

https://medium.com/@niamhpower/the-great-migration-moving-from-fabric-to-firebase-as-an-ios-developer-7b61a8b40008

Wygenerowałem kod do testowania awarii, ale ten raport o awarii nie może pojawić się w konsoli crashlytics firebase. Użyłem następującego dokumentu do tej implementacji

https://firebase.google.com/docs/crashlytics/force-a-crash?platform=ios

Dodałem również następujący skrypt uruchamiania w fazach kompilacji Xcode

„$ {PODS_ROOT} / Fabric / upload-symbols” -gsp „$ {PROJECT_DIR} /GoogleService-Info.plist„ -p ios ”$ {DWARF_DSYM_FOLDER_PATH} / $ {DWARF_DSYM_FILE_NAME}”

Ale to zwróci następujący błąd po uruchomieniu aplikacji.

31merror: Nie można ukończyć przesyłania dSYM pod adresem /Users/macmini1/Library/Developer/Xcode/DerivedData/app_name-dnzsvdsxebmfqjbjecjlyhdzwags/Build/Products/Debug-iphonesimulator/app_name.app.dSYM.err. -domain.process-dsym Code = 3 „Plik nie istnieje już w (null)” UserInfo = {NSLocalizedFailureReason = Plik nie istnieje już w (null)} [0m Komenda PhaseScriptExecution nie powiodła się z niezerowym kodem wyjścia

Czy możesz mi pomóc w rozwiązaniu tego problemu

IKKA
źródło
Nadal masz problem. Firebase o OMG, który zmuszał programistów do przesyłania plików dSYM
Zubair,
cześć, utknąłem w tej samej sprawie, czy miałeś z tym jakieś szczęście? Odpowiedź od @ weet1988 nie rozwiązała mojego problemu (jest to już ostatni skrypt działający w moim przypadku)
mikey
1
@mikey Usunąłem skrypt ze skryptu uruchamiania i ponownie dodałem, a także zamknąłem xcode. Następnie spróbowałem uruchomić ponownie. Będzie działać
IKKA
Mam Crashlytics do pracy bez upload-symbolsskryptu. Właśnie zaktualizowałem strąki do najnowszych dostępnych wersji i upewniłem się, że $ {PODS_ROOT}/Fabric/runbyła to ostatnia uruchomiona. Dziękuję za odpowiedź @IKKA
Mikey
@ mikey Miałeś na myśli, że używasz tylko $ $ PODS_ROOT} / Fabric / run w runcript; dobrze?
IKKA

Odpowiedzi:

5

Miałem ten sam problem. Powodem było to, że skrypt „$ {PODS_ROOT} / Fabric / run” nie był ostatnim na liście skryptów w fazach kompilacji. Sprawił, że skrypt trwał i wszystko stało się OK.

weet1988
źródło
2
mój skrypt jest najnowszy, ale wciąż
pojawia
5

Rozwiązałem, dodając findpolecenie. Dodaj polecenie znajdowania powyżej symboli wysyłania

Przykład:

znajdź „$ {DWARF_DSYM_FOLDER_PATH}„ -name ”* .dSYM” | xargs -I {} $ PODS_ROOT / Fabric / upload-symbols -gsp "$ {PROJECT_DIR} /MyApp/GoogleService-Info.plist" -p ios {}

„$ {PODS_ROOT} / Fabric / upload-symbols” -gsp „$ {PROJECT_DIR} /MyApp/GoogleService-Info.plist„ -p ios ”$ {DWARF_DSYM_FOLDER_PATH} / $ {DWARF_DSYM_FILE_NAME}”

Ramesh RC
źródło
Czy musimy przesłać inne pliki .dSYM, które nie są $ {DWARF_DSYM_FILE_NAME}?
CyberMew
@CyberMew, Nie jest wymagane przesyłanie całego pliku .dSYM. masz rację. Możemy więc znaleźć tylko plik, który musimy przesłać. Zmodyfikowałem swoją odpowiedź.
Ramesh RC
Uważam, że twoja oryginalna odpowiedź na przesłanie wszystkich plików .dSYM jest poprawna. Sprawdziłem przy wsparciu i wspomnieli, że „Crashlytics będzie wymagał plików symboli z twojej głównej aplikacji wraz z symbolami z dowolnej używanej platformy lub biblioteki.”, Więc w zasadzie tak, wszystkie pliki symboli są wymagane.
CyberMew
To super fajnie! Gdy przesyłam cały plik .dSYM w celu przetestowania lotu, pojawia się ostrzeżenie „ITMS-90381: Zbyt wiele plików symboli”. Dowolny pomysł?
Ramesh RC
Przesłać do test flight? Czy zamiast tego masz na myśli Firebase Crashlytics? Nie jestem pewien, ponieważ wcześniej go nie spotkałem, być może możesz wypróbować to rozwiązanie stackoverflow.com/questions/25755240/… , jeśli to nie działa, skontaktuj się z obsługą klienta i daj nam znać, co mówią!
CyberMew