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.
Related
I want to make my iPhone application visible in iTunes with the following requirement: "compatible with iPad".
I want it to be working in the "mini" version on iPad. All related topics just answer the question "what should I do to get a universal app?", not "what should I do to get the same app (mini on iPad) on both devices?". Do I have to do anything at all? Are the following settings ok:
Targeted device family: iPhone
iOS deployment Target: iOS 4.0
If i set the targeted device to iPhone/iPad, xcode (3.2.5) expands all elements in the view to fit the entire screen. I don't want that. I want to be sure it installs for iPad in mini for now, the dedicated iPad version will be ready later.
If you want your application to be in the same format (not scaled) you set the targeted device familiy to iPhone as you have done here. It is correct in other words. The iOS deployment target has nothing to do with how the app looks on the iPad. Just be sure to deploy with iOS target greater or equal to 3.2
I want to develope an app which only work on iphone,not ipad and not ipod.How I should indicate this case in info.plist or xcode project setting?
Under target device family in xcode project but you cannot avoid iPod devices.
If you require specific hardware features such as a camera or 3g, you can add the requirement to the info.plist for the app, however, the app will still run in devices such as the ipad (at iPhone 1x resolution) if the iPad has the appropriate hardware.
http://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/BuildTimeConfiguration/BuildTimeConfiguration.html#//apple_ref/doc/uid/TP40007072-CH7-SW10
The short answer is "you can't."
What you can do is specify specific bits of hardware that you need to operate, for example a camera or new enough 3G graphics capabilities. You use the UIRequiredDeviceCapabilities flag in the apps Info.plist. More in the documentation here.
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 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.
I have just uploaded my first app to iTunes Connect and noticed that my list of supported devices is appearing as follows...
Device Requirements: Compatible with iPhone, iPod touch, and iPad.
I've developed specifically for the iPhone and iPod Touch and have not yet done any testing on the iPad simulator. I therefore don't want the app submission testers to try running my app on an iPad and rejecting it because of some minor issue.
I've looked at setting the required device capabilities in my info.plist, but that doesn't appear to allow me to restrict at a device level.
Is this a by-product of building using the 3.1.3 SDK? Are apps built using this SDK automatically upscaled to work on the iPad?
You can't restrict the app to not work on the iPad. Backwards compatibility with all iPhone apps is a feature of the iPad. Your app will run in a 100% frame or in an optional 2x mode depending on user preference.
iPhone OS apps that link against the 2.x or 3.x framework and test clean on the iPhone and iPod touch should work w/o any trouble on the iPad.
If you tested on the iPod, taking into account the lack of cell radio, camera, etc., you should be totally fine.
I don't see a good reason to exclude iPad since iPhone apps will run in emulated mode in iPad after all. It's the same situation as a 3.x firmware running apps compiled from 2.x SDK.
To restrict at device level, you add the UIDeviceFamily key, but this doesn't support excluding iPad (just excluding iPhone).
The way to indicate that an application should only run on iPhone is to specify your application as an iPhone type application, rather than universal. Open your project (in XCode), click on the project name at the top of the Project Navigator sidebar, select the target, go to the summary tab, and change "Devices" to iPhone.
When you submit it, it will only be run in emulator mode on iPads, thus getting around any issues.