We have an XCode project that was first build as an universal app, and then on the road we changed our mind on having the two app in the same binary, so we created two targets.
It's been a few weeks now we are easily building for each of those platform and able to deploy on the both iPad and iPhone.
Now we are ready to submit to the app store and i'm worried about potential rejection of the code. We want to submit the iPad only app for now, but i've looked around there is nowhere in the itunesconnect site i can specify the targeted device, and as the project was structured first to be an universal app. I'm wondering how they determine on which device to test the binary.
More informations about the architecture: We are using the default generated info.plist file for both targets. Should we have a separate info.plist for each of the target? what differences should be present between the two .plist files.
Here is attached the actual info.plist file we are using.
Thanks for your help in advance.
Tap and hold on the app, then drag it to the left edge of the screen and drop it onto a Home Screen. Repeat this process as many times as you like to create as many duplicates as you need.
An project is a repository for all the files, resources, and information required to build one or more software products. A target specifies a product to build and contains the instructions for building the product from a set of files in a project or workspace.
An aggregated target is an Xcode target that lets you build a group of targets at once. It doesn't have any Products itself, like an app for an app target or a framework for framework targets. It doesn't have build rules either, but it can have a Run Script build phase or a Copy Files build phase only.
First of all, there's no reason why your base SDK for the ipad only target should be 3.2. In fact, since iOS 4.2 runs on ipad, you're going to limit your customer base by not changing the base SDK to 4.2. You can set your target OS to iOS 3.2 to make sure the app will run on iOS 3.2.
In your target configuration build settings, look for "targeted device family", that will say whether or not the target is "ipad", "iphone" or (for universal apps) "iphone/ipad".
I also migrated a universal app to two separate targets -- it was not fun. You have to very carefully check your build settings and your .plist files to make sure they're sane for their intended target device, especially check:Base SDK, iOS deployment target, targeted device family, and Info.plist file
Should we have a separate info.plist for each of the target?
What differences should be present between the two .plist files?
com.example.app
for iPhone/iPod and com.example.app-hd
for iPad)Apple uses your Info.plist to determine the target(s) in itunesconnect.
Looking at your screenshot I think you just need to make sure you do not specify the NSMainNibFile~ipad an UISupportedInterfaceOrientations~ipad in the iPhone target and visa versa for the iPad target (i.e. do not include iPhone specific entries). BTW, opening the Info.plist in Xcode provides much more descriptive names for the keys and also provides a dropdown for the allowed values.
Also be careful with UIRequiredDeviceCapabilities i.e. as a general rule only include a key in your plist if it's absolutely needed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With