iPhoneで、有料バージョンと無料バージョンみたいな複数のバージョンを作りたい場合、それぞれ用のバイナリを作らなければいけないわけですが、そんな場合は、XCodeでターゲットを2つ作って、それぞれに "OTHER_CFLAGS" を設定すればいいんですね。
http://www.codza.com/free-iphone-app-version-from-the-same-xcode-project
これでソースの冒頭に #define FREEVERSION とか宣言したのと同じ事になるので、あとはソース中に適宜
#ifdef FREEVERSION
...(フリー版特有の処理)
#endif
とか書けばよいです。
ここで注意なのが、ターゲット編集時、編集対象となる構成を「すべての構成」にして Debug/Build/その他(Ad-hoc用など) すべてについて変更しておかないと、Debug構成のときは無料バージョン設定になってくれるけど、Releaseにしたら急に有料バージョン設定になっちゃって「???」な事態になります。
あと、フラグの書き方は、
-D(フラグ名)
で、フラグ名が大文字だと
-DFREEVERSION
とかくっついた格好になるので -D を見落としやすいかもしれません。