How can I specify device in itunesconnect? - ios

I have submitted an app in the app store only for iPhone 6 and above but there are all devices listed when I search on app store. From where I can set app compatibility.

This will depend on the iOS version given as minimum deployment target in the Xcode.
You have given the minimum supported version as iOS 8 and later. So it will be compatible with all devices that support iOS 8. So that was listed in the app store page.

You can not specify devices in App Store. It's availability depends upon the iOS version you provide support for. All the devices will be compatible which will have equal or greater OS version which you will define in your Deployment Target. You can restrict your app for iPhone or iPad . For this you need to change Device from your target setting.
You can see your settings in following screenshot.

Related

Xcode 11.3.1 compatibility

I am building an IOS app on XCode 11.3.1 using Swift and would like to know which Iphone models will be compatible with the app. The simulator shows Iphone 8 and above. Does it mean that lower Iphones will not be able to run it?
I can't find a good explanation or a link.
The Xcode version is not the key to supporting older iPhones and their OSes.
Instead, look out for your deployment target. The lower you choose, the more ‘old’ iPhones you get. For example, if you choose iOS 8 as your deployment target, your app will support older devices that can use iOS 8 but not 13.
The simulator only shows a list of devices that supports the newest iOS version supported by the current version of Xcode, but may not necessarily mean that it is limited to those.
Do note that newer APIs be used for the older devices, though you could still make it such that it will work for newer devices, with a fallback to some older APIs just for the older devices.

Is there a restriction on how low one can set the deployment target when submitting to the app store?

I have about a 200+ iPads (1st generation), that my company uses. They work fine (like new).
The latest version of Xcode only lets you set a deployment target of 8.0.
I can download an older version of Xcode that lets me set a deployment target of 5.0 (for 1st generation iPad).
If I set the deployment target to 5.0, and submit via an older version of Xcode, will I have a problem submitting to the app store ? Is there any restriction on how low one can set the deployment target when submitting ?
The current App Distribution Guide says "For example, the lowest available setting for iPad apps is iOS 4.3." ( Setting the Deployment Target ) but my Xcode 7.1.1 doesn't seem to allow any deployment target for an iPhone project to be lower than iOS 6.0. So YMMV I guess. Basically the minimum is whatever the minimum supported Xcode version (Is Xcode 5 still allowed or does the store now require Xcode 6? I don't know) allows in the popup for the project deployment target.
One other factor - if you use Swift that limits you to iOS 7.0 and later.
Please check guideline below:
https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringYourApp/ConfiguringYourApp.html#//apple_ref/doc/uid/TP40012582-CH28-SW21

I set the deployment target to iOS8 and App store says "Compatibility: Requires iOS 7.0 or later". Can I force app to install only in iOS8 only?

I released an iOS 8 version of my app today and wanted to limit it only to users running iOS 8 (because it uses some new Core Motion APIs that only work with iOS 8). It seems like iOS7 users are still able to download my app, even though the deployment target is iOS8 and the App Store says "Compatibility: Requires iOS 7.0 or later". Can I force app to run in iOS8 only? Does the Deployment Target option in Xcode still control which version of the OS is required on the App Store?
The answer is, you have to set the Deployment Target in three different places, in the project, in the app target, and (in my case) in the extension. If you don't set it in all three locations the app won't show as iOS 8 only.
Deployment target on all your TARGETS is the correct option. It's important to understand the different between "Deployment target" and "Base SDK". Both regard a iOS SDK version, but they have different meanings. To learn what read here.

How do I set the versions of iOS supported in my app?

My app is in the app store, and I realized that it won't work on iOS5 and lower devices due to the usage of AutoLayout. Is there a way I can restrict the download to work only for iOS6+ devices in iTunesConnect? Or do I have to resubmit the binary?
You have to set the Deployment Target parameter in the target settings of your project. Here's an example that sets it to >=5.0

My app is no long suport ipad, when I upload my app it cause Xcode or iTunes Connect to erroneously reject my update

My app is started up in xcode 3.2. Now I have updated the xcode to 4.5. And I don't want to suport ipad. So I set the Devices setting to iphone. Then update my app.But itunes connect reject my update with error message:
This bundle does not support one or more of the devices supported by the previous app version. Your app update must continue to support all devices previously supported. You declare supported devices in Xcode with the Targeted Device Family build setting. Refer to QA1623 for additional information:https://developer.apple.com/library/ios/#qa/qa1623/_index.html
how can i solve this problem without removing my app from apple store
Your app update must continue to support all devices previously supported.
Says it all really. You're not allowed to declare support for a device, then withdraw it. The only exception is when you move up the lowest supported iOS version, you can drop older devices that no longer support that version of iOS.
The document you linked to contains your three possible options.
My problem was that by some reason i had the same bundle id across different targets (iphone target and ipad target)
this lead me to try of uploading ipad app with iphone bundle id.
Easy to miss so maybe it will help one

Resources