2013-09-05 13 views
7

私は白いラベルを付けたいプロジェクトを持っています。基本的にアイコン、起動イメージ、info.plistのみを変更する必要があります。問題は、プロジェクトが大きすぎて、実際に追加のターゲットとリソースを追加したくないということです。iOSアプリケーションに白いラベルを付ける

私が見る解決策は、別のプロジェクトを作成し、最初のプロジェクトを依存プロジェクトとして追加することです。この白いラベリングプロジェクトにはコードはありませんが、さまざまなイメージとinfo.plistsを持つたくさんのターゲットがあります。この場合、私はホワイトラベルのアプリケーションを作成するたびに、私はちょうど独自のイメージセットを持つ別のターゲットを作成します。そして、私が別のリリースをしたいときは、簡単にそれらのターゲットをすべて構築し、同じアプリに対してさまざまなバリエーションを得ることができます。簡単に聞こえます。

問題は実装中です。私は依存関係としてプロジェクトをリンクしました。それで私も目標と同じでした。しかし、私がアプリをビルドするたびに、info.plistとは異なるにもかかわらず、元の名前の実行可能ファイルが作成されます。おそらく、元のターゲットには独自のinfo.plistがあるからです。別の方法は、元のターゲットから別のものにリソースを置き換える方法です。

私は私の仕事でこれを行なったし、どのように私はそれをしなかった私が、私はそれがに行くと私は保存置換値のリストをInfo.plistファイルを操作書いたPythonスクリプトを持っている任意のヘルプ

+0

は、ターゲットはあなたが望むものを達成するための最良の方法である、あなたはこのソリューションを再考する必要があります。 – Cyril

+0

ええ、それについてもっと考えてみると、もっと簡単な解決策になると分かります。 – Ezeki

答えて

2

に感謝代替のplistファイル。また、特定のビルドに必要なリソースを注入して注入するビルドステップスクリプトも用意されています。

あなたが望むすべてのバンドルを操作できますが、Xcodeがアプリに署名する直前にそれを行う必要があります。場合によっては、バンドル内のInfo.plistを編集して編集したい場合もあります。これは、署名ステップの前に行います。

+0

ありがとう、本当に面白いですね!そのスクリプトのサンプルを共有しますか? – Ezeki

+0

私はそれを行うことができません、それはあなたが必要とするものより少し複雑です。あなたが指導を必要とする特定の部分がありますか? – dtrotzjr

15

現在、ホワイトラベルのiOSアプリを管理しています。各ホワイトラベルクライアントのターゲットをメインプロジェクトに追加し、Theme.plistファイルを使用してアプリのほとんどの部分を設定可能にしました。

各ターゲットには、アプリのすべてのクラスが含まれていますが、カスタムInfo.plist、アイコン、起動画面、フォントファイル、およびTheme.plistがあります。

Info.plistファイルの外にいくつかの変更が必要なため、前述の@dtrzzrというアプローチは避けました。プロビジョニングプロファイルは、時折の処理に適したプリプロセッサマクロクライアントごとのハック用の#ifdef

また、新しい開発者がビルドプロセスを理解しやすくなりました。

+0

これはより柔軟で、帯域外のPythonを必要としないので、これは受け入れられた答えであるべきだと思います。 –

関連する問題