2011-09-27 3 views
9

ビルドプロセスを自動化するための最良の方法を研究しています。私は自分自身のアイデアを持っています(これまでの非iOSプロジェクトの経験から)が、さまざまな可能性に対して良い議論が必要です。単一の白いラベルのxcodeプロジェクトから複数のビルドを自動化するベストプラクティス?

目的:単一のターゲット(ホワイトラベルと考える)を持つ単一のxcodeプロジェクトは、最小限のユーザー操作と最小限の技術知識で1..Nの異なるフレーバー(具体的なブランド)を構築する必要があります。 AdHocおよび/またはAppStoreの場合

基本的には、ビルドごとに指定することを意味します。 Icons + Splashscreenを含むフォルダ、ブランド固有のリソースを含むバンドル、Info.plist(おそらく?)、appname、bundle-idなどを指定する。

尊重したり明瞭にする必要がある問題。白痴プルーフGUI(などのアプリなど IAP対応、サーバー・ドメイン名を、設定し、特定のブランドを指定して、gitの ブランチ/タグを選択してください経由して、単一ブランドの

  • マニュアルビルドが - に書き込まれます info.plist)
  • 以前の手動テストでは、 の実行可能ファイル名を設定しても動作しませんでしたか?申し訳ありませんが、正確な問題を忘れてしまいました.. おそらくXcode Debug buildconfigの問題でしたが、 ディストリビューションビルドには関係ありません。
  • コード署名?!?プロファイルを オンザフライで指定することはできますか?一部のブランドは、お客様自身の プロファイルで作成する必要があります。

私の個人的な感想:HudsonまたはCruiseControl + Xcodeプラグイン。

Xcodeソリューションについては、多くのドキュメントがあるようですが、私が取り組んだFlexプロジェクトでは、ほぼ同じホワイトラベル/ブランディング要件が適用されています。もちろん、Antスクリプトを使用していましたが、尊重する動作設定はありませんでした。それはここの私の唯一の不確実性です...私はそれがどこかにハードコーディングされなければならないと思うが、それはいくつかの人々を喜ばせる答えではない。さまざまなapp-config設定(サーバのurl、Fooのサポートされた関数、表示されたXの表示などなど)をGUI形式で指定することができます。私は典型的なHudsonやCCの設定にそれをいかに簡単に入れることが簡単ではないでしょうか?

したがって、私たちのクライアントを構築するためのOSXアプリケーションを作成することをお勧めします。理論は、すべての必要なメタデータ&のアプリケーション設定と「ビルド」とラベルされた大きな光沢のある緑色のボタンを入力するための素晴らしいクリーンな非技術UIです。しかし、個人的には、このアプローチは従来のCIソリューションよりも柔軟性が高く、実装が簡単であると懐疑的です。

質問は基本的には何が望ましいのですか。クラシックなサーバーベース、バージョンコントロール統合、CIアプローチ、またはカスタムOSXユーティリティ?

私たちが行っていることは、どちらかといえば、2〜3日(必然的に1週間未満)で起動して実行する必要があることはほぼ間違いありません。

+1

私もこのようなものを探しています。あなたは解決策を見つけましたか? –

答えて

0

IMHOでは、XCodeのさまざまなターゲットを使用してすべての問題を解決できます。

すべてのターゲットがコードを共有しますが、それは可能性:

  • がdiferentと契約することは
  • 使用diferentのplistのプロファイル:これは別の名前を持つ..
  • 使用diferentのブランドイメージを意味します。同じ名前の画像に名前をつけ、ファイルインスペクタで正しいターゲットを選択するだけです。
  • Xcodeでワンクリックで構築できます。

私はこれが

0

極めて後で返信を役に立てば幸い、私はかかるだろうなアプローチがホワイトラベルIPA​​を作成すること、および、その後にスクリプトを作成します。それは解凍し 1.(変更。 .zipへのipaファイル拡張子)。 2.アセットを変更します。 info.plistを更新してください(Plistbuddyコマンドを使用) 再度郵送してください。 コードを終了します。 https://gist.github.com/catmac/1682965

+0

ホワイトレーベルプロジェクトを数個しか持たない場合は、毎回新しいターゲットを作成して他の場所で述べた方法をとることができます。しかし、これは大量のターゲットで扱いにくくなる可能性があります。 – Ronan

0

非常に遅く答え:

は、出発点として、このスクリプトを参照してください。しかし、私は別の .xcconfigファイルと複数のスキームで行くだろう。スキーム名は、 target/brandの組み合わせにすることができます。

関連する問題