iOS 및 Firebase 충돌 분석
누락된 필수 dSYM을 업로드하기 위해 Firebase Docs의 지침을 따르려고 합니다. 그러나 업로더 스크립트를 실행해야 합니다.
빌드 단계에서 다음과 같은 이점이 있습니다.
"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols -gsp${SRCROOT}/GoogleService-Info.plist -p ios ${SRCROOT}/appDsyms"
이것으로 iOS 앱을 구축하려고 하면 다음과 같은 오류가 발생합니다.
라인 4: /path/to/Pods/FirebaseCrashlytics/upload-symbols -gsp/path/to/GoogleService-Info.plist -pios/path/to/appDsyms:해당 파일 또는 디렉터리가 없습니다.
명령 PhaseScript 실행이 0이 아닌 종료 코드로 실패했습니다.
터미널에서 스크립트를 실행하려고 하면 다음 오류가 발생합니다.
제공된 Google App ID 또는 Google Services 파일이 없습니다.
Google 서비스 파일이 있고 이 파일에 의존하는 다른 Firebase 서비스를 사용하여 프로젝트를 실행할 수 있는지 확인했습니다.이전에는 Dysm 파일을 Firebase Console에 직접 업로드할 수 있었지만 3월 1일부터 변경되었습니다.
이 명령을 XCode 스크립트로 실행해야 합니까 아니면 터미널에서 명령으로 실행해야 합니까?그리고 더 중요한 것은, 이 문제를 해결하는 방법을 아는 사람이 있습니까?
2020년 5월 기준:
나 뒤에Fabrics 개발자들은 이 Fabric을 하는 스크립트를 에 직면했습니다.dSYM의 Xcode그리고 우리는 절대 그것에 신경 쓰지 않습니다.
이제는Fabric는 로대됨으로 됩니다.FirebaseCrashlytics메커니즘을 새이 수 있습니다.
"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${PROJECT_DIR}/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
이 스크립트는 충돌을 볼 수 있도록 dSYM 파일을 가져와 방화벽 서버에 업로드합니다.
여러 계획의 경우:
프로젝트에 여러 개의 구성표가 있는 경우 Google Plist 파일의 경로를 변경하여 이러한 스크립트를 여러 개만 만들 수 있습니다.
참고: 수동으로 업로드할 수도 있습니다.dSYM:파일 사용upload-symbols툴 [여기를 확인하십시오]. 그러나 가능한 한 프로세스를 자동화하는 것이 좋습니다.
편집: 2020년 7월:충돌에 대한 dSYM 파일이 누락된 경우Crashlytics대시보드는 대신에 대보드, 그에대이을, 당신그받대신다, 은을있니습할수것을 할 수 .dSYMApple 리뷰 또는 테스트 비행을 통해 테스트를 위해 제출하는 즉시 빌드 파일을 제출합니다.
된 종된dSYM다음과 같은 이유로 표시됩니다.bitCode 활화됨성,App Store Connect업로드하는 이진 게시물을 처리하고 새 dSYM 파일을 생성합니다.
은 dSYM 파일에서 찾을 수 .Activity의 App Store Connect.
2020 Firebase 충돌 분석 솔루션
두 가지 솔루션이 있습니다.
명령줄에서
프로젝트 폴더로 이동하여 다음을 실행합니다.
./Pods/FirebaseCrashlytics/upload-symbols -gsp GoogleService-Info.plist -p ios <path_to_your_dsyms_zip>
Xcode organizer에서 dsym을 받을 수 있습니다 > 아카이브 > 파인더에서 표시 -> 콘텐츠 표시 -> dsym 폴더로 이동하여 압축합니다.
Xcode 빌드 단계에서
여기에 설명된 대로(Firebase 문서) 다음 내용으로 Xcode에서 스크립트 실행 단계를 추가할 수 있습니다.
"${PODS_ROOT}/FirebaseCrashlytics/run"
또한 다음 두 입력 파일을 실행 스크립트 아래에 추가해야 합니다.
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
그리고.
$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
몇 시간 동안 이 문제와 씨름한 끝에 마침내 다음과 같은 접근 방식을 사용하여 문제를 해결했습니다.
Terminal:▁in▁this에 이 합니다./path/to/pods/directory/FirebaseCrashlytics/upload-symbols -gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs
중요한 것은 대신에/path/to/pods/directory응용프로그램 폴더에 포드 폴더의 경로를 입력해야 합니다. 대신/path/to프로젝트 폴더에 있는 Google Service-Info.plist의 경로도 입력해야 합니다.그고마은막 에대지신리,에▁and▁of./path/to/dSYMs. 은 " 다형식보파합경니다입야력해로를일의"입니다."입니다..xcarchive.
▁the를 찾기 ..xcarchive>한 다음 하고 "finder"를 "Show in Finder"를합니다..xcarchive파일을 저장하고 "패키지 내용 표시"를 선택합니다.이상입니다. 이 경로를 복사하여 붙여넣을 수 있습니다./path/to/dSYMs그런 다음 Enter 키를 눌러 Firebase Crashlytics에 업로드를 시작합니다.
자세한 내용은 다음 링크를 참조하십시오.파이어베이스 문서
Crashlytics용 Firebase Crashlytics(현재 베타 버전)를 구현하는 동안
스크추에서 새 Build Phases합니다.
"${PODS_ROOT}/FirebaseCrashlytics/run"
Input Files 추가 섹션가
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
그리고.
$(SRCROOT)/path to/GoogleService-Info.plist
만약 당신이 여전히dSYM.
/path/to/pods/FirebaseCrashlytics/upload-symbols -gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs
위해서path to FirebaseCrashlytics그리고.GoogleService-Info.plist앤는 " " " 입니다." dSYMS 경로가 ."${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
및 .xcodeproj를 하려면 .xcodeproj 파일을 참조하십시오.xcodebuild -project YourProject.xcodeproj -target YourTarget -showBuildSettings
특정 합니다.
할 때는 .
에서 응용 합니다.
Mac에서 디바이스 연결 끊기를 테스트하는 동안
올른설정을 합니다.GoogleService-Info.plist
이름을 변경할 경우 필요할 때마다 올바른 파일 이름을 설정해야 합니다.
"${PODS_ROOT}/Firebase 충돌 분석/업로드 기호" -gsp "${PROJECT_DIR}/additional_folder/Google Service-Info.plist" -pios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
추가 폴더에서 GoogleService-Info.plist를 교체하고 셸 스크립트에서 디렉터리를 변경했습니다.아마 당신도 그렇게 해야 할 것입니다.
터미널 명령의 경우 터미널에 필요한 파일을 끌어다 놓고 선택한 경로를 복사하는 것이 좋습니다.
/path_to_pods/FirebaseCrashlytics/upload-symbols -gsp/path_to_google_service/GoogleService-Info.plist -piOS/path_to_dSYMs
날 믿어요, 하루를 보냈지만 아무 것도 효과가 없었어요
놀랍게도 동료들을 위한 몇 가지 프로젝트에서 작동하는 솔루션은 거의 없지만 Big Sur & Xcode 12.2를 사용하고 있습니다.
시도 1: 각 단계는 소방서 문서에 언급되어 있습니다.
시도 2: 통과하여 터미널에서 기호를 업로드하려고 했습니다.path_to_pod_firebasecrshlytics/uploadsybol -gsp path_to/GoogleService-Info.plist -p ios path_to/dSYMs
하지만, 운이 없군요.
따라 하는 속임수는 나에게 효과가 있습니다.
1단계: 최신 Firebase 충돌 분석 버전인지 확인하고 프로젝트 & Fire cmd에 대한 경로를 지정합니다.pod update
Firebase Crashlytics 버전 4.0.0-beta.1을 사용하고 있었지만 포드 업데이트 후에는 8.2.0입니다.
2단계: 빌드 단계로 이동하여 컴파일 번들 리소스 아래에 실행 스크립트 추가"${PODS_ROOT}/FirebaseCrashlytics/run"
3단계: DISM 스크립트 추가,"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${PROJECT_DIR}/your_path/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
4단계: 프로젝트 구축;
5단계: 프로젝트 실행 및 중지 또는 스토리보드 연결 끊기
6단계: 2-3회 충돌하고 2-5분간 기다립니다.
건배, 모든 준비!
할 수 있는 일:
PATH_TO_GOOGLE_PLISTS="${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/GoogleService-Info.plist"
플리스터에 대한 참조를 얻으려면 다음과 같이 하십시오.
그런 다음 사용:
"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${PATH_TO_GOOGLE_PLISTS}" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
Google 서비스 경로가 잘못된 것 같습니다.다음은 SYM을 성공적으로 업로드할 수 있는 빌드 단계의 예입니다. https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports-new-sdk?platform=ios&authuser=0 에서 이 지침을 다시 한 번 따르는 것이 좋습니다.
/Users/okodysh/Library/Developer/Xcode/파생 데이터/myApp-ftqksfkpdvisbtaozqzzizpfk/빌드/Products/Debug-iphone 시뮬레이터 -name "myApp.d"SYM" | xargs -I {} $PODS_ROOT/Firebase 충돌 분석/업로드 기호 -gsp/Users/okodysh/Desktop/iOSApps/myApp/myApp/Google Service-Info.plist -pios {}
흠, 이것을 바꾸는 것 외에는 아무 것도 나에게 효과가 없었습니다.
"${PODS_ROOT}/FirebaseCrashlytics/run"
대상:
"${PODS_ROOT}/FirebaseCrashlytics/run" -gsp "${PROJECT_DIR}/project_main_dir/google-services-files/iOS-GoogleService-Info.plist"
편집:
iOS의 Catalyst를 따르려는 사람들을 위해:
두 개의 다른 Google JSON 파일을 다운로드할 필요가 없습니다.대상이 하나뿐이므로 하나만 사용해야 합니다.만약 당신이 당신의 앱의 Mac 버전을 업로드하고 싶다면, 앱 스토어 커넥트로 가서 당신의 앱의 같은 페이지에서 OSX를 위한 새로운 버전을 만들기만 하면 됩니다.
제 경우 다음을 추가하기 전까지는 아무 것도 작동하지 않았습니다.
"${PODS_ROOT}/FirebaseCrashlytics/run" -gsp "${PROJECT_DIR}/intermediate_folders/GoogleService-Info.plist"
"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${PROJECT_DIR}/intermediate_folders/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
실행 명령에 경로를 추가하지 않으면 빌드 단계가 영구적으로 실행됩니다.
전체 프로젝트 폴더 경로에 공간이 있는지 확인합니다.저는 프로젝트를 공간이 없는 다른 폴더 경로로 이동하여 해결합니다.
//프로젝트 "계속" 참조
오류:
Running upload-symbols in Build Phase mode
Validating build environment for Crashlytics...
Processing dSYMs...
Command PhaseScriptExecution failed with a nonzero exit code
2023-04-25 22:08:31.703 upload-symbols[23280:103455] Unable to get file attributes for dSYM file at path "/Users/abdallahandroid/Library/Developer/Xcode/DerivedData/Runner-gefdrreutulmdwdzwzzvbbjmuntb/Build/Intermediates.noindex/ArchiveIntermediates/Runner/BuildProductsPath/Release-iphoneos/App.framework.dSYM/Contents/Resources/DWARF"
2023-04-25 22:08:32.709 upload-symbols[23280:103455] Unable to get file attributes for dSYM file at path "/Users/abdallahandroid/Library/Developer/Xcode/DerivedData/Runner-gefdrreutulmdwdzwzzvbbjmuntb/Build/Intermediates.noindex/ArchiveIntermediates/Runner/BuildProductsPath/Release-iphoneos/App.framework.dSYM/Contents/Resources/DWARF"
Running upload-symbols in Build Phase mode
Validating build environment for Crashlytics...
Processing dSYMs...
고정:
1 - 프로젝트의 종속성 패키지 업데이트
2 - float 버전이 마지막 업데이트 안정적인 버전이 되도록 합니다.
3 - Mac과 xcode를 최신 버전으로 업데이트합니다.
4-flat clean 및 pubget 명령
5- 이제 다시 시도해 보세요. 지금 당신의 앱을 보관했으면 합니다.
언급URL : https://stackoverflow.com/questions/60821249/ios-and-firebasecrashlytics
'programing' 카테고리의 다른 글
| Web.config 변환 옵션이 회색으로 표시됨 (0) | 2023.06.06 |
|---|---|
| require()와 library()의 차이점은 무엇입니까? (0) | 2023.06.06 |
| Python에서 가져온 모듈에 대한 별칭을 정의할 수 있습니까? (0) | 2023.06.06 |
| 포드 파일에서 이 대상에 대한 플랫폼을 지정하시겠습니까? (0) | 2023.06.06 |
| 여러 조건에 따라 데이터 프레임을 부분 집합화 (0) | 2023.06.06 |

