2014年7月6日日曜日

iOS開発向けのコマンドラインツール、Nomadが便利そう。

ナゾの背中痛で薄ら死にそうになってるんですが、久々のブログ更新です。

アプリ開発の方が色々と入り組んで来たので、色々省力化の手順を模索していました。

こんな本読んでみたりとか、(ちなみに結構いい本。オススメ)webで情報漁ってみたりとか、まだまだ色々模索中です。

そんな中で、やりたい事、必要そうな事が朧げに見えて来ました。
何をしたいかっていうと、
・似た様なアプリを複数リリースする為に、Assets(素材)やクラスをターゲット毎に切り替えたい。
=> ビルドターゲットの切り替えで、1つのプロジェクト内でバージョンの少しずつ異なるモノを別々に管理出来る。
=> 共通コードはそのままなので、アップデート時の事故が減る。
=>  それでも不安なので、テストを書く。
=>  ターゲットが増えると、手動でビルドしまくるのは非常に面倒だし時間も掛かる。
=>  CIツール導入検討、もしくはビルド用のシェルスクリプトを書く。

と言う訳で、CIツールを導入検討すると、オンラインで出来るCIサーバとか結構あるんですよね。しかも無償でBitbucket連携とか。
でもでも、それはwebに限った話。そもそもMacでないとiOSのCIサーバ立てられません。コンパイル出来ないからね。なんで、オンラインは無理。
そろそろ、開発用のPCもガタが来てるので、Mac miniを予備機で購入してCIサーバにあてようかと検討していたんですが、そこはちょっと保留。設定に時間取られるのがシンドイ状況なので、とりあえずもう少し時間が出来てから。
じゃあとりあえずビルド用のスクリプト書きますか、という流れです。

実はXcodeはコマンドラインツールは完備していて、シェルスクリプトでビルドからリリースまで一環して行う事が出来ます。ここにテストの工程を挟めば立派なCIの流れが実現可能です。
まずは、テストはXcode上で行って(そもそもまだ一部しか書いてない。)配布、リリース用は個別にスクリプトを書く事にしました。
つーても、コレが結構面倒です。何か楽にする方法無いのかなーと思ってたらありましたよ。こんなのが。

http://nomad-cli.com/

一言でいうと、普通に考えられるiOS開発用のコマンドライン操作を使いやすくまとめたツール郡です。機能別に都市名が付いてて、Cupertinoはアカウント管理関係。Dev Centerの操作とかが可能。HustonはPush通信のトークン周り。(コレ地味に有り難い。)
DubaiはPassBook発行関連。VenisはIn-App-Percheceの管理周辺。Shinzhenはアプリ配布やリリース関連と、イイカンジで揃ってます。
特に、Shinzhenはビルド完了時にTestFlightで配布とかを自動化出来たりします。
ただ現状やりたい事に完全にマッチするかといわれると問題があって、簡易な使い方を目指してるのでビルドターゲットの指定が出来ないです。
なので、ここはちゃんとXcodebuildでビルドスクリプト書くしか無いっぽい。残念。

とはいえ、結構使えそうなツール郡なので、活用してみますよー。

例えば:
Automator君でフォルダアクションを作成して、連携して走るshにコレ書いとけば、フォルダにipaファイル放り込めばテストフライトにアップロードとか簡単に出来る予感。


そんなお話でした。


0 件のコメント:

コメントを投稿