Building/Testing a Universal iPhone/iPad application

psychotik picture psychotik · May 19, 2010 · Viewed 10.2k times · Source

I have a project configured (I think) to produce Universal binaries. The base SDK is set to 3.2 and the Deployment Target is set to 3.1. Target Device Family is iPhone/iPad and the architecture is armv6 armv7.

I had a few questions about how this Universal binary thing really works:

1) When I want to submit an app binary for review, what configuration should I set as the build target? If I set it as "Device - 3.1" I get a warning which says "warning: building with Targeted Device Family" that includes iPad('1,2') requires building with the 3.2 or later SDK". However, if I build with SDK 3.2, will it still run on iPhones with OS 3.1? What's the right configuration for device and architecture (arm6/arm7)?

2) How do I test the scenario above (built with SDK 3.2, but installed on a device running OS 3.1)? If I build with SDK 3.2, when I try to install it on a phone with OS 3.1, I get an error saying that the phone's OS isn't updated.

Thanks!

Answer

hjd picture hjd · May 19, 2010

Our first Universal App just got approved and released in the App Store today, so here are the settings we successfully used:

Architectures
Architectures: Optimized (armv6 armv7)
Base SDK: iPhone Device 3.2
Build Active Architecture Only: unchecked
Valid Architectures: (empty)

Deployment
Targeted Device Family: iPhone/iPad
iPhone OS Deployment Target: iPhone OS 3.0
(you can set this to any iPhone 3.x OS but we wanted to target the oldest devices possible. This must be 3.0 or above, 2.x is not valid for a Universal App.)

Make sure that you'd also checked these settings for the Target itself (Project->Edit Active Target "AppName"); my initial problems when uploading to iTunes Connect were because the iPhone OS Deployment Target for the Target itself was still set to 2.2.1.