iPhoneで有料アプリの無料版を同じXcodeプロジェクトで作りたい時のTipsです。
普通にアプリを作る
「こんにちは有料アプリ」と表示するだけのアプリ「HelloApp」を作りました。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[windowmakeKeyAndVisible];
UILabel*messageView = [[UILabelalloc] initWithFrame:CGRectMake(10, 30, 300, 20)];
messageView.text= @"Hello Paid App";
[windowaddSubview:messageView];
returnYES;
}
[windowmakeKeyAndVisible];
UILabel*messageView = [[UILabelalloc] initWithFrame:CGRectMake(10, 30, 300, 20)];
messageView.text= @"Hello Paid App";
[windowaddSubview:messageView];
returnYES;
}
実行結果

無料版用のターゲットを作る
XCodeのターゲットから、オリジナルのターゲットを複製する。

複製したターゲット名を「HelloApp Lite」に変更して、ビルド設定を修正する。
GCC-プリプロセスの「プリコンパイルされたヘッダに使用しないプリプロセッサマクロ」に 「FREE_VERSION=1」を追加する。定義名は任意なので自分のわかりやすいように。

プロダクト名を「HelloApp Lite」にする。

Info.plistファイルを「HelloApp Lite-info.plist」にする。

プロジェクト内に作成されている「HelloApp-Info copy-info.plist」を併せて名称変更する。

ソースコード内で分岐する
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UILabel*messageView = [[UILabelalloc] initWithFrame:CGRectMake(10, 30, 300, 20)];
#ifdef FREE_VERSION
messageView.text= @"Hello Free App";
#else
messageView.text= @"Hello Paid App";
#endif
[windowaddSubview:messageView];
[windowmakeKeyAndVisible];
returnYES;
}
UILabel*messageView = [[UILabelalloc] initWithFrame:CGRectMake(10, 30, 300, 20)];
#ifdef FREE_VERSION
messageView.text= @"Hello Free App";
#else
messageView.text= @"Hello Paid App";
#endif
[windowaddSubview:messageView];
[windowmakeKeyAndVisible];
returnYES;
}
アクティブターゲットを「HelloApp Lite」にしてビルドすれば、無料版の出来上がり〜。

Posted in iPhone at 4月 14th, 2010. No Comments.