앱을 testing 하고나서 스토어에 앱을 올리게 될 때 예상치 못한 ANR로 앱을 죽을 경우가 있습니다.


플랫폼이나 스마트폰 기기 마다 다른 방식이 많이 다 잡지 못하는 버그가 있을 때 사용자가 리포팅 하여 보고하면 

개발자가 알 수 있겠지만 보고를 하지 않는 상황에서는 어떤 ANR이 발생한 지 몰라 여러가지 Crash에 개선하는 것이 힘듭니다.


나의 앱에서 발생하는 ANR에 대해 기록되게 하기 위한 플러그인에 대해 소개해 보겠습니다.



1. https://try.crashlytics.com 접속하여 회원가입







2. 계정으로 연결하여 Fabric 접속


회원가입을 진행 하시면 Plugin에 대한 설치 방법이 소개 됩니다.


설치방법대로 진행 하신 뒤 안드로이드 스튜디오엔 아래와 같은 아이콘이 생성됩니다.




아이콘을 클릭 하시면 계정에 연결할 수 있습니다






3. Crashlytics 설치


계정에 연결 후 설치할 수 있는  All Kits 리스트 화면이 나옵니다. 리스트에서 Crashlytics 를 선택하면 설치화면으로 이동합니다.


아래와 같은 화면이 나오지 않고 Select app 화면이 나온다면 적용할 app을 하나 선택 하신 후 NEXT를 누르면 All Kits 화면으로 이동할 수 있습니다.




4. 코드 추가


install을 하면 아래와 같은 창이 뜨면서 자동적으로 gradle, Manifest, Manifest에 등록된 시작 Activity에 코드를 추가하게 됩니다.




buildscript {

  repositories {

    maven { url 'https://maven.fabric.io/public' }

  }


  dependencies {

    // These docs use an open ended version so that our plugin

    // can be updated quickly in response to Android tooling updates


    // We recommend changing it to the latest version from our changelog:

    // https://docs.fabric.io/android/changelog.html#fabric-gradle-plugin

    classpath 'io.fabric.tools:gradle:1.+'

  }

}


apply plugin: 'com.android.application' // Put Fabric plugin after Android plugin

dependencies { compile 'com.android.support:appcompat-v7:23.1.1'

}


 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>

</application></manifest>



// 첫 실행 되는 Activity에 Fabric.with(this, new Crashlytics()); 이 구문을 넣어주면 됩니다.


import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem;
public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }

 



설치 후 한번 Build 해주시면 Crashlytics 를 사용할 수 있는 환경이 나오며 Dashboard가 제공 됩니다.


[ 다른 참고자료 처럼 Apply 버튼이 생성 되지 않아 기다려 보고 Build 시켜보고 해 보았지만 자동으로 소스가 추가 되지 않아

직접 추가 시켜 주는 방법을 사용했습니다. ]





테스트로 ANR을 발생 시키니 자동적으로 갱신이 되어 추가가 되는 것을 확인 할 수 있습니다.






부가적인 기능으로는 Ctrl + l 입력 시 로그아웃이 가능합니다.






+ Recent posts