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;
}

実行結果

無料版用のターゲットを作る

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;
}

アクティブターゲットを「HelloApp Lite」にしてビルドすれば、無料版の出来上がり〜。

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