[iOS] Crashlytics에 수동으로 dSYM 올리기
위와 같은 Warning이 떴다면, 크래시가 발생된 빌드에 대한 심볼 파일이 없다는 의미이다. Crasylytics가 정상적으로 설치 됐는지 확인이 필요하고, XCode의 Build Phases에 ‘Crashlytics Run Script’가 존재하는지도 체크해보자.
XCode 12부터는 Run Script의 옵션이 생겨서 빌드상의 특정 조건에서 변화가 없다면 Script 실행을 스킵할 수도 있다. 만약 항상 Script의 실행을 원한다면 옵션을 off 해야한다.
어쨌거나 누락된 dSYM을 올리는 방법은 Firebase 메뉴얼에서 찾을 수 있다.
dSYM을 찾으려면 archives를 찾으면 되는데, XCode > Windows > Organizer 메뉴를 통해 archive를 생성했다면 그 곳에서 dSYM을 다운 받을 수 있다.
그 외에, 아래와 같이 커맨드라인을 통해 archive를 생성했다면, 생성된 파일에서 dSYM을 찾아야 한다.
> xcodebuild archive -archivePath ./MyApp.xcarchive ....
MyApp.xcarchive 안에 dSYM파을을 찾을 수 있다.
> /MyApp.xcarchive/dSYMs/app.dSYM
이제 메뉴얼과 dSYM을 찾았으니 수동으로 업로드 해보자. 샘플 커맨드는 다음과 같다.
> Pods/FirebaseCrashlytics/upload-symbols -gsp ../../GoogleService-Info.plist -p ios ../../MyApp.xcarchive/dSYMs
커맨드가 성공했다면 다음과 같이 표시가 된다.
Fetching upload-symbols settings...
Successfully submitted symbols for architecture arm64 with UUID c43567ky12345yeace4321 in dSYM: /Users/..../dSYMs/app.dSYM
Successfully uploaded Crashlytics symbols
업로드 후 심볼이 반영될 때 까지 상황에 따라 몇 분 가량 소요될 수 있다. 그리고 업로드한 UUID가 Crasylytics에 누락된 dSYM 리스트의 UUID와 같아야만 Warning이 사라지고, 대시보드상에 크래시 리포트를 볼 수 있을 것이다.