I saw that iOS 11.1 has been officially rolled out but I still see "deployment target" in Xcode to support up to iOS 11.
Does that mean that if I update it to iOS 11.1 I won't be able to test my apps on it? Is that what It means or I interpret it wrong?
So some quick information on deployment targets:
Lets say you have set minimum deployment target to iOS 9. This means your application is compatible for iOS 9 and above devices.
The application won't run on below 9.0 devices but can run on any iOS version greater than iOS 9.0. Article here
I tested this and it DID NOT work unfortunately. I was running the latest Xcode and just updated my phone. You should wait until Xcode officially supports iOS 11.1+ before upgrading.
Related
I have an iPhone 7 (on iOS 10.3.3) and I don't want to update it to iOS 11 but my Xcode version is 9.2 (9C40b). Can I run apps on my iPhone from xcode or do I have to install iOS 11.
No, you do not need to update iOS on your iPhone to use it with Xcode 9.2 (or anything newer).
You just need to ensure that your iOS app has a Deployment Target of iOS 10.3 or earlier so you can run the app on your iPhone.
The Deployment Target defines the earlier version of iOS you wish to support.
Keep this in mind: within certain limits, you can use newer Tools to work with older devices but you can't use older tools with newer devices.
I currently have XCode version 8.2.1.
On my iPhone, I currently have iOS 10.3.2.
My version of XCode will not deploy to anything over iOS 10.2.
On my iPhone, I am being offered an upgrade to iOS 11.0.3.
According to this wiki here, XCode version 9 will deploy to iOS 11.0: https://en.wikipedia.org/wiki/Xcode#9.x_series. But I can't tell whether this includes all the sub-versions, eg 11.0.3.
So my question is, if I get XCode version 9 and upgrade my phone to iOS 11.0.3, will I be able to deploy to my phone from XCode? How do I tell exactly which versions of iOS are supported by each version of XCode? And going forward, how can I ensure that my iPhone and iPad always have versions of iOS which I am able to deploy to from XCode?
Yes, you will be able to deploy to your phone.
While you need Xcode 9 and not 8 to program against iOS11, this question has more to do with the Base SDK and Deployment Target settings in your project.
The Base SDK is the SDK version you are compiling against. In Xcode 9, this could be iOS11, for example. The Deployment Target setting represents the lowest supported iOS version the app will run on. This might be iOS10, per your example, but it could be anything else.
To use the newest iOS11 features, you'd have to have a minimum Base SDK of iOS11. To support older platforms, you must make sure the Deployment Target is set to the oldest version you'd support. In code, you need to check the version of the platform when deciding to use a newer-than-Deployment-Target feature.
if I get XCode version 9 and upgrade my phone to iOS 11.0.3, will I be able to deploy to my phone from XCode?
Yes. Xcode 9 and iOS 11 are both the latest (as of Oct. 2017) versions available. If you want to support iOS 11, you need Xcode 9.
How do I tell exactly which versions of iOS are supported by each version of XCode?
Check the release notes. For example, the Xcode 9 Compatibility section says:
Xcode 9 includes SDKs for iOS 11, watchOS 4, macOS 10.13, and tvOS 11
And going forward, how can I ensure that my iPhone and iPad always have versions of iOS which I am able to deploy to from XCode?
Staying current with the latest iOS and Xcode versions is one way to do that. You don't even need the latest iOS version on your phone -- just any version that's later than the minimum version supported by whatever Xcode you're using. Looking at the list of available deployment targets, I can see that Xcode 9 deploys to iOS versions back to iOS 9.1.
Mostly, just be aware that updating iOS on your phone may require you to also update Xcode.
At a loss here. I have to test an app on iphone 4 devices as well as newer ones. Can anyone advise me as to how to set Xcode 9 up to support ios 7 as a deployment target as well as up to the newer versions of ios? So that I can use iphone 4 simulator and later test on the iphone 4 device?
Can anyone advise me as to how to set Xcode 9 up to support ios 7 as a deployment target as well as up to the newer versions of ios?
The advice is simple: You can't. (Okay, maybe you can, with some sort of elaborate hacking; but don't.)
There's no problem running multiple versions of Xcode, so use an earlier version of Xcode to test on iOS 7. This will be tricky, because your project may not be easily backward compatible from Xcode 9 to an earlier version of Xcode, but it's your best hope. (Either that, or do what Apple really wants you to do: abandon backward compatibility beyond iOS 8.)
Since iOS 9, Apple has stopped support of iPhone 4S.
To work with iPhone 4S with Xcode 9, you need to set Deployment Target for your build (TARGET) below iOS 9.0
Follow these steps to work with iPhone 4S with Xcode 9:
Select your Project (Root) >> TARGET >> Tab 'General'
Set 'Deployment Target' to 8.4
.
Now open Simulator List, You can see, iPhone-4S is there to work with it.
I suggest to work with latest stable version of iOS (iOS 10).
Using latest xcode, you do not need to worry about supporting latest iOS version even if you choose lower deployment target which determines the app's backward compatibility.
It is a good idea to support the backward compatibility as far as your code is not depending on latest APIs and frameworks. The only reason for backward compatibility is to maximize the user base as not everyone (specially elders) update their iOS version regularly.
WARNING:
If you choose lowest possible deployment target (8.0), some newer features and frameworks won't be able to behave as expected which increases the chances of app crashes in older iOS versions.
Currently, we are using Xcode 10.1. AND Xcode 10.1 supports iPhone4s.
(Please don’t confuse Xcode version (10.1) with the (iOS 10.1).
Xcode is an IDE which can have backward iOS SDK support.
The latest iOS we updated on our iPhone4s is 9.3.5
To test your code on device, you can simply connect an iPhone4s or you can download a simulator with iPhone4s support (9.0 or so)
To download additional simulators you can go to xcode > preferences > components Once the simulator is installed, the option for iPhone 4s would be available for testing.
TIP: We have been using Deploymate for maximum backward compatibility and support. It warns us about deprecated methods and this is where you start modifying your code to support the lowest iOS version with confidence.
I am developing an iOS app for iOS 6.0 and higher. Now, after updating Xcode from Mac App Store, I am told that "An iOS Deployment Target earlier than 8.0 is not supported by this version of Xcode.". So, it seems that I need to use another version of Xcode to develop this app.
I can download other versions of Xcode from https://developer.apple.com/download/more/. What is the highest version of Xcode that supports iOS 6.0 as the deployment target?(I just mean the deployment target, not the capability of installing iOS 6.0 simulator.) I don't want to download many Xcode versions to find that.
You can use latest Xcode for this do not select deployment target from dropdown, just manually input "6.0" in the "iOS Deployment Target" text box.
For more details you can go through here.
I have also upload one of my app that use iOS 7.0 from latest Xcode.
iOS 6 is supported in Xcode 7.x .
My suggestion is that,you may need to provide support for just 2 of previous versions of iOS 10, ie. iOS 8 and 9. If you take a look at the usage graph, it is evident that only 6% are using versions earlier than 9. That too, will have major contributions from iOS 8 and 7.
I am making as iOS app on Xcode 6.0.1 with iOS SDK 8.0. On simulator front I can see long list back till iPhone 4s but deployment target selection till 6.0. I want to confirm my app will work on the iPhone4s and above versions.
I am noob to iOS so please bear with me.
The Deployment Target is the minimum OS version you support. You must support all versions including and above your deployment target. So yes, not only will your app work with iPhone 4S and newer phones, but you actually must support those phones.