[Android][Fabric] Crashlytics を使って Android アプリのベータ版を配信する
Crashlytics をベータ版配信に活用しよう
Crashlytics はアプリのクラッシュレポートを収集し、統計を取るためのサービスですが、アプリのベータ版を配信するための Beta Distribution という機能を提供しています。こちらを利用すると、旧 TestFlight や Deploy Gate に近い、ベータ版の配信を行うことができます。
先日 iOS アプリでベータ配信を行う方法をご紹介しましたが、今回は Android アプリでベータ配信する方法をご紹介したいと思います。
事前に必要なこと
Beta Distribution を利用するには、以下の作業が事前に必要になります。
- Android Studio のインストール (2015/05/21現在で 1.2.1.1 が最新バージョン)
- Fabric アカウントの登録 (こちらを参考)
- テスターのメールアドレス
Android Studio に Fabric プラグインをインストールする
まず初めに、Android Studio に Fabric プラグインをインストールしましょう。以下の URL にアクセスし、Fabric プラグインをローカルにダウンロードします。
次に Android Studio のメニューから「Preferences...」を選び、環境設定を開きます。その中の「Plugins」の「Install plugin from disk...」を選択し、先ほどダウンロードしたファイルを開きます。
プラグインのリストの中に「Fabric For Android Studio」が表示されればインストール完了です。
「OK」を押すとリスタートが求められるので、リスタートしましょう。起動するとツールバーの中にアイコンが表示されるはずです。
Crashlytics ライブラリをインストールする
次に、Android アプリプロジェクトに Crashlytics ライブラリをインストールしましょう。現時点(2015/05/21)での最新バージョンの 2.2.4 を導入します。まず、先ほど確認したアイコンをクリックすると、ログイン画面が表示されるはずです。Fabric アカウントの情報を入力してログインしましょう。
ちなみにちょっとした Tips ですが、Fabric からログアウトしたい場合は Fabric プラグイン表示中に Cmd + L または Control + L を押すとできます。
次にインストールするプラグインを選択します。今回は一番上の「Crashlytics」ですね。
次にインストールの手順が表示されます。build.gradle、AndroidManifest.xml、MainActivity.java の編集が必要です。
順番に見て行きましょう。まずは build.gradle に Crashlytics のプラグインをインストールする設定を追加します。
buildscript { repositories { maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'io.fabric.tools:gradle:1.+' } } apply plugin: 'com.android.application' apply plugin: 'io.fabric' repositories { maven { url 'https://maven.fabric.io/public' } } android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "jp.classmethod.myapplication" minSdkVersion 14 targetSdkVersion 22 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.0.0' compile('com.crashlytics.sdk.android:crashlytics:2.2.4@aar') { transitive = true; } }
編集が終わったら、Gradle Sync を実行しておきましょう。次に AndroidManifest.xml です。YOUR_API_KEY は適宜変更してください。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="jp.classmethod.myapplication" > <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> <meta-data android:name="io.fabric.ApiKey" android:value="YOUR_API_KEY" /> </application> <uses-permission android:name="android.permission.INTERNET" /> </manifest>
最後に、MainActivity.java です。ここはベータ配信というよりはクラッシュレポート送信のための設定になります。適宜、必要なタイミングで呼び出してください。
package jp.classmethod.myapplication; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import com.crashlytics.android.Crashlytics; import io.fabric.sdk.android.Fabric; public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Fabric.with(this, new Crashlytics()); setContentView(R.layout.activity_main); } }
これでインストールは完了です!
ベータ配信を行う
次に、ベータ配信を行ってみましょう。まず fabric.properties がアプリフォルダ下に生成されているので開きます。この中に、リリースノート、送信したい相手のメールアドレスまたはグループを記入しましょう(グループは Fabric 管理コンソールから設定しておく必要あり)。
#Contains API Secret used to validate your application. Commit to internal source control; avoid making secret public. #Thu May 21 21:26:34 JST 2015 apiSecret=YOUR_API_SECRET ext.betaDistributionReleaseNotes="テストのリリースです" ext.betaDistributionEmails="[email protected]" ext.betaDistributionGroupAliases="my-best-testers"
あとはコマンドを叩くだけです。デバッグビルドで良い場合は assembleDebug crashlyticsUploadDistributionDebug、リリースビルドにしたい場合はassembleRelease crashlyticsUploadDistributionRelease を叩きます。リリースビルドはもちろん Keystore を作成・設定を済ませておく必要があります。
$ ./gradlew assembleRelease crashlyticsUploadDistributionDebug :app:preBuild UP-TO-DATE :app:preDebugBuild UP-TO-DATE ...省略... :app:assembleDebug :app:crashlyticsUploadDistributionDebug Uploading /Users/suwa-yuki/AndroidStudioProjects/MyApplication/app/build/outputs/apk/app-debug.apk to Crashlytics... BUILD SUCCESSFUL Total time: 16.192 secs
これで完了です!Fabric 管理コンソールを見てみると、配信できていることが確認できます。
まとめ
iOS に続いて Android での配信までの手順でした。今回は Fabric プラグインの導入から解説しているため少し長くなっていますが、プラグイン導入済みであれば build.gradle と AndroidManifest.xml をちょっと設定するだけで済みます。簡単なので、ぜひ試してみてください。
テスト端末でのインストール手順は次回解説します。