info.plist settings for iPad only app - ios

I want to submit an iPad only app through iTunes. I have already made the following configuration changes.
Under Summary, I have set the Active Target Device : iPad
Under Build Settings, Valid Architectures is set to armv7
Although, this will ensure that the build doesn't run on non iPad devices, I want to also ensure that in App Store results, users do not see this app listed under iPhone Apps.
When reading the iOS developer portal documentation, Apple mentions that you must include the key UIRequiredDeviceCapabilities to indicate which devices this app is allowed to run on.
Is UIRequiredDeviceCapabilities the correct approach to ensure that my app only appears in iPad results?
What should its value be set to? armv7?

If you set the Active Target Device : iPad iPhone user will not see the app in the App Store on the device.
Since iPhone/iPod Touch cant run iPad app where as an iPad can run iPhone apps your app will not show up in the App Store on the device.

Related

Is there a way to not support my app from iPad or selected iPhone versions?

I had submitted my app as Universal a long time ago and now I need to remove it from the iPad section and few iPhone versions such as 4,5,5S. Is there a way I can achieve this or do I need to show custom not supported screen to user when they install on such devices. Will apple reject my app for this reason?
For restricting your app to only iPhones devices after the app was already published on App Store you should reupload new version of your app to App Store by simply just changing target devices to iPhone only(with different Bundle Identifier of course).
About restricting your app to stop supporting older devices(4,5,5S) you should change your iOS version compatibility. For example iOS 13 is supported on iPhone 6s and newer devices so user won't be able to use it on older devices. Apple should handle this on their own.
There are some alternatives to restrict your app to specific devices with Required device capabilities key which you can find in your Info.plist file. But I don't think apple will accept this, if this features are not actually used in your app.
Here is the documentation about UIRequiredDeviceCapabilities in case you need it.
You can only restrict user from downloading newer versions of your app from App Store ,By changing your apps deployment info in Xcode general tab.
By changing device type from Universal to iPhone only and Deployment target to iOS 13 which in supported by device above 6s. Then user will not be able to download on older versions.
Or you can restrict user access in your app by putting device specific checks and showing your custom ui for unsupported versions. But for this apple may reject your app if it fails in every case for specific device.
But both type of changes you have to upload newer version of app on App Store.

Using UIRequiredDeviceCapabilities in Info.plist to limit compatible devices

If I only want my application to run on certain iPhone/iPad models, is it appropriate to specify for instance that my app needs ARKit to achieve this even if my app does not actually use anything from ARKit?
Is there another way to go about this? Also, even after making this change, my app still builds for devices it shouldn’t like the iPhone 5s simulator. Is the device restriction a change that occurs only on the app store?
UIRequiredDeviceCapabilities lets you declare the hardware or specific capabilities that your app needs in order to run.
UIRequiredDeviceCapabilities can be used as a dictionary in Info.plist with a capability as key and its value as YES/NO.
It does not seem to have any impact on simulators but when run on a device it although compiles but shows a prompt and does not run:
It looks like you can use a capability to restrict the device even if you are not actually using that capability in code anywhere.
Apple has mentioned here that AppStore uses this key to prevent users from installing the app.
Also, we can not use this key to restrict any device in a update. It looks like any intended restriction needs to be included in the first app version:
Important: All device requirement changes must be made when you submit
an update to your binary. You are permitted only to expand your device
requirements. Submitting an update to your binary to restrict your
device requirements is not permitted. You are unable to restrict
device requirements because this action will keep customers who have
previously downloaded your app from running new updates.
EDIT:
The device capability restriction seems to work even if that particular capability is not available fo the iOS version. To test this, I have set the deployment target as iOS 9.3 and tested on a iPhone 6 device with iOS 10.3.3 version. It still showed me the popup. Here, arkit and nfc are available for iOS 11 onwards.
References:
https://developer.apple.com/library/content/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/DeviceCompatibilityMatrix/DeviceCompatibilityMatrix.html
https://developer.apple.com/library/content/qa/qa1397/_index.html

