ビルド プロセスを自動化する最善の方法を研究しています。(以前の iOS 以外のプロジェクトでの経験を通じて) 私は自分のアイデアを持っていますが、さまざまな可能性について賛否両論の適切な議論が必要です。
目的: 単一のターゲット (ホワイト ラベルと考えてください) を持つ単一の xcode プロジェクトは、最小限のユーザー操作と最小限の技術知識で、1..N の異なるフレーバー (具体的なブランディング) で構築する必要があります。AdHoc および/または AppStore 用。
基本的に、これはビルドごとに指定することを意味します。Icons + Splashscreen を含むフォルダー、ブランド固有のリソースを含むバンドル、および (おそらく?) appname、bundle-id などを指定する Info.plist。
尊重または明確化する必要がある問題。
- Idiot-Proof GUI を介した単一ブランドの手動ビルド (git ブランチ/タグの選択、特定のブランドの指定、IAP 対応、サーバー ドメイン名などのアプリの構成 - info.plist に書き込まれます)
- 以前の手動テストでは、plist で実行可能ファイル名を設定しても機能しませんでしたか? 申し訳ありませんが、正確な問題を忘れてしまいました..おそらく、配布ビルドには関係なく、Xcode Debug buildconfig の問題でしたか?
- コード署名?!? プロファイルはオンザフライで指定できますか? 一部のブランドは、顧客自身のプロファイルを使用して構築する必要があります。
私の個人的な感覚: Hudson または CruiseControl + Xcode プラグイン。
Xcode ソリューションに関するドキュメントはたくさんあるようで、私が取り組んだ Flex プロジェクトでこれが動作しているのを見たことがあります。もちろん、それは Ant スクリプトを使用していましたが、尊重する動作構成はありませんでした。それが私の唯一の不確実性です...どこかにハードコーディングする必要があると思いますが、それは一部の人々を喜ばせる答えではありません. 手動でビルドするときに、GUI フォームを介してさまざまな app-config 設定 (サーバー URL、機能 Foo がサポートされているか、ビュー X が表示されているかなど) を指定できるようにしたいという要望があります。それを典型的なハドソンやCCの設定に押し込むのがどれほど簡単かわかりませんか?
したがって、クライアントを構築するための OSX アプリを作成するという提案が 1 つあります。理論的には、必要なすべてのメタデータとアプリ設定を入力するためのクリーンで非技術的な UI と、「ビルド」というラベルの付いた大きな光沢のある緑色のボタンです。しかし、個人的には、このアプローチが従来の CI ソリューションよりも柔軟で実装しやすいかどうかについては懐疑的です。
したがって、問題は基本的に、何が好ましいかということです。従来のサーバーベース、統合されたバージョン管理、CI アプローチ、またはカスタム OSX ユーティリティ?
いずれにしても、ほぼ確実に 2 ~ 3 日 (間違いなく 1 週間以内) で稼働させる必要があります。