こんにちは。 @imoans です。 この記事はTitanium Advent Calendar 2016 13日目の記事です。
私は、今年4月に新卒入社した会社でTitaniumアプリを書いております。
入社して1年弱が経ち、アプリを書くのにも慣れてきたため、
だんだんとアプリ開発時の定常作業を自動化することに興味を持ち始めました。
当時、一番自動化したかったのがアプリリリース前のipaファイルのビルドと配布だったので、
bitriseでipaファイルをビルド -> deploygateにアップロード
という環境を作ってみました。
その時の話を書きたいと思います。
bitriseとは?
bitrise.io
スマートフォンアプリ向けのCIサービスです。
アプリビルド時に必要なProvisioning Profileやkeystoreの設定がGUIで簡単にでき、
200ビルド/月などの制限があるものの、無料枠でも十分使うことができるので、
とても便利なサービスです。
bitrise登録〜アプリ設定
まず、bitriseに登録して、githubまたはBitbucketのレポジトリを登録します。
その後、Provisioning Profileや証明書を登録して、アプリがビルドできる環境を作ります。
こちらの記事がとても参考になります。
http://qiita.com/janus_wel/items/83996325920f62a684eb
workflow設定
アプリビルドの環境が整ったら、workflowを設定していきます。
workflowとは、アプリビルドに必要な作業を一つづつ登録できるものです。
(bitriseではこの一つ一つの作業をstepと呼んでいます)
ネイティブアプリ向けには、Xcode Archive for iOSやgradle runnerなどビルド用のstepが用意されています。
Titaniumは対応していないため、専用のstepはありませんが、
scriptを追加できるので、ここにビルドコマンドを書いて追加していけば、
アプリをビルドすることができます。
今回のアプリの場合は、
npm install
npm install -g appcelerator
npm install -g titanium
appc login --username <username> --password <password>
appc ti sdk install
appc ti build -p ios -T dist-adhoc -D <certificate name> -P <provigioning profile uuid>
これらのscriptを追加しました。
ビルドしたアプリをdeploygateにアップロードする
deploygate APIをそのままworkflowに追加しました。
dist-adhoc
ビルドでdevelopment用の設定を適用させたい
Titaniumではconfig.json
に環境ごとの設定を書くことができます。
私の担当しているアプリでも公式ドキュメントの例にある通り、test, development, productionの3つの環境の設定が書かれていました。
今回bitriseでビルドするアプリではdevelopment用設定を適用させようと思っていましたが、
このままだと、build-target
がdist-adhoc
なのでproduction用設定が選択されしまいます。
build-target
がdist-adhoc
のときだけdevelopment用設定を適用する方法がないかと調べていたら、
Alloy1.4からdist-adhoc
とdist-appstore
ビルドを区別することが可能になっていました。。! (公式ドキュメント)
ということでconfig.json
に以下のように設定を追加しました。
{
"dist:adhoc": {
"dist": "adhoc",
"SERVER_URL": "SERVER_URL_FOR_DEVELOPMENT"
}
}
そうすると無事、
dist-adhoc
ビルドのときにdevelopment環境を適用することができました。
というわけで、以上のような手順でbitrise + deploygateによるリリース前のipaファイルの準備を自動化する事ができました!
これによりTitaniumでのアプリ開発を加速させることができました!