【Crashlytics】 개발중인 크래시 로그에 묻히는 것을 방지 (Android 버전)

Firebase Crashlytics 을 사용하면 크래시 로그를 자동으로 수집하여 사용자 환경에서 발생한 크래시를 파악하고 원인을 분석할 수 있습니다. 더 이상 이것 없이는 불안해져 버릴 정도로, 이마도키의 앱 개발에는 빠뜨릴 수 없는 툴이 되고 있다고 느낀다.

Android에서 Crashlytics를 사용하고 있었는데, 디폴트라고 디버그 빌드시에서도 상관없이 크래시 로그를 수집해 버리는 것 같았다. 개발중은 크래쉬는 그 나름대로 일어나므로, 그대로라면 정말 프로덕션 환경에서 크래쉬한 로그가 묻혀 버린다. 릴리스 빌드에서는 활성화하면서 디버그 빌드에서만 Crashlytics를 비활성화하는 방법을 설명합니다.

방법



The Firebase Blog: Firebase Crashlytics, builds and you

↑의 블로그 포스트의 말미의 「Apps that are auto initialized」의 순서로 할 수 있다(타이틀대로, Crashlytics를 자동적으로 초기화하고 있는 경우).

다만, 기사의 XML을 그대로 기재하면(자), 실행시에 Key firebase_crashlytics_collection_enabled expected Boolean but value was a java.lang.String. The default value false was returned. 라고 하는 경고가 나오므로, 조금 재기록한다.

최종적으로는, 이하의 내용을 app/src/debug/AndroidManifest.xml 에 쓰면 OK.
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
  <application>
    <meta-data
        android:name="firebase_crashlytics_collection_enabled"
        android:value="false" />
  </application>
</manifest>

참고로 src/debugAndroidManifest.xml를 넣으면 debug 빌드시에만 그 내용이 src/AndroidManifest.xml에 병합됩니다. Crashlytics뿐만 아니라 사용할 수있는 기술.

이것만으로, 디버그 빌드 ( ./gradlew assembleDebug ) 했을 때는 크래시 로그를 보내지 않고, 릴리스 빌드 ( ./gradlew assembleRelease ) 의 때는 크래시 로그를 기록하도록(듯이) 할 수 있다. 빌드시 추가로 어떤 설정 등을 할 필요는 없다.

요약



이렇게하면 개발 중에 크래시 로그가 전송되지 않으므로 프로덕션 환경에서 발생한 크래시 분석에 집중할 수 있습니다.

좋은 웹페이지 즐겨찾기