[음악]
Doug Stevenson: 안녕하세요 이 Firecast를 들어주셔서 고맙습니다.
제 이름은 Doug Stevenson이고
저는 어떻게 당신이 Android 앱에서의 충돌을
Firebase 오류 보고를통해 모니터링하는지 알려드리겠습니다.
당신이 많은 시간을 들여서
Android 앱을 개발하고 테스팅하여
모든 사람들이 이용할 수 있도록 플레이스토어에 올렸다고 가정해봅시다.
당연히 당신은 유저들이 당신의 앱으로 가능한 한
최고의 경험을 할 수 있기는 바랍니다.
그래서 만약 문제를 일으키는 버그가 있으면
당신은 고칠 수 있게끔 가능한 한 빨리 알아야합니다
이것을 위해 당신은 앱을 올리기 전에
Firebase 오류 보고 SDK를 단 한줄의 구성으로
통합할 수 있습니다.
당신이 어떠한 Firebase 기능을
아직 한번도 앱에 적용시켜보지 않았다면, 시작하기 위해 먼저
이 비디오를 시청해주세요.
따라하신다면 Firebase 오류보고를 사용할 수 있습니다.
저는 이미 Firebase를 이용하는 앱이 있어서
오류 보고를 통합시켜보겠습니다.
저는 제 앱을 열어 dock gradle을 만들고
프로젝트 종속성 블락을 찾을겁니다.
그리고 Firebase 오류보고을 위한 종속성을 추가합니다.
이 리코딩이 나올 시기의 최신 버전은 10.0.1입니다
최신버전을 찾아서 쓰세요.
그리고 저는 제 프로젝트를 동기화 할겁니다.
이게 끝입니다.
종속성만 추가하면
당신의 앱이 충돌할 때 기록할 수 있죠.
그리고 다른 코드를 작성할 필요가 없습니다.
그냥 작동하죠.
만약 당신의 앱을 충돌시키는 변수가 나타나면
그 충돌에 대한 모든 스택 추적을
Firebase 콘솔에서 받습니다.
이것을 조금 더 진전시키려면
Firebase 오류 보고 API를 이용해 몇 줄의 코드를 쓰는
몇몇 추가 단계만 거치면 됩니다.
예를 들어, 당신은 오류보고에 나타나는
메세지를 남길 수 있어서
앱 충돌 바로 전에 어떤 일이 있었는지
더 알 수 있습니다.
그리고 예외 대처법을 모른다면
예외를 보고할 수 있습니다.
이것은 비치명적인 보고서라고 콘솔에 나올 것 입니다.
대체적으로 발견된 예외를 신고 할 필요는 없지만
그러나 이는 희귀하거나 예측 불가능한 문제를
진단하는데 유용할 수 있습니다.
지금 이런 상황을 더 추가하겠습니다.
먼저, 예외를 신고하기 전에 일어날 것에 대한
메세지를 남기기위해 한줄의 코드를 추가합니다.
그리고 제가 만들 가짜 예외를
신고하겠습니다.
이것은 배출 트레이 속의 예외를
잡은 것과 같이 작동합니다.
지금, 저는 앱을 작성하고 실행 하여 로그 파일을 검사하겠습니다.
만약 제가 이것에 대한 보고서를 보고 싶다면
앱을 위해서 Firebase 콘솔을 로드시키고
충동 보고를 왼쪽에서 선택합니다.
당신은 앱의 콘솔이
제 예외를 앱을 충돌시키지 않은 비치명적인 에러라고
나타내는 것을 볼 수 있습니다.
제가 클릭하면, 저는 기기의 자세한 사항을 볼 수 있습니다.\
이러한 경우에, 제 에뮬레이터에서 나온게 보이네요.
제가 기록한 메세지 뿐만이 아니라
전체 스택 추적도 저기 있네요.
이 문제를 고치고나서 저는 닫힘 버튼으로
이 문제를 종결하고 더 이상 나타나지 않게 할 수 있습니다.
새로운 충돌이 Firebase 오류보고에서
발견되면 저는 이메일 알림을 받습니다.
이 이메일은 충돌에 대한 기본 사항을 주고
콘솔에서 볼 수 있는 버튼도
마련되있습니다.
리포트를 보내고 콘솔에서 나타나는데
일 분 미만이 걸립니다.
이것을 스스로 하실 때
네트워크 연결이 잘 되어있는지 확인하세요.
그리고 앱을 다시 실행하셔서
어떤 것이라도 미전송된 보고가
콘솔에 도착할 수 있게 하세요.
제 것 같은 신규 앱은 관찰할만한 흥미로운 충돌이 많지 않지만,
당신은 Firebase 데모 앱을 통해
더 많은 재미있는 데이터를 볼 수 있습니다.
밑에 써있는 링크를 이용하서
프로젝트에 읽기 전용 액세스 권한을 얻으실 수 있어요.
이 데모 앱은 Lab Pixies 제작사의 Flood-It으로,
플래이 스토어에서 다운 받을 수 있는 게임입니다.
지금 그 앱의 충돌 보고가 어떻게 되었을지
지금 보겠습니다.
이 프로젝트는 Android와 iOS앱이
둘 다 연결되어 있습니다.
그리고 저는 Android 버전으로
충돌을 보겠습니다.
여기서 우리는 최근 자세한 충돌 기록을 아래 표를 통해 볼 수 있고,
충돌이 일어난 횟수로 분류 되어있네요.
하나를 클릭해 본다면
스택 추적를 보여줍니다.
그리고 상세보기를 하면, 이 에러에대한
통계를 보여줍니다
화살표를 클릭하여 각각의 충돌 발생을
볼 수 있다는 것 꼭 알아주세요
이 모든 충돌 수집은 이슈라고 불립니다.
그리고 이슈는 서로 비슷한
충돌을 기반으로 만들어집니다.
모두 같은 에러를 나타내는데,
스택 추적과 기기 상세 설명은
각각의 경우에 따라 조금씩 다를 수 있습니다.
개개의 충돌에 대해서는
충돌 당시 기기의 자세한 설명을 볼 수 있습니다.
이 에러에서는 가장 중요한 스택 추적은
감춰보기에 있기때문에
펼쳐보기를 하겠습니다.
여기서 당신은 문제가
extra steps activity인
onResume 방법에서 시작됨을 볼 수 있습니다.
제가 더 스크롤을 내리면
저는 충돌 바로 전에 무슨 일이 일어났는지 볼 수 있습니다.
여기서 많은 로그 아이템이 있고
이는 그 당시 일어났던 Firebase Analytics 이벤트에서
자동적으로 만들어진 것입니다.
이런 이벤트들은 자동적으로 만들어진겁니다.
이를 하기 위해 어떠한 코드도 작성할 필요가 없습니다.
그리고 이게 Firebase 오류보고의 배경 지식입니다.
그러나 플레이 스토어에 앱을 게시하기 전에
알아야할 것이 몇몇 더 있습니다.
먼저, 제작 환경을
개발 환경으로부터 분리하세요.
이렇게 하는 방법은 Firebase 프로젝트를
각각 종류에 따라 완전히 새로 만드는 것입니다.
이러면 앱을 개발할 때 생긴 충돌이
생산과정에서 유저에게 생긴 것과
따로 분리됩니다.
이것에 관한 정보를 더 얻으려면
이 블로그에서 읽으세요.
두번 째로, 만약 ProGuard를 이용해 코드를 난독화하고 줄이고 있으면,
스토어에 게시한 빌드를 위해 만들어진
맵핑 파일을 업로드해야합니다.
이것을 콘솔에 업로드하거나
gradle plugin을 사용하여 업로드를 테스트 할 수 있습니다.
이에 대한 꼭 문서를 읽어보셔야하는게,
올바른 맵핑파일을 올리지 않고
스택 추적을 읽을 수 없기 때문입니다.
만약 Firebase 오류보고의 질문을 가지고 있다면
트위터에 #askFirebase나
Firebase 지원 채널을 이용해주세요.
저는 Doug Stevenson입니다.
시청해주셔서 감사하고, 반드시 모든 버그들을 잡으세요.
시청해주셔 감사합니다.
여기서 더 확인하시고
Firebase 유투브 채널 구독을 잊지마세요.
[음악 재생]