명료한 오류 보고서 얻기

iOS
Android
iOS

Firebase Crashlytics는 디버그 기호(.dSYM) 파일을 자동 처리해 사람이 읽을 수 있는 명료한 오류 보고서를 제공합니다.

dSYM 업로드에 실패하는 상황이 몇 가지 있는데 대부분은 고유의 프로젝트 구성 또는 앱의 비트코드가 그 원인입니다. 업로드에 실패하면 Crashlytics에서 'dSYM 누락' 알림을 Firebase 콘솔에 표시해 오류 보고서를 올바르게 표시할 수 없음을 알려줍니다.

알림을 받을 경우 문제를 해결하는 방법에는 두 가지가 있습니다. 먼저 Xcode로 올바른 dSYM 파일이 생성되는지 확인하고 파일이 올바르다면 dYSM 업로드 스크립트를 수동으로 실행해 보세요.

Xcode의 디버그 기호 파일 생성 확인

일반적으로 기호 파일이 누락되는 이유는 Xcode가 기호 파일을 생성하지 않기 때문입니다. 프로젝트에서 모든 빌드의 dSYM이 생성되는지 확인하는 방법은 다음과 같습니다.

  1. Xcode에서 프로젝트를 열고 Xcode 탐색기에서 해당 프로젝트 파일을 선택합니다.
  2. Select a project or target 드롭다운에서 기본 빌드 대상을 선택합니다.
  3. 대상의 Build Settings 탭을 엽니다.
  4. 탭 상단에서 All을 클릭합니다.
  5. 'debug information format'을 검색합니다.
  6. Debug Information FormatDWARF with dSYM File로 설정합니다.

위 단계를 마쳤으면 앱을 다시 빌드하고 Firebase 콘솔에서 Crashlytics가 dSYM을 찾을 수 있는지 확인합니다.

업로드 기호 스크립트 수동 실행

또한 Crashlytics에는 빌드 프로세스 중 언제든 호출해 dSYM을 수동으로 업로드할 수 있는 스크립트인 upload-symbols도 포함되어 있습니다. 이 스크립트는 업로드 프로세스에 관한 자세한 정보와 충분한 오류 메시지를 제공합니다. 스크립트를 실행하려면 빌드 프로세스에 다음 행을 포함시키세요.

find dSYM_directory -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/Fabric/upload-symbols -gsp /path/to/GoogleService-Info.plist -p platform \{\}

단말기에서 스크립트를 실행할 수도 있습니다.

/path/to/pods/directory/Fabric/upload-symbols -gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs

또는 Xcode에서 스크립트 실행 빌드 단계를 수행합니다.

"${PODS_ROOT}/Fabric/upload-symbols" -gsp "${PROJECT_DIR}/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
참고: 문제가 있을 경우 매개변수 없이 upload-symbols를 실행하여 사용 참고사항과 추가 안내를 확인할 수 있습니다.
Android

Crashlytics는 ProGuardDexGuard 매핑 파일을 사용하여 앱의 스택 추적을 사람이 읽을 수 있는 명료한 코드로 렌더링합니다. 적절한 매핑 파일을 생성하려면 Crashlytics에서 Proguard 또는 Dexguard를 사용하도록 구성하세요.

  1. 읽을 수 있는 오류 보고서를 위해 Crashlytics에 필요한 정보를 보존하려면 구성 파일에 다음 행을 추가합니다.

    -keepattributes *Annotation*                      // Keep Crashlytics annotations
    -keepattributes SourceFile,LineNumberTable        // Keep file names/line numbers
    -keep public class * extends java.lang.Exception  // Keep custom exceptions (opt)
    
  2. Crashlytics에서 ProGuard 또는 DexGuard 매핑 파일을 자동으로 업로드하려면 다음 행을 구성 파일에서 삭제합니다.

    -printmapping mapping.txt
ProGuard를 사용해 빠르게 빌드할 때는 Crashlytics를 제외합니다. 구성 파일에 다음 행을 추가합니다.
-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.