bitrise + deploygateでtitaniumアプリ評価環境を作る

More than 1 year has passed since last update.

こんにちは。 @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-targetdist-adhocなのでproduction用設定が選択されしまいます。

build-targetdist-adhocのときだけdevelopment用設定を適用する方法がないかと調べていたら、

Alloy1.4からdist-adhocdist-appstoreビルドを区別することが可能になっていました。。! (公式ドキュメント)

ということでconfig.jsonに以下のように設定を追加しました。


config.json

{

"dist:adhoc": {
"dist": "adhoc",
"SERVER_URL": "SERVER_URL_FOR_DEVELOPMENT"
}
}

そうすると無事、

dist-adhocビルドのときにdevelopment環境を適用することができました。


というわけで、以上のような手順でbitrise + deploygateによるリリース前のipaファイルの準備を自動化する事ができました!

これによりTitaniumでのアプリ開発を加速させることができました!