views:

441

answers:

3

Is it possible? Because if I build against SDK 4.0, my app goes wacko, doing silly things and generally not working properly. If I build against 3.2 however, it works splendidly, but I get a warning saying:

[BWARN]warning: building with 'Targeted Device Family' set to iPhone only ('1') not supported with SDK 'Device - iPhone OS 3.2'.

My app was originally (and still is) a 2.2.1 app, but as I'm updating it, I need to compile it with the new Xcode for it to get approved.

Is there really no way to build an iPhone-only app against 3.x sdk? Not too happy investigating behavior like this, if it works so well with sdk 3.2. :(

+1  A: 

Building for 3.2 means building for iPad right now. You're getting an error because you're trying to build an iPhone app which has a config for "iPhone Only" set on an SDK version for the iPad.

Answer: Don't change the "Base SDK" config to 3.2 - leave it at 4.0. Change the "iPhone OS Deployment Target" back to 3.1.3.

Edit: I suppose this doesn't fix your "wacko" behavior on building for 4.0, but your only other choice is downgrading to the last version of xCode.

Nick
+4  A: 

All new and updated iPhone apps need to be built against the 4.0 SDK. iOS 3.2 is iPad-only.

From here:

Make sure that your applications are compatible with iOS 4. All new applications and updates to existing applications must be built with iPhone SDK 4. In addition, the App Store will no longer support applications that target iOS 2.x.

Not what you wanted to hear, I know. I wanted to submit a small patch to my app but had to update for iOS4 first too.

Stephen Darlington
A: 

I was wondering the same thing too since my app doesn't take advantage of any iOS 4 features. I see no reason why my app couldn't run against OS 3. Anyway, I compiled it against iOS 4 and submitted my update to the App Store.

Too bad all the OS 3 users that aren't going to upgrade to iOS 4 get left out in the cold as far as updates go.

RyeMAC3
Building your application for iOS 4 does not prevent it from running on earlier versions. This is what the Deployment Target build setting is for.
Chris Hanson