iOS 9 marked difference
We are familiar and well know all Swift changes between 2.0 and 2.1. And also difference between Xcode 6 and 7. But there are some changes between iOS 8 and 9.1 that we can’t ignore. Because... apps became malfunctioned.
CanOpenURL
Most significant and despicable difference is between iOS 9 and 9.1. The canOpenURL does not work as expected anymore. All checks for that are failing at this time.
if app.canOpenURL(url) {
app.openURL(url)
}
To understand what happened, see this post: Quick Take on iOS 9 URL Scheme Changes.
But TL;DR is that you must explicitly set an array of URL schemes that your app may open. So add a key called LSApplicationQueriesSchemes to your Info.plist. And the value of this key is an array of URL schemes you want to be opened. Like: twitter, fb, instagram, vk.
More generally, xml for this in Info.plist should look like:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>twitter</string>
<string>instagram</string>
<string>comgooglemaps</string>
<string>yandexnavi</string>
</array>
3D Touch
Next big thing is how to fast implement quick actions for 3D-touching app icon.
As I have no 3D Touch devices (have just Force Touch one) and have no expertise in there, I just provide a link where it described very well: Add 3D Touch quick actions tutorial.
See also:
- Is your app iOS 9 ready? — Medium.
- iOS 9 not opening URL scheme — Stack Overflow
- Quick Take on iOS 9 URL Scheme Changes
- Add 3D Touch quick actions tutorial.
Let’s code!