Firebase 충돌 분석:누락된 dSYM을 업로드하여 1개 버전의 충돌을 확인합니다. (iOS)
오류 메시지: 누락된 dSYM을 업로드하여 1개 버전의 충돌을 확인합니다.영향을 받는 버전: 1.0 (1)
iOS 프로젝트에서 Firebase Crashlytics를 구현하려고 합니다.Firebase Crashlytics Documentation에 따라 모든 설정을 수행했습니다.충돌 분석이 작동하는지 확인하기 위해 버튼을 클릭하면 충돌이 수동으로 수행됩니다.
@IBAction func onTestCrashButtonClick(_ sender: UIButton) {
Crashlytics.sharedInstance().crash()
}
그러나 제가 파이어베이스 콘솔에서 오류 보고서를 보려고 했을 때, 이 이미지와 같은 것을 보여줍니다.
Get Decomfuscated 충돌 보고서를 읽은 후 아래와 같이 dSYM 파일로 디버그 정보 형식을 DWARF로 설정했지만 지금까지 문제가 해결되지 않았습니다.
AppStore에서 appDsys 아카이브 다운로드
1.1 로그인: https://appstoreconnect.apple.com
1.2 이동: MyApps -> 당신의 앱 선택 -> 시험비행 -> 앱스토어에 있는 앱 버전 선택 -> Metadata 빌드 -> 기호 포함(오른쪽) -> dSYM 다운로드를 누릅니다.
새로운 길 - 2022년 6월
Firebase Crashlytics에서 직접 업로드할 수 있는 새로운 방법입니다.파이어베이스 충돌 분석 https://console.firebase.google.com -> 프로젝트 선택 -> 충돌 분석으로 이동(왼쪽) -> dSYM 파일 업로드.
기타 방법 - 터미널을 통해 dSYM 파일 업로드
터미널을 열고 다음 순서로 터미널에 파일 3개를 끌어다 놓습니다.
1.1 드래그 드롭: "drag-drop"에서 찾을 수 있는 ""
/project/Pods/FirebaseCrashlytics/upload-symbols" 1.2 기쓰 "라고 적으십시오.
-gsp"앤 드롭: " "GoogleService-Info.plist"에서 수 .
/project/GoogleService-Info.plist를 "1.4 기쓰 "라고 적으세요.
-p ios"한 보통 Download folder 1.5에 "" 이 작동하지 수 "appDsys" 폴더 (appDsys) "appDsys" 폴더 (zip 파일이 작동하지 않을 수 있습니다!
/Users/username/Downloads/appDsyms1.6 레스프를 누릅니다.
Enter
에 터널에명포합니다야어되가 .-gsp그리고.-p ios다음과 .1.1 -gsp 1.3 -p ios 1.5
/project/Pods/FirebaseCrashlytics/upload-symbols -gsp /project/GoogleService-Info.plist -p ios /Users/username/Downloads/appDsyms
All Set, 터미널에서 업로드를 기다립니다!
터미널 예:
-
터미널로 드래그 앤 드롭하여 파일 또는 폴더 위치를 가져오는 한 가지 방법:
-
AppStore 연결, 다운로드된 dSYM:
저는 한동안 이와 같은 문제를 겪었고 마침내 해결할 수 있었습니다. 제게 도움이 되는 것을 공유하려고 생각했습니다.
맥락상, 저는 여러 개의 코코팟을 사용하는 더 큰 앱을 개발하고 있습니다.
저는 Firebase Crashlytics 페이지에서 동일한 빨간색 배너를 발견했고 그들의 지시를 모두 따른 후에도 여전히 보고 있었습니다.
"archive/find.d"를 사용해 보았습니다.SYMS/Terminal" 솔루션을 통해 수동으로 업로드했지만 여러 번 실패했습니다.
마침내, 저는 .d를 다운로드하기로 결정했습니다.iTunesConnect의 SYM.
] >> [ 번호] > 다운로드 > 신의 > [원는빌드번호] > dSYM
그리고 나서 저는 그 .d를 업로드했습니다.수동으로 몇 분 이내에 SYM을 실행하면 Firebase Crashlytics는 만족하고 충돌 보고서를 표시할 수 있습니다.
UPDATE
Google은 Firebase Crashlytics 대시보드에 swanky .dSYM 업로드 기능을 추가하여 터미널에서 더 이상 업로드하지 않습니다.
2020년 3월 16일 편집.
Google은 곧 Firebase Dashboard의 업로드 기능을 제거할 예정입니다.터미널에서 업로더 스크립트를 사용하여 Firebase에 업로드한 SYM을 사용해야 합니다.여기에서 Google의 지침을 참조하십시오.
Fabric Crashlytics를 Firebase Crashlytics SDK로 업데이트한 후.저도 같은 문제를 겪고 있었습니다(5건의 충돌을 처리하기 위해 1건의 누락된 dSYM 업로드 필요).저는 다음 단계의 도움을 받아 해결했습니다.
1단계 -: 대상 열기 -> 빌드 설정 -> "디버그 정보 형식"을 검색합니다.모든 빌드 유형에 대해 dSYM 파일을 사용하여 디버그 정보 형식을 DWARF로 설정합니다.
"${PODS_ROOT}/Firebase 충돌 분석/실행"
입력 파일을 추가합니다.
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
3단계-: 업로드된 SYM 파일에 스크립트를 하나 더 추가합니다.
${PODS_ROOT}/FirebaseCrashlytics/upload-symbols -gsp ${PROJECT_DIR}/Your_path/GoogleService-Info.plist -p ios ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
문제가 없으면 단계를 놓치지 않고 모두 설정한 다음 누락된 dSYM 업로드를 참조하여 Firebase에서 충돌 오류를 확인합니다.
(Newway - 2022년 6월)
Firebase Crashlytics에서 직접 업로드할 수 있습니다.파이어베이스 충돌 분석 https://console.firebase.google.com -> 프로젝트 선택 -> 충돌 분석으로 이동(왼쪽) -> dSYM 파일 업로드.
.d 다운로드iTunesConnect의 SYM은 다른 곳에 연결하지 않고 Firebase에 업로드합니다.
다른 방법 - 터미널을 통해 dSYM 파일 업로드
터미널에서 업로드된 SYM으로 스크립트를 직접 실행합니다.
/path/to/pods/directory/FirebaseCrashlytics/upload-symbols -gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs
이틀간의 긴 조사와 많은 해결책을 시도했지만 아무도 나를 위해 일하지 않습니다 :(
그러나 이 솔루션을 통해 Firebase Crashlytics는 만족했고 몇 분 안에 충돌 보고서를 보여주었습니다.
Pods/Fabric/upload-symbols -gsp APP/Resources/GoogleService_Info.plist -p ios /Users/ME/Desktop/APP.app.dSYM
제가 최근에 dsym을 패브릭에 업로드할 때 사용한 것입니다.저는 firebase가 아닌 crashlytics SDK로 패브릭을 사용하고 있었습니다(현재 베타 버전은 베타 버전입니다).'/Users/ME/Desktop/APP.app.d' 대신 'APP'의 앱 이름과 DSYM 경로를 바꾸기만 하면 됩니다.심.
저의 경우, 저는 다음과 같은 작업을 수행했고 효과가 있었습니다.
빌드 단계 -> 스크립트 실행에서 '설치할 때만 스크립트 실행'을 선택합니다(Shell = ${PODS_ROOT}/Fabric/run).
앱 구축
이제 .dsym 파일을 /Library/Developer/Xcode/DerivedData/XXX-arctjcalvfslmbakanpyivuuxjmm/빌드/제품/릴리스-iphoneos 경로에서 찾을 수 있습니다.
압축된 .dsym 파일을 Firebase 콘솔에 업로드합니다.
몇 분 후에 충돌 보고서를 찾을 수 있습니다.
참고:
- ipa 파일(Adhoc 또는 Appstore)을 내보내는 동안 비트 코드를 사용하지 않도록 설정했습니다.
- 비트코드가 활성화된 ipa가 필요한 경우 iTunes connect에서 dsym 파일을 다운로드합니다.
충돌 분석에 대한 디버그 기호 찾기 및 업로드
- 하고 ""dSYM" UUID"를 합니다.
mdfind "com_apple_xcode_dsym_uuids == <UUID>"종점의 창문으로 - 는 " 위명다같것반을환합니다은음과은령의"와 같은 합니다.
.../build/ios/Release-Staging-iphoneos/your.app.dSYM - Firebase 대시보드를 사용하여 패키지를 압축하고 Crashlytics에 업로드합니다.
충돌이 콘솔에 나타나기 전에 10-15분간 기다립니다.
저도 같은 문제에 직면했습니다.기본적으로 저는 Firebase 스크립트가 SYM 파일을 업로드할 수 없는 간단한 단계를 놓치고 있었습니다.
그것을 해결하기 위한 단계가 뒤따랐습니다.
- 프로젝트 파일 클릭
- 대상 선택
- 빌드 설정으로 이동
- "디버그 정보 형식" 검색
- 모든 구성에 대해 설정을 "dYSM 파일이 있는 DWARF"로 변경합니다.
- 이제 프로젝트를 다시 실행합니다.
- 파이어베이스 대시보드의 dYSM 오류가 발생해야 합니다...
2021년 3월
작업 탭이 더 이상 항목 연결에 없으므로 Dsyms 파일을 가져오려면 다음 작업을 수행해야 합니다.
- 항목 연결로 이동합니다.
- 내 앱.
- 특정 앱을 선택합니다.
- 테스트 비행으로 이동합니다.
- Dsyms 파일을 생성할 빌드를 선택합니다.
- 메타데이터 빌드를 클릭합니다.
- "다운로드 기호"를 검색한 다음 클릭하고 다운로드를 클릭합니다.
그런 다음 다운로드 후 터미널에서 이 코드를 실행하여 따옴표로 묶은 부품을 올바른 파일 경로로 교체합니다.
/path/to/pods/directory/FirebaseCrashlytics/upload-symbols
-gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs
동적 라이브러리를 사용하는 경우 프로젝트에서 코코아 포드나 다른 도구를 사용하는 경우, Firebase는 라이브러리에서 결함이 있는 코드를 찾기 위해 중복 기호 파일이 필요합니다.dSysms에 대해 자세히 알아보려면 https://stackoverflow.com/questions/3656391/whats-the-dsym-and-how-to-use-it-ios-sdk 을 참조하십시오.
dsysm 폴더를 찾으려면 먼저 방화벽에서 충돌이 보고된 .ipa 파일이 필요합니다.당신의 경우, 저는 당신이 테스트를 위해 시뮬레이터에서 실행하고 있다고 생각합니다.IPA를 얻으려면 다음 단계를 수행합니다.Apple Developer 계정 없이 ipa xcode 6을 만드는 방법은 무엇입니까?
.iPA에 도달하면 오른쪽 버튼을 클릭하여 패키지 내용 표시를 선택하거나 다음 링크를 따릅니다. iphone: 충돌 보고서에서 .dSYM 파일이 있는 위치
거기에서 시스템 폴더를 찾을 수 있습니다.이 폴더를 Firebase 충돌 분석에 업로드합니다.
이것이 도움이 되길 바랍니다!
저는 당신이 지금까지 그것을 해결했기를 바랍니다.그러나 Firebase/Crashlytics를 사용하는 다른 사용자에게는 적합합니다.빌드를 업로드하고 크래시가 발생했지만 dsyms가 누락되어 콘솔에 표시되지 않았습니다.
나는 아이튠즈에 로그인하고 액티비티 코너로 이동합니다.그런 다음
dsyms를 다운로드합니다.
그런 다음 아래 명령을 사용하여 dsyms를 Firebase 콘솔에 업로드했습니다.
/Users/ankitjaiswal/Code/oliobox-ios/Pods/FirebaseCrashlytics/upload-symbols
-gsp /Users/ankitjaiswal/Code/oliobox-ios/JacksonArtGallery/GoogleService-Info.plist
-p ios /Users/ankitjaiswal/Downloads/appDsyms.zip
그러나 이러한 방식으로 항상 수동으로 다운로드하고 업로드해야 합니다.권장되지 않는 대신 다음 링크를 따라가면 됩니다. https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports-new-sdk
저는 dSYMS 업로드에 대한 미디엄 스토리를 만들었습니다.
단말기로 업로드하는 방법을 단계별로 스테이플합니다.
중간 링크: https://medium.com/ @petarlemajic/firebase-dsyms-dscs-1cf432c475f7 이것이 누군가에게 도움이 된다면 행복할 것입니다.건배!
dsym.zip 파일을 다운로드한 후.터미널에서 아래 코드를 실행해야 합니다.
/ProjectPath/Pods/Crashlytics/Crashlytics.framework/upload-symbols -gsp /ProjectPathForGoogleServiceFile/GoogleService-Info.plist -p ios /dSYMFilePath/dSYMs.zip
upload-symbols 명령을 찾을 수 없으면 Firebase용 포드를 업데이트해야 합니다.
복사하여 붙여넣을 수 있는 미리 작성된 스크립트를 계속 사용하려면 질문에 이미 잘 답합니다.여기 있어요.
find
$HOME/Library/Developer/Xcode
/DerivedData/<target-name>-*/Build/Products/Develop-iphoneos
-name "*.dSYM" | xargs -I \{\}
$PODS_ROOT/FirebaseCrashlytics/upload-symbols
-gsp ${PROJECT_DIR}/<target-name>/GoogleService-Info.plist
-p ios \{\}
(10월 21일 - 2020년)
하는 데 많은 SDK를 후 문제가 .dsysm" Firebase 파일을 참조하십시오. Firebase Crashlytics로 업데이트하고 패브릭 SDK를 제거한 후 문제가 발생하지 않았습니다.저는 모든 해결책을 시도했지만, 제 코드를 몇 번 변경한 후에 마침내 제 문제를 발견했습니다.내 안에 상충되는 가치관이 있었던 것 같습니다.info.plist파일을 작성하고 내 안에 있는 것으로 줄을 서지 않았습니다.GoogleService-Info.plist 일. 의의 번들 입니다.GoogleService-Info.plist는 내의 URL 체계사합니에 있는 .info.plist이러한 변경을 한 후 DSYM을 수동으로 업로드했습니다.
다음은 업데이트 후 프로젝트에서 번들 ID가 어떻게 표시되는지 보여주는 예입니다.
그리고 나서 저는 이것이 자동화되기를 원했습니다.빌드 단계 > 실행 스크립트에 다음 스크립트를 추가했으며 이제 Fabric sdk를 사용할 때와 마찬가지로 자동화되었습니다.이 코드를 실행 스크립트에 복사하기만 하면 됩니다. 변경할 필요가 없습니다.
"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${PROJECT_DIR}/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
PS: 빌드 옵션에도 "dYSM 파일이 있는 DWARF"가 설정되어 있는지 확인하기 위해 다른 게시물을 따라야 합니다.
파이어베이스 문서에 따르면, 업로드하는 대신dsym또한 앱의 내장 기능을 제공할 수 있습니다.Info.plist빌드 단계의 입력 파일 필드 위치:
$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
비트코드를 활성화한 경우 = 예
- 앱스토어 연결로 이동
- iOS 빌드 및 다운로드 SYM으로 이동합니다.
- 터미널 열기
- 명령 실행
/Users/your-project-path/ios/Pods/Firebase 충돌 분석/업로드 기호 -gsp/Users/your-project-path/ios/Google Service-Info.plist -pios/사용자/사용자 이름/다운로드/appDsyms
- 성공 메시지가 표시되고 일정 시간 내에 Firebase 콘솔을 새로 고치면 반영된 내용이 표시됩니다.
참고: 빌드된 모든 SYM 파일을 Firebase에 업로드합니다.
앱스토어 연결에 다운로드한 SYM 링크가 표시되지 않습니다.그래서, 저는 이 지시를 따랐고, 그것은 저에게 효과가 있었습니다.
간단한 단계 따라가기 1 보관소로 이동하여 firebase에서 충돌 보고서를 얻고자 하는 최신 버전을 마우스 오른쪽 버튼으로 클릭 2 dsys 폴더 3 dsys 폴더의 Zip 파일 만들기 4 최종적으로 해당 zip 파일을 firebase 콘솔에 업로드합니다.
받아들여진 답변은 완벽하고 저도 따라한 것입니다.이 dSyms를 다운로드할 수 있는 다른 방법을 추가하고 싶습니다.
Xcode 메뉴에서 Organizer 열기 > Window > Organizer
왼쪽 패널에서 응용프로그램을 선택하고 보관 탭을 선택합니다.
dSyms를 다운로드할 앱 릴리스의 아카이브를 선택합니다. (아카이브를 삭제한 경우에는 승인된 답변을 따르는 것이 좋습니다.)
오른쪽 패널에서 디버그 기호 다운로드를 클릭합니다.이제 이러한 기호를 아카이브 자체에 다운로드합니다.아카이브 버전 > 파인더에 표시를 마우스 오른쪽 버튼으로 클릭하기만 하면 됩니다.
여기 파인더에서 아카이브 > 패키지 내용 표시를 마우스 오른쪽 버튼으로 클릭합니다.
그러면 내용이 열려 dSyms가 표시됩니다.
이제 모든 것이 필요하지는 않습니다. 일부는 포드 및 기타 가져오기에서 추가된 프레임워크/리브가 될 것입니다.
영숫자 레이블이 있는 항목만 선택합니다.
이것들을 압축해서 Firebase에 업로드할 수 있습니다.
developer.apple.com > 활동 > iOS 빌드 > 버전 선택 > dSYM 다운로드
프로젝트 경로 및 사용자 이름 변경
이 코드 실행 날짜
Terminal/Users/your-project-path/ios/Pods/Firebase 충돌 분석/업로드 기호 -gsp/Users/your-project-path/ios/Google Service-Info.plist -pios/사용자 이름/다운로드/appDsyms.지퍼
성공 메시지는 에서 확인할 수 있습니다.
Terminal.충돌 로그 확인
Firebase Console15-30분 후에
최고의 해결책은 저자들 덕분에 좋습니다.이 팁은 누군가에게 도움이 될 수 있습니다. 앱을 크래시하여 구성을 테스트하려면 시뮬레이터에서 Xcode로 빌드한 다음 앱을 중지하고 시뮬레이터에서 직접 다시 시작하십시오.firebase doc에 따르면: 초기 인스턴스에는 Crashlytics를 방해하는 디버거가 포함되어 있습니다.https://firebase.google.com/docs/crashlytics/test-implementation?platform=ios#test_it_out
- 패키지 사용
firebase_crashlytics: ^3.3.1. - 스크립트 실행에서 이 줄만 추가
${PODS_ROOT}/FirebaseCrashlytics/run - 입력 파일에서 이 줄만 추가합니다.
$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH) - 프로젝트를 실행하면 오류가 사라집니다.
언급URL : https://stackoverflow.com/questions/48296774/firebase-crashlytics-upload-missing-dsyms-to-see-crashes-from-1-versions-ios
'codememo' 카테고리의 다른 글
| 테스트를 위한 인메모리 MongoDB? (0) | 2023.06.27 |
|---|---|
| 일반 프로그램이 보통 0x8000에서 시작하는 이유는 무엇입니까? (0) | 2023.06.27 |
| "while" 루프와 "do while" 루프의 차이 (0) | 2023.06.27 |
| Mongoose 스키마에서 여러 값을 사용하는 고유한 문서 (0) | 2023.06.27 |
| Python 날짜에서 두 자리 수의 월 및 일 추출 (0) | 2023.06.27 |















