콘텐츠로 이동

Crashlytics Android 네이티브 디버그 심볼 생성과 Jenkins 업로드

Crashlytics 대시보드에서 Android 네이티브 라이브러리 비정상 종료의 스택 트레이스를 기호화된 형태로 보려면 디버그 심볼을 Firebase 프로젝트에 직접 업로드해야 한다.

빌드 수행 함수에서 심볼 생성 수준을 타깃별로 나눈다. 라이브 타깃은 코드의 세부 디버깅 정보를 감추기 위해 Public으로 분기한다.

// Create debug symbol
#if APP_DEBUG
EditorUserBuildSettings.androidCreateSymbols = AndroidCreateSymbols.Debugging;
#else
EditorUserBuildSettings.androidCreateSymbols = AndroidCreateSymbols.Public;
#endif

Android 빌드 job에 셸 스크립트를 추가해 빌드 산출물인 *.symbols.zip을 Firebase CLI로 업로드한다.

터미널 창
if [ ${UPLOAD_ANDROID_SYMBOLS} = 'true' ]; then
echo "symbols file upload now!"
echo $OUTPUT_PATH/GameA-${BUILD_VERSION}-v${ANDROID_VERSION_CODE}-IL2CPP.symbols.zip
firebase crashlytics:symbols:upload --app=<FIREBASE_APP_ID> $OUTPUT_PATH/GameA-${BUILD_VERSION}-v${ANDROID_VERSION_CODE}-IL2CPP.symbols.zip
fi

--app에는 Firebase 콘솔의 Android 앱 ID를 넣는다.

bool 매개변수 UPLOAD_ANDROID_SYMBOLS를 false로 두면 빌드 시간에서 심볼 업로드 시간을 뺄 수 있다.