2011-01-12 6 views

答えて

25

複数のターゲットを作成します。

ターゲットを右クリックして[情報を見る]を選択すると、ビルド構成を変更できます。そこから、Info.plistファイルを見て(名前に「Lite」を追加してアイコン/ロードイメージを変更するなど)、コンパイラフラグを設定して、#ifdefできるような変更を行うことができます。

完全版にのみ適用できるファイルが多数ある場合は、それらを右クリックしてLiteターゲットから削除して、小さなアプリを作成することができます。

私は複数の構成など、さまざまな選択肢を試してきましたが、私は複数のターゲットに戻っていきます。私は通常、開発、アドホック、App Storeの3つを定義しており、それぞれ独自の設定があります。

+0

ジム - 新しいターゲットを作成するときは、すべてのファイルまたは共通ではないファイルだけをコピーする必要がありますか?たとえば、私は少し異なるスクリーンファイル(.xib)を持っています...私は基本的にボタンを無効にし、ラベルにテキストを追加したいと考えています。だから私は新しいターゲットを作成するとき、元の(.xib)をコピーして、新しいターゲットのそれを変更する必要がありますか? – milesmeow

+0

変更がマイナーなものであれば、各ターゲットのビルド設定でプリプロセッサマクロを提供し、 '#ifdef'を使ってコードを変更します。 – Jim

+0

さらに大きな違いがある場合は、ターゲットごとにディレクトリを作成し、各フォルダにペン先のコピーを入れて、それぞれのターゲットに対して有効にします。アプリケーションバンドルが作成されると、Xcodeは元のフォルダ構造(デフォルト)を無視し、そのターゲットのファイルをフラットなディレクトリ構造にコピーします。 2つのファイルのうちの1つだけをコピーするので、正しいペンで終了します。 – Jim

15

Xcodeプロジェクトに既存のものを複製して追加のターゲットを追加します。

#ifdef macroIsFreeVersion 
    // code that will only execute in the free version here 
#endif 

と、この:

#ifndef macroIsFreeVersion 
    // code for only the paid version goes here 
#endif 

今、あなたがこれを行うことができ、(ビルド設定で "プリプロセッサマクロ" の下)、新たな目標に

を "macroIsFreeVersion" のようなものをマクロを定義しますバンドルID、プロビジョニング・プロファイルなどを変更する必要があります。有料版を店舗に置いたこともあります。

+0

こんにちはウィリアム:私はXCode4にいます(これは私がこのマルチターゲット設定を行い、コンパイラフラグを使って作業しようとしている最初です)。私は "Apple LLVM compiler 2.0 - Preprocessing" - > "Preprocessor Macros"を持っています。その下で私はデバッグ、リリース、MyProjectを持っています。あなたの例に従うために、私はこれらの3つのフィールドに "macroIsFreeVersion"を入れます。 – milesmeow

+0

はい、私は最近、情報辞書を使ってもできることを知っていますが、メソッドは[[NSBundle mainBundle] infoDictionary]です。設定によっては、これが優れた解決策である場合とそうでない場合があります。 –

関連する問題