I have a app on App Store supporting IOS4+ device. However, I really wanted to use some new API feature in ios5 and decided to bump my base SDK to IOS5.
My questions is, what is the setting needed on iTunesConnect? Does Apple allow me to do this? What will happen to those clients running my app on IOS4? Will they just stop receiving update notification from app store?
If Apple forbidden the change, what is the best option for me? I don't want to make another app which has the same interface/functionality but with only iOS5+ device support..
All you need to do is update your project by setting the Deployment Target to your new minimum version. In this case, set the Deployment Target to iOS 5.0 or 5.1. Build and test. When your app is approved, it will only be usable on devices with the version of iOS you selected, or later.
Existing users still on iOS 4 will still be able to use their existing app. But they can't install any further updates.
Related
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.
I have been searching for an answer for this for a while now and I can't seem to get a straight answer anywhere. I'm new to iOS development and am looking to get started porting my android app over to make my first iOS app. I'm not a big apple user, so I'm just running xcode in a VM and trying to build and test on my old ipod touch 3rd generation running iOS 5.1.1. I understand how out of date this is, but I want to develop and test on this device for 2 reasons:
I dont want to buy a $750 new apple product just to test my very simple app
When I publish my app, I want to reach the most users possible
So my question is this:
In xcode 8, is it possible to develop applications with a deployment target of iOS 5.1.1?
If so, will it build for all versions of iOS?
When I attach my ipod to xcode, it says device is not supported, can I fix this by installing some 5.1.1 developer package or sdk to allow support? Or would I have to build, then manually install and test each iteration?
If all of these are possible, and I build an app targeted to 5.1.1, can I publish it to the app store? If I open the app store on my 5.1.1 ipod, there are still apps in the store with recent update dates, so people must still be releasing updates to apps on iOS 5.1.1 right? Or am I missing something and an app that runs on iOS 5.1.1 is entirely banned by Apple.
A lot of questions, but If possible I really want to do this. Even getting a fully known, confirmed answer for ANY of these questions would be greatly appreciated.
Thanks
I dont want to buy a $750 new apple product just to test my very
simple app
Xcode has a simulator, you don't need a device to test your app.
When I publish my app, I want to reach the most users possible
As of July 31th 2017, https://developer.apple.com/support/app-store/
86% of devices are using iOS 10.
11% of devices are using iOS 9.
3% of devices are using earlier. (probably iOS 8)
It makes sense that you have this concern coming from Android, but iOS is quite different. Devices are designed to be uniform and apple encourages (almost forces) people to update them. (You won't stop receiving a notification to update your device)
It would actually be bad to focus on developing for that specific device you have, specially because a lot of the APIs will be deprecated, plus the screen ratio of that specific device is not so common.
In xcode 8, is it possible to develop applications with a deployment
target of iOS 5.1.1?
No*
If so, will it build for all versions of iOS?
Kind of, it will run but it won't probably be what you expect until you FIX it for that specific iOS version. (many things break between iOS updates so developers are sometimes forced to branch code)
When I attach my ipod to xcode, it says device is not supported, can I
fix this by installing some 5.1.1 developer package or sdk to allow
support? Or would I have to build, then manually install and test each
iteration?
Maybe, but probably not. You can actually copy files from older xcodes to enable testing in newer ones. You can search about how to do this by googling for "Using iOS 7 in Xcode 8". However I doubt going as far back as iOS 5 will be possible. The Xcode needed for running on iOS 5 is not even supported macOS Sierra (The newest OS)
If all of these are possible, and I build an app targeted to 5.1.1,
can I publish it to the app store? If I open the app store on my 5.1.1
ipod, there are still apps in the store with recent update dates, so
people must still be releasing updates to apps on iOS 5.1.1 right? Or
am I missing something and an app that runs on iOS 5.1.1 is entirely
banned by Apple.
Theoretically yes, iOS Apps can still "support" old iOS version, the reason why developers drop support for older os is because it gets increasingly hard to debug them as well as they just don't have support for new features and APIs that come with newer iOS.
My suggestion if you are really obsessed with building for iOS 5.1.1 is to ensure it's a 64 bit app:
https://developer.apple.com/library/content/documentation/General/Conceptual/CocoaTouch64BitGuide/ConvertingYourAppto64-Bit/ConvertingYourAppto64-Bit.html
And Download an old version of Xcode: (Maybe Xcode 7 or 6?)
https://developer.apple.com/download/more/
But I think you still have to Build with xcode 8 since you need to build against their latest SDK. The old Xcode is just to develop for it and facilitate debugging.
I've updated my app and due to some of the functions I'm releasing it has to be for iOS 10 and up. I understand that there is a way for users that have not upgraded to iOS 10 to be able to get the older version of my app but I haven't been able to figure out how to enable that in the app store. I just tested on a device and currently if you have iOS 9 it will tell you that you can't get the app because it is only supported on iOS 10. No option to download the previous version.
According to the redit article below Apple enabled the behavior I want. I just don't know how to turn it on for my app.
https://www.reddit.com/r/apple/comments/1mjw36/people_with_old_ios_devices_you_can_now_install/
So to update everyone: This only works if the app is already purchase. All new purchases will force to upgrade to the latest OS.
I think this feature just works if you already purchased the app and want to reinstall it.
A solution would be to purchase the app on your Mac and then try again on the iOS device.
Here is an article about it: https://sites.google.com/site/appleclubfhs/support/advice-and-articles/app-store-downloading-older-versions-of-apps-ios
I'm aware that if I build our app on Xcode 4.5, We won't be able to submit our app to the App Store not to mention we won't even be able to run the thing on the device with iOS3.x.
Not what I want to clarify is that, if we decided to still support iOS3.x do we just use Xcode 4.3 or any Xcode lower than 4.5 and voila I can submit it to the app store and Apple won't give a care and approve the app if it supports iOS3.x or not since it was built using a lower version of Xcode?
As long as you provided an iPhone 5 screenshot, you should be able to submit app that backward supports iOS 3.x .
But why do you want to support iOS 3.x ? Not many devices are using this iOS version .
I wish to update an app to support ios5 and up. CUrrently the app supports ios5 and below and i was wondering what the implications of setting the build to be ios5 and above would be to customers still using the ios4 app on ios4. Would app store refuse to download the ios5 and up app update and complain to the user to update their os to 5? what exactly would happen in this case?
The App Store would simply refuse to upgrade the app and tell the user to upgrade to iOS 5 (or 6).
That's the standard policy, so that if you have an old iOS you can still use your old apps.
As a side note, the cumulated market share of iOS 5 and up is more than 90%, so you won't have to worry about supporting old versions. Most iOS devs I know are moving on or already have.