1. imoans

    Posted

    imoans
Changes in title
+bitrise + deploygateでtitaniumアプリ評価環境を作る
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,105 @@
+こんにちは。 @imoans です。 この記事は[Titanium Advent Calendar 2016](http://qiita.com/advent-calendar/2016/titanium) 13日目の記事です。
+
+私は、今年4月に新卒入社した会社でTitaniumアプリを書いております。
+入社して1年弱が経ち、アプリを書くのにも慣れてきたため、
+だんだんとアプリ開発時の定常作業を自動化することに興味を持ち始めました。
+
+当時、一番自動化したかったのがアプリリリース前のipaファイルのビルドと配布だったので、
+bitriseでipaファイルをビルド -> deploygateにアップロード
+という環境を作ってみました。
+
+その時の話を書きたいと思います。
+
+
+## bitriseとは?
+[bitrise.io](https://www.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を追加できるので、ここにビルドコマンドを書いて追加していけば、
+アプリをビルドすることができます。
+
+今回のアプリの場合は、
+
+```sh
+npm install
+```
+
+```sh
+npm install -g appcelerator
+```
+
+```sh
+npm install -g titanium
+```
+
+```sh
+appc login --username <username> --password <password>
+```
+
+```sh
+appc ti sdk install
+```
+
+```sh
+appc ti build -p ios -T dist-adhoc -D <certificate name> -P <provigioning profile uuid>
+````
+
+これらのscriptを追加しました。
+
+
+## ビルドしたアプリをdeploygateにアップロードする
+[deploygate API](https://docs.deploygate.com/reference#upload)をそのままworkflowに追加しました。
+
+## `dist-adhoc` ビルドでdevelopment用の設定を適用させたい
+
+Titaniumでは`config.json`に環境ごとの設定を書くことができます。
+私の担当しているアプリでも[公式ドキュメントの例](http://docs.appcelerator.com/platform/latest/#!/api/Alloy-property-CFG)にある通り、test, development, productionの3つの環境の設定が書かれていました。
+
+今回bitriseでビルドするアプリではdevelopment用設定を適用させようと思っていましたが、
+このままだと、`build-target`が`dist-adhoc`なのでproduction用設定が選択されしまいます。
+
+`build-target`が`dist-adhoc`のときだけdevelopment用設定を適用する方法がないかと調べていたら、
+Alloy1.4から`dist-adhoc`と`dist-appstore`ビルドを区別することが可能になっていました。。! ([公式ドキュメント](http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_Controllers-section-34636384_AlloyControllers-ConditionalCode))
+
+ということで`config.json`に以下のように設定を追加しました。
+
+```json:config.json
+{
+ "dist:adhoc": {
+ "dist": "adhoc",
+ "SERVER_URL": "SERVER_URL_FOR_DEVELOPMENT"
+ }
+}
+```
+そうすると無事、
+`dist-adhoc`ビルドのときにdevelopment環境を適用することができました。
+
+---
+
+
+
+というわけで、以上のような手順でbitrise + deploygateによるリリース前のipaファイルの準備を自動化する事ができました!
+
+これによりTitaniumでのアプリ開発を加速させることができました!