Error when making a distribution file with iPhone SDK 4.0 - iphone

When I try to upload the binary to iTunesConnect it says: "An application targeting the iPhone device family may not require a iPhone OS Deployment Target of 3.2, which is an iPad-only OS".
I am using iPhone SDK 4.0 but have the settings of the distribution target set to use iPhone Plattform 3.2
Any suggestions?

Yes. Stop attempting to upload apps created by a beta SDK, which is expressly forbidden.
When you have installed the correct release of the SDK, set the iPhone distribution target to one that is available on the iPhone - like 3.1.3. If you need 3.2 support for iPad, then you also need to set the base SDK to 3.2.

Related

Confusion regarding Simulator and Base SDK?

I want to know whether iPhone Simulator version (i.e. iPhone 5.0 Simulator, iPhone 6.0 Simulator, etc) and Base SDK are related to each other or not?
So, if I develop an App with Base SDK 6.0 and if I test it on iPhone 5 Simulator - does it mean that I am testing it on device with iOS 5.0?
Please let me know.
Base SDK
The Base SDK is the version of SDK that will be used when compiling your application – the compiler will use the headers and libraries of this specific SDK.
iPhone OS Deployment Target
To specify which OS version is the minimum that your application will support, you set the deployment target. Your application will then run on this minimum OS as well as all later versions.*
For more info check this:-
Link
The base SDK is an indicator of what APIs your compiler will allow you to use. Deployment Target determins the minimum OS version this app will be allowed to run on. If they differ you need to make sure in code that you only use functions/classes/methods/symbols that already existed on the older OS. or else the app will crash with exceptions like "unrecognized selector"
Your question is imprecise: there is no "iPhone 5 Simulator". There is a Simulator app that can behave like a 4" iPhone 5 on a variety of OS version levels. The Simulator set to iOS 5.x will behave like a device with this OS version would.
Nope. With a base SDK of 6.0 means that you are using a simulator with iOS6.0 like for example if you were to deploy an application with base SDK 6.0 on your mobile device with iOS 5.1 and below, you will not be able to run it

How to build an iOS4 app that will also run on the iPad?

I'm trying to build an iOS4 app (not universal) that will also run in compatibility mode on the iPad. So I set the Deployment Target to 3.2 and the Device Family to iPhone.
This works fine in adhoc builds, but when I try to upload it the the store, Application Loader complains: “This bundle is invalid. An application targeting the iPhone device family may not require a iOS Deployment Target 3.2, which is an iPad-only OS”.
What? Are my only choices to set the Deployment Target to 4.0 and not run at all on the iPad, or set it to 3.1.x and build/test the app for a platform I don't want to support, that Apple doesn't even ship an SDK for any more? Am I missing something?
Set the "Targeted Device Family" to iPhone/iPad
New firmwares support compatibility on older ones. For example: 3.1.x apps are compatible with 3.1, 3.0, 2.2, etc.
My guess is set it up as an iOS4 app. Also remember there are some functions on iPad that do not work on iPhone and viceversa. So your app could still crash.

iPhone Simulator 3.0

Is it possible to test my app in the iPhone Simulator w/ the 3.0 SDK. The only options that I currently have available are 3.2 (iPad) & 4.0 (iphone). I know I could buy a iPod Touch w/ 3.0 off eBay or something but I'd really like to avoid spending money if it's possible to get this working in the simulator.
http://developer.apple.com/iphone/library/documentation/xcode/conceptual/iphone_development/125-Using_iPhone_Simulator/iphone_simulator_application.html
Important: iOS 4.0 uses the same Objective-C runtime as Mac OS X v10.6. iOS 3.2 and earlier use the Mac OS X v10.5 Objective-C runtime. Because of this change, binaries generated with an iPhone SDK distribution earlier than 4.0 do not run in the simulator that’s part of the iPhone SDK 4.0 and later distributions. After moving from iPhone SDK 3.2 and earlier distributions to a 4.0 or later distribution, you must rebuild your iPhone Simulator binaries to run them in the simulator. If you use licensed static libraries in your application, you must obtain versions of them generated with an iPhone SDK 4.0 or later distribution. For more information about the Objective-C runtime, see Objective-C Runtime Reference.
One other option is to maintain an older copy of the SDK/Xcode on another Mac, and run the old SDK and Simulator there for regression testing. But testing on a older device is the only way to test that an app can actually perform reasonably on such older devices. Neither a new device nor the Simulator can do that.

Will iPhone base SDK allow what iphones can run the app?

I have been developing an iPhone app and now I am trying to build the binary.
I have noticed the base SDK is set to iPhone 4.0. Does this mean only iPhone 4.0 users can run the app?
I can change it to the lowest iPhone device 3.2, but how can I change the target so that I can test on the simulator in OS 3.2?
The Base SDK should be set to the latest iOS version you want to support. To also support older phones, set the “Deployment Target” build setting to the lowest iPhone OS version you want to support. Currently, I don’t believe you can set it to anything less than 3.0 and still get approved by Apple.
That's OS version, not hardware. You can adjust the deployment target and the base SDK to set up handling the differences between 3.x and 4.x APIs. A tutorial on how to do it is here:
http://iosdevelopertips.com/xcode/base-sdk-and-iphone-os-deployment-target-developing-apps-with-the-4-x-sdk-deploying-to-3-x-devices.html

iPhone Build SDK 4.0 With 3.2 Target Won't Install on iPad OS 3.2

I'm building an app for iPhone/iTouch that I also want to run on iPads (not a universal app, but one that just runs on on iPad with the 1x/2x button in the lower right hand corner).
I'm using iPhone SDK 4.0 and setting the following:
Base SDK: 4.0
iPhone OS Deployment Target: 3.2
When I do this, I can build an app just fine and run it on an iPhone/iTouch, but when I try to install it on my iPad I get the following error: The Info.plist for application specifies a minimum OS version of 4.0
In addition, if I package up the binary and submit it to Apple and it becomes available on the iTunes store, it shows that it's only available for iPhone (not the iPad). When I go to the App Store icon on my iPad, it doesn't even list the app as available (because Apple thinks it won't run on iPad, I assume).
Now I'm really confused, because I thought I understood the difference between the Base SDK and the Deployment Target, but Xcode is telling me I don't.
Can anyone help explain this to me?
As an aside but related question, if I build with Base SDK = "iPhone Device 3.2" it works fine on my iPad, but by doing so would I lose the Base SDK 4.0 built-in multi-tasking feature?
Check the 'Targeted Device Family' setting in your target's build settings. It needs to be set to iPhone/iPad if you want to be able to deploy to both devices.
This build setting automatically sets the UIDeviceFamily entry in the app's Info.plist (You shouldn't update this yourself, though—use the build setting instead.)
UIDeviceFamily