この記事なに
- BitriseでAndroidアプリをビルドする際の超基本的な手順をざっくりと記述しています
- ほぼ公式ドキュメントに記載されている内容です
Bitriseとは
Bitrise
BitriseのGitHub
GUIで直感的にビルドフローを作成できるOSSなCIサービスです。
プランは4つあり、月あたりのビルド回数や利用メンバー数、並列処理数などに違いがあるようです。Hobbyという無料プランも用意されているので、趣味の開発でもBitriseでCI廻せます![]()
Bitriseでは基本的にGUIでビルドフローを作っていきます。また、フローを作っていくと最終的にはymlファイルが生成されるため、慣れている方はこのymlを直接編集することも可能です。
Bitriseのアカウント作成
Sign-up画面でユーザー名、パスワードを設定します。
途中で所属企業の情報を聞かれますが、空欄のままでも問題ありませんでした。

アカウントができました![]()
BitriseとGitHubを連携
上記の画面下部のAdd First Appボタンをクリックするとアプリの登録・設定画面に進みます。Bitriseでは1つのレポジトリをアプリ(App)として登録・管理していくイメージになります。
連携先としてGitHubを選択しレポジトリを選択、ビルド対象ブランチ名など必要な情報を入力していきます![]()
ここでprivateレポジトリを選択した場合にはSSH Keyの設定画面が出てきますが、焦らずこのページを参照して自動or手動でKeyを設定します![]()
ビルドしたいModule、Variantを入力していきます![]()
また、デフォルトでそうなっていると思いますが、The root directory of an Android projectはカレントパス(.)を入力すると吉です。

最後にWebHookを設定するか聞かれますが、ここでは一旦スキップします。
最初のビルドをスタートします![]()

ビルドが終わるまで待ちます。
ここでビルドが失敗しても気にせずに先に進みます![]()
Workflowの作成
BitriseのWorkflowを作っていきます。先程のビルド画面の↓のボタンを押すとWorkflow編集画面に飛べます。

画面左側にActivate SSH key (RSA private key)から始まるボックスが縦に並んでいるかと思います。この1つ1つのボックスがBitriseではStepと呼ばれ、Stepの一連の流れがWorkflowとなります。
StepはDrag&Dropで順番を入れ替えることが可能で、Step間の+ボタンから新たなStepを追加することができます。
デフォルトで用意されているAndroid Unit Testの下にAndroid Build,Sign APKを追加してみました↓

そしてWorkflowは1つのレポジトリに複数作成することができます。
例えば、PullRequest時、デイリービルド時、リリース時...などにそれぞれ対応するWorkflowをつくることが可能です。
↓このボタンから新しいWorkflowを追加できて......

こんな感じで入力してDoneすると、primary-Workflowがコピーされてstaging-Workflowが作られます![]()

環境変数について
ステップの前に環境変数について簡単に説明します。
Env vars
通常の環境変数です。デフォルトで$MODULEなどが定義されている他、追加・削除・編集が可能です。
特定のWorkflow内でのみ参照可能な変数も作ることができます。
Secrets
編集方法、使用方法はEnv varsと変わりませんが、Secretsのvalueは暗号化されて保存され、bitrise.ymlにも記述されません。従って、センシティブな情報を定義するのにピッタリです。
Slack連携URLやkeystoreのパスワードなどはEnv varsではなくSecretsで管理するのが良いでしょう
ステップ
Androidのビルドに関するStepを簡単に見ていきます。
Install missing Android SDK components
名前の通りですが、SDKをインストールするステップになります。
NDKのインストール
NDKが必要なアプリの場合にはNDKバージョンにビルドに必要なNDKバージョンを書けばOKです。

参考
Android Build
ビルドステップになります。
ステップ設定パネル下部のOptionsから、apkファイルの格納先を指定できます。

Androidライブラリをビルドする場合にはapkではなくaarへのパスを指定しましょう。
Sign APK
ビルドアップステップで作成したapkに署名をするステップです。
署名の方法には複数の種類があるので、お好みの方法で実装してください。
Variantごとに異なる署名をしたい
実は、上記の方法ではアップロードできるkeystoreファイルは1つだけです。
debug、staging、releaseで異なる署名をすることができません困った![]()
そんな時にはGENERIC FILE STORAGEを使います。
なおこの方法ではSign APKステップは不要です。
keystoreを複数アップロードし、前述したSecretsにそれぞれのkeystoreでの署名に必要なkeystore passwordやkey alias、key passwordを登録します。

さらに公式ドキュメントを参考にして、File DownloaderをBUILD APKステップの前に追加し、keystoreファイルを任意の場所にダウンロードしておきます。
Android Studioでbuild.gradleを開き、signing情報としてSecretsを参照するようにします。
signingConfigs {
staging {
storeFile file(System.getenv('HOME') + '/keystore/staging.keystore')
keyPassword System.getenv('STAGING_KEYSTORE_PASS')
keyAlias System.getenv('STAGING_KEY_ALIAS')
keyPassword System.getenv('STAGING_KEY_PASS')
}
}
これでAndroid Buildステップにて署名されたapkが生成されます![]()
Triggerの設定
作ったWorkflowを実施するタイミングを設定します。
TriggerはWorkflow編集画面の「Trigger」タブから設定できます![]()
↑のような設定で、任意のブランチにPullRequestが作成されたタイミングでpullrequest-workflowが実行されるようになりますまとめ
- Bitriseではビルドステップを視覚的に作れるので、CIに不慣れでもあまりハマることなくビルドまで持っていける
- 公式ドキュメントが充実しています
- どんどんCI廻していきましょう!


