Using Xcode (to develop on iOS) I want to create a second project that it is the same as a first project but some classes are differents.
Exactly, I\'m creating an I
You just have to create two targets. So you'll only modify a single code base, perfect!
This tutorial will walk you through (and even uses lite/paid versions as it's example).
I want to offer a free version and a premium version.
In this case, you do not need to create two apps in two projects: all you need is a second target for your premium version. Here is a link that explains how to create and manage multiple targets in Xcode.
The process boils down to adding a target to the project, defining a separate properties plist for it, optionally setting up a preprocessor symbol for conditional compile, and using that symbol to #ifdef
portions of your classes not needed in the free version.
Another common approach to managing free vs. premium offering is to provide a single version for free, and let users upgrade it to premium through an in-app purchase.
duplicate target of paid version and name it free version
define macro name PaidApp=1
in paid target, then put this line of code in starting of applicationDidfinishLaunching.
#ifdef PaidApp
[[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"adDisabled"];
#endif
when free app running target, if someone purchase paid app feature then set value of @"adDisabled" to 1 (by default value of @"adDisabled" will be 0)