콘텐츠로 이동

Firebase Crashlytics v8 이후 iOS·Android 심볼 업로드 방식 변경

Firebase Crashlytics v8.x.x부터 디버그 심볼 업로드가 필요 없던 Android는 업로드가 필요해지고, iOS는 필요 없어졌다(Crashlytics Unity 시작 가이드).

iOS Jenkins job에서 dSYM을 업로드하고 백업하던 스크립트는 더 이상 쓰지 않는다.

터미널 창
if [ ${UPLOAD_SYMBOLS_NOW} = 'true' ]; then
echo "symbols file upload now!"
${WORKSPACE}/XcodeProject/Pods/FirebaseCrashlytics/upload-symbols -gsp ${WORKSPACE}/XcodeProject/GoogleService-Info.plist -p ios ${WORKSPACE}/XcodeProject/build/${UPLOADFILENAME}-dSYM.zip
fi
if [ ${BACKUP_SYMBOLS} = 'true' ]; then
echo "backup dSYM!"
cp ${WORKSPACE}/XcodeProject/build/${UPLOADFILENAME}-dSYM.zip <BACKUP_DIR>/ios_dSYM/
fi

가이드의 명령 형식은 다음과 같다.

터미널 창
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
  • FIREBASE_APP_ID: Firebase 콘솔의 Android 앱 ID
  • PATH/TO/SYMBOLS: ${WORKSPACE}/${UPLOADFILENAME}-dSYM.zip

Android Jenkins job에 아래 명령을 추가했고, 업로드가 성공하는 것을 확인했다.

터미널 창
firebase crashlytics:symbols:upload --app=<FIREBASE_APP_ID> ${WORKSPACE}/${UPLOADFILENAME}-dSYM.zip
line 57: firebase: command not found

해결 방법은 두 가지다.

터미널 창
// SOLUTION 1
npm install -g firebase
alias firebase="`npm config get prefix`/bin/firebase"

또는 Jenkins 설정에서 PATH에 /usr/bin이 등록되어 있는지 확인한다.