11

I've developed a lite version of an app. Now I want to create a paid version. So I've duplicated the target, changed its name (so change plist and other stuff with that name) and now I have to differentiate in code. I'm using Xcode 4.2 and I see on the web that I have to create a preprocessor flag. My problem is that this flag in Xcode 4.2 is only in the project's build setting and not in the target's build setting.

I will need to be able to do something like this:

#ifdef paid
    ...
#else
    ...
#endif
Paul R
  • 208,748
  • 37
  • 389
  • 560
Jayyrus
  • 12,961
  • 41
  • 132
  • 214
  • possible duplicate of [XCode 4 - how to build a "lite" version](http://stackoverflow.com/questions/5605146/xcode-4-how-to-build-a-lite-version) – Paul R Jan 13 '12 at 09:31

1 Answers1

19

Use preprocessor macros to do this. Go to Target -> Build Setting and choose "All configurations" (this is very important). Next find field "Preprocessor Macros".

In this field, add the flag in ex. PAID_VERSION. Now you can use this flag in code:

#ifdef PAID_VERSION
    NSLog(@"Paid version");
#else
    NSLog(@"Lite version");
#endif
Tomasz Wojtkowiak
  • 4,910
  • 1
  • 28
  • 35