Shoichi Matsuda's diary

このブログは移転しました。 https://shoma2da.net/ が新しいブログです。

Androidの自動ビルドと配布は今やこんなに簡単!

GitHub・Android Studio・Travis CI・DeployGateを組み合わせてAndroidアプリを自動ビルド→配布していきます。

 

自分でやってみてわかりましたが、今や簡単な設定だけでかなり高度なことができるようになっているんですね!!改めてびっくりです。

 

やりかた

プロジェクトの準備

まずはAndroidプロジェクトを準備します。

ここでの必須事項は以下2つです。基本的なところですので詳細は省きます。

 

  1. Android Studioでプロジェクトを作成
    →使ったことがない方は「今からAndroid開発を始めるなら」などをご覧ください
  2. GitHubにソースコードをpush

 

Travis CIでapkを自動ビルド 

CIサービスであるTravis CIを使って自動でapkのビルドをしていきます。

 

まずはTravis側で自動ビルドしてくれるように設定します。

TravisのAccountsメニューから対象のリポジトリのスイッチをONにするだけです。

f:id:shoma2da:20140525120014p:plain

 

次にAndroidプロジェクト内にTravisの設定ファイルである.travis.ymlを作成します。

公式ドキュメントはこちら→Travis CI: Building an Android Project (beta)です。

Androidのビルドに関してはつい最近beta版となったようです。

 

ファイル内容は以下のようにします。

language: android
android:
  components:
    - build-tools-19.0.3
    - android-19
    - sysimg-19
    - extra-android-support
  licenses:
    - android-sdk-license-bcbbd656
script:
  - ./gradlew assembleDebug

少しだけ工夫しているところはscriptの実行コマンドを変更しているところです。
このassembleDebugコマンドはAndroid Studioでデバッグ実行時のコマンドと同じものです。
(Android Studioで作ったプロジェクトはビルドは全てgradleを使っているのでこういったCIの設定もわかりやすくて良いですね)

これだけの設定でGitHubにpushする度にTravis側でapkを自動ビルドをしてくれるようになります。
簡単ですね!!

 

DeployGateで便利にアプリを配れるようにする

apkが自動ビルドされるようになったら動作確認などのために簡単にアプリをインストールできるようにしていきます。

そんなときに活躍するのがmixiのDeployGateです。(最新の情報を知りたければk_kinukawaさんをフォローしておくと良いでしょう!)

TestFlightの日本版といったところですかね。 

 

今ならベータプログラムに参加するとかなり良い条件でサービスを利用できますので是非登録だけでもしておきましょう。

f:id:shoma2da:20140525161309p:plain

 

サービス紹介はこのへんにして、Travisでビルドしたapkをアップロードしていきましょう。

DeployGateにはAPIが用意してあるのでこちらを使っていきます。

ドキュメント→https://deploygate.com/docs/api?locale=ja

 

では行きましょう。手順は以下のとおりです。

 

  1. travisコマンドをインストール
    New Command Line Clientを参照
  2. DeployGateのAPI Keyを確認
    設定ページから確認できます。
  3. API Keyを暗号化する
    travis encrypt DEPLOYGATE_TOKEN={確認したAPI Key}
    ↑この値を覚えておきましょう
  4. Travis設定を追加してapkをアップロードする
    env:
      global:
        - secure: "hogeohge" #←この行はすぐ上の暗号化手順で取得したもの
    
    # ...
    
    after_success:
      - curl -F "file=@./app/build/apk/app-debug-unaligned.apk" -F "token=${DEPLOYGATE_TOKEN}" -F "message=DeployGateに表示するメッセージ" https://deploygate.com/api/users/your_name/apps

 

これでpushする度にDeployGateにapkがアップロードされるようになります!

素晴らしい!!

 

.travis.yml全体を載せておきます。

language: android

env:
  global:
    - secure: "hogeohge" #←この行はすぐ上の暗号化手順で取得したもの

android:
  components:
    - build-tools-19.0.3
    - android-19
    - sysimg-19
    - extra-android-support
  licenses:
    - android-sdk-license-bcbbd656

script:
  - ./gradlew assembleDebug

after_success:
  - curl -F "file=@./app/build/apk/app-debug-unaligned.apk" -F "token=${DEPLOYGATE_TOKEN}" -F "message=DeployGateに表示するメッセージ" https://deploygate.com/api/users/your_name/apps 

 

さいごに

紹介は以上です。

「10年後に食える仕事、食えない仕事」なんて本がありましたが、自動化で置き換えられるような仕事は10年と待たずにどんどん無くなっていくかもしれませんね。 一体どうなることやら

10年後に食える仕事、食えない仕事

10年後に食える仕事、食えない仕事