iOS App change universal to iPhone only

We have a app that was submitted as a universal app with support for all devices iPad and iPhone but we no longer want it to show in the store as a iPad app we want it to just be a iPhone only app.
This app was built with Appcelerator so i have changed the app tiapp.xml details to only support iPhone no longer universal, but it will not submitted to the store.
I can't upload the existing app because the family group in the bundle Id. it won't accept removing the iPad.
How can we remove the app from being listed as a iPad app really important as the app was not built with iPad in mind it would be fine if it was just a scaled up version of the app.
Any help please?
Developers who wish to issue updates, but remove device support, have
three choices:
Fix their app so that it can work on the devices they originally set
out to support. Target a newer version of iOS that requires a newer
device. Remove their app from the store, and upload the new app with a
different bundle ID.

iTunes Connect requiring 3.5-inch Screenshots for arm64 only App

I am trying to submit an App that only supports arm64, which was developed in Xcode 7. However, having uploaded the binary to iTunes Connect, it shows the following error message when I try to Submit:
You must upload screenshots for 3.5-inch and 4-inch Retina displays., Your binary indicates support for iPhone/iPod touch. You must provide an iPhone/iPod touch screenshot.
I changed the Requirements in the Info.plist files, as well as the Architectures and Valid Architectures. Is there something I am missing? I only want to support 4+ inch displays and I believe you cannot have armv7s without armv7, so I only stipulated arm64.
Update:
In the end I just created separate Storyboard for the iPhone 4s and selected it in the View Controller programmatically.
If you support iPhone you are going to have to support the 4 inch retina display. Since iOS 9 is available for the iPhone 4s you need to support it. I had the same problem: Is there a way to limit iPhone App to only certain models?
Without knowing more about your application, There's a number of reasons you might be recieiving that message.
Your app shows that it's supporting iPhone/iPod touch somewhere (plist, target build, etc.)
You have restricted the device requirements:
Important: All device requirement changes must be made when you submit
an update to your binary. You are permitted only to expand your device
requirements. Submitting an update to your binary to restrict your
device requirements is not permitted. You are unable to restrict
device requirements because this action will keep customers who have
previously downloaded your app from running new updates.
https://developer.apple.com/library/ios/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/DeviceCompatibilityMatrix/DeviceCompatibilityMatrix.html
An additional reason this might be required, as I just discovered: When viewing an app on the App Store on a 4-inch device, it actually uses the 3.5-inch screenshots in the listing. Even when I called Apple's developer support, they didn't seem to understand this, then were surprised when they discovered it was true.

How to unsupport iPad properly in iTunes

We have an app on AppStore for almost 3 years, and we've set Deployment Device Info of this app as "iPhone" (not "Universal").
Earlier it seems iPad users could download our app and used it by enlarging the screen.
Now our uses reported they cannot download our app. (The guy who reported uses iPad Air + iOS7.1.1)
So, my first question is..
Is this new AppStore regulation that does't allow iPad users to download apps with "iPhone" set as deployment device target ?
We are fine if it's the regulation, but more confusing is when seeing the app in AppStore with Mac, we still see our app is compatible with iPads.
So my second question is..
From what info AppStore shows this compatibility information ?
Our aim is not to confuse users, so we want to go either way - tell users we are completely unsupporting iPads, or tell them you can download the app anyway.
That device list suggests that you require cellular access. Does the user in question have a wifi only iPad? The dialogue would be shown if the app required capabilities that the device did not have.
There is no change to the App Store policy - iPad users can still download iPhone apps, and it's pretty clear in the store that you're not getting an iPad-native version.
To answer your second question, the information shown in the App Store comes from what is set in your info plist- the minimum targeted version of iOS, and then device capabilities. Device capabilities are explained here.

Resources