のらぬこの日常を描く

ノージャンルのお役立ち情報やアニメとゲームの話、ソフトウェア開発に関する話などを中心としたブログです。

androidアプリのCI環境(自動ビルドとテスト版自動配信)を全部無料で整える 其の弐

どうものらぬこです。

今回の話は、開発中androidアプリのソースをgitリポジトリにpushした瞬間、自動テスト(書いていれば)、自動ビルドが走り、成果物(apk)を自動でテスト配信するというお話の第二弾です。

前回記事では、bitriseというモバイル・アプリ向けのCIサービスを利用して、自動ビルド&自動テストするところまでを紹介しました。

noranuk0.hatenablog.com

今回は、fabricというサービスの一つであるcrashlyticsに含まれるbeta版アプリの配信機能を利用して、開発中アプリを随時テスト端末へ自動配信する方法を紹介します。

fabricは、アプリの収益化、利用者の増加にまつわる様々な問題を分析、解決するようなWeb上のプラットフォームです。

アプリユーザ数、アクティブユーザ率などの集計、クラッシュレポートの収集、そして今回利用するテスト版の配信機能などを備えています。

もともとTwitter社が運営していたのですが、今年の1月にgoogleに売却されたようです。

ただ、アナリティクス的な機能や、クラッシュレポートの収集機能であれば、firebaseというプラットフォームもありますし、機能的にかぶるところも多いです。

fabricのサービスが今後どうなるのかは、正直なところちょっと未知数かもしれません。

とはいえ、手軽にテスト版アプリの自動配信が行えるプラットフォームとしては、現時点ではとても使いやすいと感じているので、当面はこちらを利用していきたいと考えています。

アカウント登録

利用するにはアカウント登録が必要です。

というわけで、まずはfabricのアカウントを取得します。

アカウントの取得は、Fabric - App Development Platform for teams の右上にある、[GET FABRIC]ボタンから行うことができます。

f:id:noranuk0:20170501230403p:plain

登録は、画面右上の [GET FABRIC] と書かれたボタンから行います。

f:id:noranuk0:20170507161209p:plain

fabricのダッシュボードにアプリを追加する

アカウント登録が完了したら、fabricのダッシュボードに自動配信を行いたいアプリを登録します。

ダッシュボードへの登録は、対象アプリにfabricのSDKを組み込み、それをいったん起動することで自動的に行われます。

SDKの組み込みは build.gradleやandroidmanifest.xmlへのコード埋め込みのみなので比較的簡単に行えます。

しかし、APIkeyの取得が、現状android studio の pluginから行うしか方法がなさそうです。したがって、SDKの組み込みを行うにはandroid studio へのプラグイン導入が必須な感じとなっております。

Web上に導入手順が細かく書かれているfirebaseと比べるとやっぱりちょっと適当な印象を持ってしまします。いずれはなんとかしていただきたいものです。。

まあ、ここで言っても仕方がないので、ここはめげずに android studio にfabric pluginを導入します。

プラグインの導入は、[File] - [Settings…] メニューを選択して表示されるSettingsダイアログ内の plugins から行うことができます。

f:id:noranuk0:20170507170108p:plain

インストール完了後、android studio を再起動すると、ツールボタンンに fabricプラグイン起動ボタンが追加されています。

f:id:noranuk0:20170507171609p:plain

プラグインを起動すると、ログイン画面が表示されるので、先ほど登録したログイン情報を入力してログインします。

fabricで使えるすべての機能が一覧表示されるので、その中から crashlytics を選択します。

crashlyticsは本来は、クラッシュログの収集用のツールですが、テスト版(開発中)のアプリをテスト端末に自動配信する機能も持っています。 今回はそれを了する形になります。

crashlyticsを選択すると、埋め込み用のコードが表示されるので、そのままapplyボタンを押せば、オープン中のプロジェクトにコードが追加されます。

テスト端末などでアプリをデバッグ起動すれば、自動的に fabricのダッシュボードにアプリが追加されます。

fabricにwebからログインすると、確かにダッシュボードにアプリが登録されています。

自動配信を設定する

まずはテスターの方をfabricのプロジェクトメンバーに登録します。

テスター=本人のみというボッチ系開発者の方も、まずは自分をメンバーとして登録する必要があります。

ダッシュボードのサイドメニューから Beta を選択し、Add Testers というボタンを押します。

f:id:noranuk0:20170507174944p:plain

メールアドレスを聞かれるので、メアドを入力します。

すぐに下記のようなメールが来るので、
テスト対象のアンドロイド端末でメールを開き、本文内の [Let me in] ボタンを押します。

f:id:noranuk0:20170507174950p:plain

配信管理用アプリのダウンロード&インストールが始まるので、指示に従い配信用アプリをインストールしてください。

Beta というアプリがインストールされるはずです。

以後は、fabricに登録したテストアプリを更新するたびにこのアプリに通知が飛ぶようになっています。

テスターを何人か抱えたチーム開発を行うような場合だけではなく、個人開発中、数台のテスト端末に開発中アプリをまとめて配信したいような場合にも活用できるかと思います。

また、過去のバージョンも保存されているため、一旦旧バージョンに戻して確認するといったことも簡単に行うことができるようになっています。

fabricのアプリを更新する

android版の場合、gradeleコマンドを利用すればfabric経由で簡単に更新版を配信することができます。

$ ./gradlew assembleDebug crashlyticsUploadDistributionDebug
  • リリース版の場合
$ ./gradlew assembleRelease crashlyticsUploadDistributionRelease

これを自動ビルドを行ってくれるCI環境に組み込めば、developブランチへのpushでdebug版のテスト配信、masterブランチへのpushでrelease版のテスト配信を行うといったことが可能になります。

前回紹介した bitriseの記事でも、そのような設定を行っています。

以上、2回に分けて、androidアプリのCI環境の話と、テスト版自動配信の話をさせていただきました。

お読みいただいてありがとうございました。