Make universal binary for IOS4 (iPhone 4) and 3G - iphone

How to make universal binary of one app, which can correctly run on 3G and support multitasking on iPhone 4?
Thanks!

The term "universal binary" here is a misnomer, since that is only for iPad/iPhone combined apps. If all you want to do is compile a build that works on both iPhone 4 and iPhone 3G, you need to download and install SDK 4, set 4.0 as the "Base SDK", and then set your "Deployment Target" to whatever minimum version of iOS you want to allow to run your app. Some people use a setting of 3.1.3, some people keep that setting at 4.0.

This is documented in the iPad Programming Guide under Starting Your Project.

Related

Steps required NOT to support iphone3g

I have created a universal app for iphone.
My questions is what are the steps necessary to NOT support iphone3g and non retina device. What are the settings in xCode and iTunes Connect that I need to adjust to pass review process?
The last iOS version that the iPhone 3G supported was 4.2.1. If you set your "iOS Deployment Target" to a value above 4.2.1 (Example: 5.0), this would make it so the app would not run on those devices. The iOS Deployment Target setting is located under the "Build Settings" tab.
Be aware that the iPhone 3GS is non-retina and would require a value higher than 6.1.3 to exclude it.
You can't. The iPad mini 1st gen is a non-retina device running iOS 7.x, so the development target won't help you.
If you would want to exclude the iPad mini as well, you could require a camera with flash via UIRequiredDeviceCapabilities, but that would:
a) exclude all iPad models with retina display as well
b) probably get your app rejected
So, while I share the wish to stop wasting development time and disk space for the sake of non-retina support, I'm afraid we're stuck with it for the time being.

First generation iPod for development

I just found an iPod first generation. Can this version (1.1.5) be used for development?
Can you make an iOS 4 software version restore?
iOS 4 cannot run on a first- (or second-) generation iPod or iPhone.
3.1.3 actually a good platform to test on if you want to support all Apple's devices. But I would recommend getting a new iPod/iPhone to test iOS 4.
You can easily install iPhone OS 3.1.3 onto it and use it for development. That's the maximum available version for this device.
You'll also need to set Deployment Target in your project settings in Xcode to 3.1.3 or lower.

Submitting iPhone app with 2x on Ipad

How should i submit my iPhone app so that it is also available for downloads on iPad but with 2x thing on it.
I need some configuration settings...
Architectures: Standard/Optimized?
Valid Architectures: armv6 armv7....?
Targeted Device Family: ?
iOS Deployment Target: ?
Please also mention any other settings i've missed here.
Thanks a Lot
Use iPhone/iPad for targeted device family, Standard (armv6/armv7) as architectures. Deployment target depends on the oldest iOS version you intend to support. I'd set it to 4.0 or 4.2 for new projects, but you could also use 3.2 (or even 3.0) if you're careful to use newer APIs only when they're available.
You don't need to do anything to do this, just submit the App as iPhone App and Apple will do the rest. Make you sure that in your build settings you have selected "iPhone" for "Target Device family".
If you have an iPhone app and you want it to be presented in the iPhone size when run on the iPad where the iPad presents the user with a 2x option to make the iPhone app take up the full size of the iPad screen then you need to set your "Targeted Device Family" to iPhone in Xcode 4.2 under your project - build settings screen. -rrh

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 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