태그 보관물: Fabric

안드로이드 페브릭(Fabric) 그래들(Gradle) 플러그인 버전 지정하기

페브릭(Fabric)은 아주 유용한 기능을 모바일 플랫폼에 쉽게 적용할 수 있게 도와주는 서비스이다. Crashlytics도 페브릭에서 제공하는 크래시 리포트 서비스이다. Crashlytics을 안드로이드에서 사용하는 방법은 fabric.io/kits/android/crashlytics/install 에서 확인할 수 있다. 여기에서 아래의 아래의 코드를 추가하라고 한다.

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.+'
}
}

위 코드를 보면 알겠지만, 페브릭의 그래들 플러그인 버전이 ‘io.fabric.tools:gradle:1.+’로 선언되어 있다. 주석을 읽어보면 알겠지만, docs.fabric.io/android/changelog.html#fabric-gradle-plugin 에서 최신 버전으로 수정하라고 한다. 이 문서를 보면, 아래와 같이 최신 버전을 확인할 수 있고, 변경 내용도 확인할 수 있다.

2017년 6월 14일에 확인해 본 결과로 1.22.2 버전이 최신버전이다.

위 과정에 더불어, 페브릭 그래들 플러그인에 대한 메타 정보는 아래 URL에서 확인할 수 있다.
fabric-artifacts.s3.amazonaws.com/public/io/fabric/tools/gradle/maven-metadata.xml

위 이미지에서 최신 버전 릴리즈 시점이 2017년 05월 31일 이라는 것도 알 수 있다.

결론으로 app 모듈에서 build.gradle 파일의 맨 처음은 아래와 같은 모습이 될 것이다.

buildscript {
    repositories {
        jcenter()
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'

        classpath 'io.fabric.tools:gradle:1.22.2'
    }
}

안드로이드 스튜디오(Android Studio)에서 Fabric의 Crashlytics을 플러그인 설치 없이 사용하기

Crashlytics는 안드로이드나 IOS에서 크래시나 그와 같은 상황에 대한 리포팅 서비스를 제공하고 있다. 이 서비스를 사용하는 기본 방법은 http://sjava.net/?p=479를 확인하면 쉽게 알 수 있다. 필자가 진행하고 있는 프로젝트로 외부 프로젝트도 같이 진행하고 있다. 그래서 Crashlytics 계정을 2개 이상 사용하고 있다.

프로젝트를 변경해서 다른 계정을 사용할 때는 Crashlytics의 플러그인에서 로그아웃 -> 로그인 해서 사용하는 계정을 변경해서 사용한다. 그리고 이 플러그인을 설치하고 싶지가 않았다. 그래서 이 글에서는 플러그인을 설치하지 않고 Crashlytics를 사용하는 방법을 살펴보자.

Crashlytics는 트위터(Twitter)가 인수를 하고 Fabric이라는 통합 툴의 일부가 되었다. 그리고 사용하는 방법도 변경이 되었기에 변경된 내용을 살펴보자.

1. Fabric에서 Crashlytics에 해당하는 gradle 설정은 다음과 같다. 아래 내용은 https://fabric.io/migrations/gradle 에서 확인 할 수 있다.

buildscript {
  repositories {
    jcenter()
    maven { url 'https://maven.fabric.io/public' }
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:1.5.0'
    // The Fabric Gradle plugin uses an open ended version to react
    // quickly to Android tooling updates
    classpath 'io.fabric.tools:gradle:1.+'
  }
}

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

repositories {
  jcenter()
    maven { url 'https://maven.fabric.io/public' }
  }

android {
  compileSdkVersion 23
  buildToolsVersion "23.0.0"

  defaultConfig {
    minSdkVersion 16
    targetSdkVersion 23
  }
}

dependencies {
  // Crashlytics Kit
  compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
    transitive = true
  }
}

2. AndroidManifest.xml 파일에 아래의 권한을 추가한다.

<manifest>
    <uses-permission android:name="android.permission.INTERNET" />
</manifest>

3. AndroidManifest.xml 의 <application> 요소에 아래의 값을 추가한다.

<application>
    <meta-data android:name="com.crashlytics.ApiKey" android:value="키를 넣어 주세요" />
</application>

3.1 위에서 필요한 키는 웹사이트에서 Settings > Organizations 의 목록에 있는 Admin 그룹을 클릭하면 사용자 목록을 볼 수 있고, 이 화면에서 API 키를 확인할 수 있다.

4. Application 클래스에서 사용
– Application 클래스를 상속하는 클래스의 onCreate() 메서드에서 아래와 같은 코드를 사용해서 Crashlytics를 사용할 수 있다.

public void onCreate() {
    super.onCreate();
    Fabric.with(this, new Crashlytics());
}

이제 아래 과정은 Crashlytics가 Fabric으로 통합되면서 Deprecated된 과정이다. 따라서, 아래의 과정은 참고를 하지 않는게 좋다.

이 과정은 안드로이드스튜디오(Android Studio)에 적용할 수 있다.

1. Crashlytics의 pom.xml 파일을 확인한다.
https://crashlytics.com/downloads/maven 에서 Crashlytics에서 배포하는 바이너리에 대한 정보를 확인할 수 있다.

2. 위 정보를 기준으로 build.gradle에 아래의 정보를 입력한다.

buildscript {
    repositories {
        // 1. Add the Crashlytics Maven repository
        maven { url 'http://download.crashlytics.com/maven' }
    }
    dependencies {
        // 2. Add the Crashlytics plugin to your dependencies
        classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
    }
}

apply plugin: 'com.android.application'

// 3. Apply the Crashlytics plugin after the Android plugin
apply plugin: 'crashlytics'

repositories {
    // 4. Add the Maven repository
    maven { url 'http://download.crashlytics.com/maven' }
}

dependencies {
    // 5. Add the Crashlytics SDK to the Android project
    compile 'com.crashlytics.android:crashlytics:1.+'
}

3. AndroidManifest.xml 파일에 아래의 권한을 추가한다.

<manifest>
    <uses-permission android:name="android.permission.INTERNET" />
</manifest>

4. AndroidManifest.xml 의 <application> 요소에 아래의 값을 추가한다.

<application>
    <meta-data android:name="com.crashlytics.ApiKey" android:value="키를 넣어 주세요" />
</application>

4.1 위에서 필요한 키는 웹사이트에서 Settings > Organizations 의 목록에 있는 Admin 그룹을 클릭하면 사용자 목록을 볼 수 있고, 이 화면에서 API 키를 확인할 수 있다.

5. Application 클래스에서 사용
– Application 클래스를 상속하는 클래스의 onCreate() 메서드에서 아래와 같이 Crashlytics를 사용할 수 있다.

public void onCreate() {
    super.onCreate();
    Crashlytics.start(this);
}

 

* 레퍼런스
http://blog.danlew.net/2015/02/20/setting-up-a-new-app-in-crashlytics-without-the-plugin/