views:

55

answers:

2

I've been working on an app that I've successfully built for iTouch, iPhone 3G, iPhone 3GS, iPhone 4, running iOS 3.0+. It worked fine when I plugged it in to Xcode and built from there. However, after submission to the app store, it only builds on iOS 4.0. Are there any obvious reasons why? My build settings were: Active Architecture: armv7 Architectures: Standard (armv6 armv7) Base SDK iPhone device 4.0 Build Active Architectures only (Unchecked) Valid architectures: armv6 armv7 iPhone OS Deployment Target: iPhone OS 3.0

EDIT

Here's some information that might help. I'm using Three 20 API in my project. If I'm building on a 1st Gen iPod Touch with iOS 3.1.3, I have to set the active architectures to armv6 and check the build active architecture only box. It won't build under armv7. Could this be the problem?

A: 

Change the Base SDK field in your active target build settings to iPhone Device 3.2, because 4.0 indicates that it will build only on the iPhone 4.

For iPhone OS Deployment Target, select 3.0, but make sure you're not using any 3.2-specific things.

Arseniy Banayev
iPhone Device 3.2 is iPad...
Alvin Heng
That doesn't matter, you can set Base SDK as iPhone Device 3.2 if you don't use any 3.2-specific API's. EDIT: Here's a solved question whose answer is exactly what I wrote: http://stackoverflow.com/questions/2797780/get-iphone-3-0-for-the-base-sdk-in-xcode
Arseniy Banayev
+1  A: 

You need to set your iPhone OS Deployment Target, but also see here: http://0xced.blogspot.com/2010/07/using-sdk-313-with-iphone-sdk-4.html

There you'll find some instructions for generating warnings if your code uses >=3.2 features.

mclin