無料版と有料版を一つのXcodeプロジェクトで作る
参考:http://www.func09.com/wordpress/archives/859
この記事のXcode 4.6.2対応版です。一つのプロジェクトから複数種類のバイナリを作成します。
- TARGETSを追加する
- プリプロセッサを追加する
- ファイル名などを修正する
TARGETSを追加する
プロジェクトを選択肢、TARGETのコンテキストメニューからDuplicateを選びます。iPad向けにするのかそのままにするのか聞かれますが、有料・無料の作り分けなのでここはそのままで。ついでにTARGETの名前も〜COPYから変更しておきましょう。
プリプロセッサを追加する
TARGETを選択し、Build Settingを開きましょう。下の方にAPPLE LVVM compiler 4.2 - Preprocessingがありますので、Preprocesser Macros Not Used In Precompiled Headersに有料/無料を切り替えるマクロを設定します。
ここではFREE_VERSIONが0か1かで切り替えるようにしています。
ファイル名などを修正する
同じくBuild Settingからinfo.plistのファイル名(Info.plist Name)とプロダクト名(Product Name)を編集します。プロダクト名を編集することでBundle Identifierに反映されます。
次にProjectNavigatorからinfo.plistのファイル名をBuild Settingで設定したものに直します。
あとはコードで分岐するだけです。
#if FREE_VERSION == 1 _label.text= @"Hello Free App"; #else _label.text= @"Hello Paid App"; #endif
動作させるときはsimulator/実機を選択する箇所で、どちらのターゲットを対象にするか選択します。Manage Schemesで名前を揃えておくと気持ちよいですね。