私はいくつかの異なるリリース可能なフレーバーで来ることができるiPadのアプリを持っています、そして、私はこれらの代替リリースを作る最も良い方法を決定しようとしています。ソースコードにはいくつかの違いがありますが、主にリソースデータファイル(xmlと非常に大量のバイナリファイル)が異なります。xcodeプロジェクトや#defineセクションを複製する必要がありますか?
1)プロジェクトを複製し、少数のソースファイルをブランチし、それぞれに適切なリソースを含めるべきですか?これは、プロジェクトにファイルを追加したり、共有ファイルを編集する以外の基本的なことを行うときに、メンテナンスの手間がかかるようです。
2)または、#defineを使用して、いつでも必要な適切なフレーバーを作成し、それに応じてファイル全体をifdefする必要がありますか?これは簡単ですが、リソースファイルを除外/インクルードする簡単な方法を見つけることができず、それが取引の中断者になるという疑いがあります。
オプション2のリソースの問題に対処する方法や、別の方法があれば良い方法があれば教えてください。
プロジェクトのリソースでもこれを実行できますか?私。私が自分のリソースにproj 1のために200のファイルを持ち、proj 2のために200のファイルを持っている場合は、どのファイルを対象の設定情報に含めるかを指定できますか?この設定が何であるか知っていますか? – Joey
各ターゲットには、含まれるファイル(ソース、リソース、ライブラリ)のリストがあります。ターゲットの「バンドルリソースのコピー」フェーズにファイルをドラッグすると、ターゲット内のファイルを制御できます。また、メインプロジェクトウィンドウのファイルリストのターゲット(ブルズアイアイコン)列のチェックボックスを使用して、現在のターゲットに含まれるファイルを表示/変更することもできます。 –
これは、別々のターゲットを構築するのに効果的です。私はユーザー定義のEXCLUDED_SOURCE_FILE_NAMES設定を使用しようとしていましたが、別のフォルダの名前の付いたファイルを除外して問題を引き起こしていましたが、あなたのアプローチでは何の不具合も解消されました。しかし、1つのターゲットを構築することは、他のターゲットを騙して、最新のものと思うように見えるという問題を抱えています。ビルドの場所の設定 "Per-configビルドの製品パス"と "per-config中間ビルドファイルのパス"を変更するだけでいいですか、それとも何か問題がありましたか? – Joey