Firebase crash Tips 가져오기(Android 편)
지금까지 Crashlytics(앞으로도 사용)를 사용했기 때문에 그쪽과 비교한 설명입니다.
Firebase crash 배포 방법이 생략되었습니다.
참고: Google Play Service 가 없는 터미널에서는 실행할 수 없습니다.
Firebase crash의 붕괴 보고서는
FirebaseCrashSenderService
클래스를 통해 진행되지만 이 클래스에서 com.google.android.gms
패키지를 이용하기 위한 클래스는 구글플레이 서비스가 없는 단말기라면 NameNotFound Exception을 일으켜 붕괴 보고서를 보내지 않습니다.로그: https://gist.github.com/yamacraft/20a713a23ccd8a810d76f22406fc4ff7
따라서 Kindle과 중화 태블릿PC 등 단말기의 사용을 대상으로 하는 응용 프로그램의 도입 현황은 불가능하다.
try~catch도 붕괴 보고서를 보내고 싶습니다 (응용 프로그램 붕괴 이외에도 보내고 싶습니다)
Crashlytics에서는 호출
Crashlytics.getInstance().core.logException(Throwable throwable)
을 통해 충돌 보고서를 보낼 수 있지만, Firebase crashFirebaseCrash.report(Throwable throwable)
에서는'비치명적 오류'로 보낼 수 있습니다.※ 붉은 테두리로 둘러싸인 부분
또한
FirebaseCrash.log(String message)
를 사용하여 붕괴 보고서에 로그를 저장하고 붕괴 보고서를 보낼 때 로그를 보낼 수 있다.※ 저축하여 발송한 로그 내용
저는 예전부터 Timber를 이용해서'개발 중에 LogCat을 표시하고 발표할 때 일정 이상의 로그를 Crashlytics의 로그에 저장하고
Timber.e()
보낼 때 보낸다'는 형식으로 설치했기 때문에 다음과 같습니다.나는 나무반에서 사용하고 있다.TimberTree.java
private static class CrashReportingTree extends Timber.Tree {
@Override
protected void log(int priority, String tag, String message, Throwable t) {
if (priority == Log.VERBOSE || priority == Log.DEBUG) {
return;
}
if (priority != Log.ERROR) {
Crashlytics.getInstance().core.log(message);
FirebaseCrash.log(message);
return;
}
Throwable throwable = t;
if (throwable == null && !TextUtils.isEmpty(message)) {
throwable = new Exception(message);
}
Crashlytics.getInstance().core.logException(throwable);
FirebaseCrash.report(throwable);
}
}
이렇게 하면 필요한catch처Timber.e()
에서 프로그램이 붕괴되지 않을 때도 보고서를 보낼 수 있다.참조: Timber 정보
설정을 설정할 때 잘못된 부위를 정확하게 식별할 수 있기를 바란다
"try~catch도 붕괴 보고서를 보내고 싶다"는 컨트롤러 화면에도 일부 나타나지만 모호화 (proguard) 를 하면 창고 추적을 제대로 할 수 없습니다.따라서 설정 파일에 다음 내용을 기술해야 합니다.
proguard-rules.pro
-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable
-keep public class * extends java.lang.Exception
-printmapping mapping.txt
실제로는 위의 3행이라기보다는 -keepattributes SourceFile,LineNumberTable
이면 좋겠다. 모두 넣어라.Crashlytics도 같은 설정을 지정했습니다. .맨 아래는 스택 추적 보조 맵 파일 생성 설정입니다.
app/build/outputs/mapping/release/
근처에서 mapping.txt
로 생성되니 Firebase 콘솔 화면에 올려주세요.그렇긴 한데 이거 할 때마다 귀찮아요. API가 있으면 CI를 올리려고... (미조사)
라이브러리 배치 증가 apk 용량
예시 항목에 대해 "아무것도 추가하지 않음", "gms만 추가", "firebase crash"
"의 3가지 Relase-apk의 비교.
minifyEnabled=true
.조건
용량
추가 안 함
887,244
gms만 추가
1,696,813
Firebase crash에 추가
1,710,199
Firebase crash 자체는 15k 정도이고 gms 자체는 800k 정도 증가했다.
여기서 마치겠습니다.
Reference
이 문제에 관하여(Firebase crash Tips 가져오기(Android 편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yamacraft/items/bc224ea7003c763f7118텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)