we started to develope an application with swift for iOS.
when we started it latest version was developer target 9.3.
now there is developer target 10 available. Can I install application that created with developer target 9.3 on iOS 10 ?
Yes, You can install lower developer target on higher iOS version.
In short - YES. You won't be able to do the opposite - install targeted as iOS 10 app to device, running with iOS 9.3
EDITED
So, your purposes, I think, maintain as small version, as possible. If you maintain 9.3 version, for example, your app will be available for iPhone 4s, which is not updates to iOS 10. With this ver you will cover more users
Deployment Target is the minimum required iOS version you application needs to run.
You can build an application with SDK 10 that runs under iOS 9. But then you have to take care to not use any function or method that is not available on iOS 9.
Also Always check to see if you are using deprecated APIs; though still available, deprecated APIs are not guaranteed to be available in the future.
Related
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.
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.
I know that it's possible to build an app with xcode 6.4 and then deploy it on a device running iOS 9 with TestFlight or any other deployment tool. The question is if it's possible with apples app store. Or more precisely, when will apple force us to switch to the iOS 9 SDK when submitting to the app store? Will it be September? Octobre? 2015?
Many thanks!
TK
There 2 things to note:
The iOS SDK version
This version is set in your projects, it lets you use the API of this version.
The minimum iOS Version
This is the minimum version targeted for the device.
It is more about the device limitation, for example iPhone 4 will not run ios9.
And the iOS SDK version available is based on your version of xCode.
The most likely candidate is February 1, 2016, if you trust that Apple will behave as previous years.
Follow https://developer.apple.com/news/ in your RSS-reader to get updates. The update for last year was released on October 20, https://developer.apple.com/news/?id=10202014a.
They made an exception for app updates last year, see https://developer.apple.com/news/?id=04082015a, but it is unlikely they will make the same exception this time.
Over time, Apple sets the minimum version of XCode that you can submit with, but the "SDK" requirement is dependent on the APIs that you are actually using.
The Deployment Target version is the minimum iOS version that your app supports, and you can set the target version less than the latest version. This affects the user at download/install time. If their device does not meet the minimum, they won't be able to download and install the app.
The minimum Deployment Target that you can set in XCode also increases over time with new releases of XCode. In that case, you may have some deadlines to beat to provide updates for the app that support older iOS versions. According to wikipedia, XCode 7 will allow a minimum iOS 5.1.1 deployment target, though you may have to set it manually.
I'm hesitant about Deployment target in xCode.
my question : can my application run on iOS 3, 4, 5, 6 if I select on Deployment target 4.3 ?
I can't test my application on an iPhone because I don't have it but I think the application can only run on IOS 4.3 or later
sorry for my bad english
If you use iOS 4.3 as deployment target, that will be the minimum version supported by your app. So, no, it won't run in iOS 3.0 for instance.
Also, you'll need to detect features not present in the iOS actually running the app and program them conditionally.
I'd suggest supporting iOS 5 or better. And definitely forgetting about iOS 3.
That is correct. The Deployment Target is the earliest version of iOS that your application will support.
Note, however, that if you use an API call from your current SDK (4.3) that is not present in the 3.0 SDK, your application will crash on devices running iOS 3.0.
So even though you can set the Deployment Target to 3.0, that will not guarantee that your app will work on an iOS 3 device.
See the Apple Developer documentation for more details.
Now, I use Xcode 4.2 supporting iOS 5.0. Apple has just released iOS 5.0.1 beta 2. I can install it on my iPhone.
I want to test with this beta version, i.e build code from Xcode.
How do I build code from Xcode 4.2 for device of iOS 5.0.1 beta?
Please help
In exactly the same way that you would do so for iOS 5.0. We can't talk about beta versions of the software, but we can talk about what happens when newer versions of iOS are released. When you connect a device with a newer version of iOS installed, the Xcode Organizer will give you a message like:
Xcode does not have debugging information for the version of iOS on the device named “Dev iPhone”. Xcode can collect debugging data from the device to enable development with this version of iOS. This process only needs to be done once per iOS version, and will take several minutes.
You simply click OK or similar, and Xcode downloads the necessary debugging data. You can then build to the device from Xcode and use all the debugging tools as usual. This process works for point releases. It is highly unlikely this would work for major updates (e.g. if iOS 6 was released) and it may or may not work for iOS 5.1, depending on the changes included. But when Apple have not released a new version of Xcode to developers, you can be sure it is because one is not required.
It is important to understand the distinction between an updated version of iOS (for the device) and the iOS SDK (for Xcode). A point release of iOS does not necessarily require any change to the iOS SDK, and therefore with Xcode's ability now to download the debugging information on demand (a feature that has been around for a while), you don't necessarily need an updated version of Xcode. Likewise, with Xcode 4.2 you still set the iOS 5.0 as your base SDK even if you are setting an earlier version (e.g. iOS 4.2) as your deployment target. You don't need the iOS SDK v4.2 to target iOS 4.2 for deployment. (Just make sure you add back "armv6" to targeted architectures in your build settings, if you still want to support the iPhone 3G and equivalent iPods, as in Xcode 4.2 this is not included by default.)