I have a little problem.. which I know there is a fix for, I just don't know what it is.
The problem is the following. A few weeks ago (2 or so) I had to remove 4 apps from the appstore due to a data problem on my server side. I decided to upgrade all the apps to the latest version at the same time giving them some new features. (I have 6 of the same apps out there, targeting different airports). The difference between these versions are the following:
Keeping track of these things are just a pain in the ass, so I want to have 1 project with 1 code base and just add the images and details (mentioned above) and new versions appear. When I "Archive", I want all of the apps to be build and ready to be send of to apple (which I will have to do manually).
How can I achieve this?
I have done this before using multiple targets and conditional compilation. You need one target per deliverable. You can configure the name, icons etc for each target in the usual way.
A set of 50-80 or so images that combine the map of each airport. The filenames are the same in each app. (How do I solve that?)
Keep the images in different directories and for each target only add the images for that app. This technique will also work for the contents of the about page if you can load that from a file.
I also use conditional compilation so that I can define different values for my constants for each app.
To do this add a setting to Other C Flags and Other C++ flags to identify your app. Something like:
-DAPP_VARIANT=1
In your code you can then use the following to implement any app specific behaviour:
- (id)init
{
#if APP_VARIANT == 1
self->server_url = [[NSURL URLWithString:@"http://app1.example.com"] retain];
#elif APP_VARIANT == 2
self->server_url = [[NSURL URLWithString:@"http://app2.example.com"] retain];
#endif
}