Preparing Your Apps for iOS9
iOS 9 introduces changes that are likely to impact your app and its Facebook integration. This guide will review actions you should take to ensure the best app experience when using the Facebook SDK for iOS. In order to run your app on iOS 9, you need to upgrade to the latest Facebook SDK for iOS and take the following actions.
2. Whitelist Facebook Apps
If you use any of the Facebook dialogs (e.g., Login, Share, App Invites, etc.) that can perform an app switch to Facebook apps, you will need to update your application's plist to handle the changes to
canOpenURL described in https://developer.apple.com/videos/wwdc/2015/?id=703.
If you're recompiling with iOS SDK 9.0, add the following to your application's plist if you're using a version of the SDK v4.5 or older:
<key>LSApplicationQueriesSchemes</key> <array> <string>fbapi</string> <string>fbapi20130214</string> <string>fbapi20130410</string> <string>fbapi20130702</string> <string>fbapi20131010</string> <string>fbapi20131219</string> <string>fbapi20140410</string> <string>fbapi20140116</string> <string>fbapi20150313</string> <string>fbapi20150629</string> <string>fbapi20160328</string> <string>fbauth</string> <string>fbauth2</string> <string>fb-messenger-api20140430</string> </array>
If you're using FBSDKMessengerShareKit from versions older than the v4.6 release, also add
<string>fb-messenger-platform-20150128</string> <string>fb-messenger-platform-20150218</string> <string>fb-messenger-platform-20150305</string>
If you're using v4.6.0 or higher of the SDK, you only need to add:
<key>LSApplicationQueriesSchemes</key> <array> <string>fbapi</string> <string>fb-messenger-api</string> <string>fbauth2</string> <string>fbshareextension</string> </array>
This will allow the FacebookSDK integration to properly identify installed Facebook apps to perform an app switch. If you are not recompiling with iOS SDK 9.0, your app is limited to 50 distinct schemes (calls to
canOpenURL afterwards return
Facebook SDK for Unity
If you are using the Facebook SDK for Unity, we recommend you upgrade to the latest available version for usage with iOS 9. If you are upgrading from a version older than the v7.0.3-beta, reference the Unity SDK Changelog for a list of changes.
If you are not yet running Unity 5 and cannot upgrade from v6.2.2 of the Unity SDK, ensure you make the following changes before publishing a build with Xcode 7.
In iOS 9, the app switches can prompt the user with a confirmation dialog. The SDK will try to minimize the frequency of this by choosing the best dialog available (such as
SafariViewController), but this is by design in iOS 9.
This is an Xcode warning indicating the the
canOpenURL: call returned false. As long as you have configured the
LSApplicationQueriesSchemes entry in your plist as described above, you can ignore this warning