Changelog and release notes for the Facebook SDK for iOS.
For the changelogs for 5.0.0 and later, see facebook/facebook-objc-sdkCHANGELOG.md on GitHub.
_inBackground for app events[FBSDKAppEvents clearUserID];title, description, caption and image field of FBSDKShareLinkContent have been deprecated. Please take appropriate action to remove usage of them. [FBSDKAppEvents activateApp] is now called during SDK initialization. No need to call activateApp in codeFBSDKLoginButton. See upgrade guide for more detailsFBMediaView, to provide a hint for publishers who want to adjust their app layout in response to the dimensions of the contents of the view. This will allow publishers to do things like adapting the height of an ad cell in a feed, or showing a specialized layout for portrait video ads. The aspect ratio is width/height and is greater than or equal to 0.0. applyNaturalWidth and applyNaturalHeight which change the width or height based on current FBMediaView's dimension, respecting aspectRatio property. Check Native Ads developer document for more information about how to use these new APIs. setMediaViewRenderingMethod to FBAdSetting to configure the rendering method for FBMediaView. The available rendering methods are FBMediaViewRenderingMethodDefault, FBMediaViewRenderingMethodMetal, FBMediaViewRenderingMethodOpenGL, and FBMediaViewRenderingMethodSoftware. adViewDidClick callback method of FBInstreamAdViewDelegate is not called. setUserID: and updateUserProperties: to FBSDKAppEvents. See here for more details.application:openURL:options: to FBSDKApplicationDelegate to iOS 10.FBSDKLoginManager callbacks.FBSDKLoginManager was prematurely deallocated.nativeAdDidClick: not being called on FBNativeAdDelegateUIImagePickerController reference causing App Store rejectionsFBSDKSettings setGraphAPIVersion: to allow global setting of different Graph API versions.FBInstreamAdView to support instream ad placementsautoplayEnabled setter on FBMediaView in favor of server-side controlsPHAsset in the FnF video player library that may cause App Store static analysis to failFBSDKAppEventsUtility fetchDeferredAppInvite:.FBSDKAppGroupAddDialog and FBSDKAddGroupJoinDialog interfaces.NSURLSession instead of NSURLConnection for making Graph API requests since NSURLConnection.FBSDKLoginButton.FBSDKShareAPI whereas previously the SDK would return the photo album post ID.SKStoreProductViewController to allow all orientations except upside downFBAdEnvironmentDataFBAdConfigManager timing issues causing FNF / AVFoundation mixed object crashesFBAdConfigManager in valid situationsviewControllerDidCancel delegate method is called when the user presses CancelUIActionSheet with UIAlertControllerSKStoreProductViewController with more reliable loads and automatic timeoutFBAdConfig that caused AVFoundation and FNF* objects to be used together, causing "unknown selector" crashes"objc_arc" flag from modulemapviewControllerForLoginResume[FBSDKShareAPI.accessToken] to allow changing the access token used for sharing (pull request 826)-[FBSDKAppEvents logPushNotification*] and -[FBSDKAppEvents setPushNotificationsDeviceToken:]. See push campaigns docs for more details.-[FBSDKAppLinkUtility fetchDeferredAppInvite:] to support deferred App Invite app links on iOS, and FBSDKAppInviteContent.promotionCode and FBSDKAppInviteContent.promotionText to make it easy to include a promotion code with the invite. See app invite docs for more details.-[FBSDKProfile loadCurrentProfileWithCompletion:]FBSDKHashTag and FBSDKShareMediaContent to support sharing hash tags and mixed content (e.g., photos and videos). See sharing docs for details.FBSDKShareLinkContent.quote to support sharing quotes from a link.FBSDKShareVideo.previewPhoto to provide a photo to represent the video.FBSDKWebDialog (fixed the border alignment).FBMediaView.SFSafariViewController not dispatching dismissed events.FBNativeAdTableViewCellProvider native ad registration issue.FBAdURLSession.NSString conversion.FBAdCache when image URLs are invalid.[NSString containsString:] use in iOS 7.FBSDKLikeControl social sentence to respect locale.FBSDKAppEvents that not send attribution in some cases.FBSDKLoginButton delegate to receive loginButtonWillLogin: only at button login.FBSDKAppEvents that would not sent events if activateApp was sent from a background thread.FBSDKLoginButton regarding default height (GitHub pull request #804: @revolter).StoreKit dependency.NSURLSession.AVPlayer/AVPlayerItem performance, minor performance gains with video scrollingCGColorGetComponentsWKWebView rendering errorsFBNativeAdView never loading contents when used standaloneFBSDKShareAPI can now share FBSDKShareVideo content initialized with file URLs.sharePhotoContent cannot set peopleIds in FBSDKShareAPI.shareVideoContent to reject setting peopleIds and placeId (unsupported in Graph API video endpoint) in FBSDKShareAPI.FBMediaView performance - entirely skip blurring image if the media view is already at or close to the ideal 1.9:1 ratio for cover images.WebKit to render the interstitial (iOS 8 + 9 devices).UIWindowLevelNormal.AVFoundation, CoreMedia and CoreMotion, now they are lazily loaded at runtime.No binary changes were made in this release.
[FBSDKProfile imagePathForPictureMode]. Added [FBSDKProfile imageURLForPictureMode] instead.[+FBSDKRequestConnection setDefaultConnectionTimeout:] to allow setting of default timeout value for all requests.GameRequestDialog will now contain a key "to" with a NSArray value containing the recipients.FBSDKAccessToken init and new as NS_UNAVAILABLE.FBSDKApplicationDelegate application:didFinishLaunchingWithOptions: in SDK samples.FBSDKLoginManager using FBSDKLoginBehaviorWeb and the login is cancelled.FBSDKLoginBehavior.FBSDKLoginManager and FBSDKAppInviteDialog have been deprecated in favor of new overloads that take a fromViewController parameter. This resolves various presentation issues that can occur on iOS 9.[FBSDKLoginButtonDelegate loginButtonWillLogin:].FBSDKLoginButton selected style.[FBSDKMessengerSharer messengerPlatformCapabilities]FBMediaView[FBSDKMessengerSharer messengerPlatformCapabilities] in preparation for iOS 9. Rather than checking what Messenger is available, simply send the content and the SDK will alert the user if they need to update Messenger.FBMediaView.FBSDKAppInviteContent.previewImageURL, FBSDKGameRequestContent.to, FBSDKGameRequestContent.suggestions to avoid non public selector validation warningsFBSDKShareAPI.createObjectsWithClientToken[FBSDKAccessToken refreshCurrentAccessToken] to refresh current token.FBSDKTestUsersManager to simplify writing tests with test users.caption to FBSDKSharePhoto.message to FBSDKShareAPI.FBSDKShareAPI will now warn about missing "publish_actions" in the console rather than throwing an exception immediately.FBSDKAppInviteContent initWithAppLinkURL:. Use the standard init and set the appLinkURL property.fb:explicitly_shared for Open Graph actions.FBSDKGraphRequestConnection's delegate from receiving the 'requestConnectionDidFinishLoading:' message.facebook-ios-sdk repo) and Cocoapods (use pod 'FBSDKMessengerShareKit')FBSDKMessengerURLHandlerCancelShareContext.h. Use FBSDKMessengerURLHandlerCancelContext.h instead.FBNativeAdsManager to to assist in the retrieval of batches of ads.FBNativeAdView which provides configurable native ad viewsFBNativeAdScrollView which provides a horizontal scrolling experience hosting either FBNativeAdView's or custom native ad views.FBAdChoicesView, FBMediaView, FBAdStarRatingView.The Facebook SDK for iOS v4.0 is a major version upgrade. Please review Upgrading the iOS SDK from 3.x to 4.x.
FBSDKCoreKit.framework - the framework providing common SDK classes, and APIs for app events, Graph API RequestsFBSDKProfile - a robust way to fetch public profile data.FBSDKGraphErrorRecoveryProcessor - an error recovery attempter to process Facebook errors.FBSDKUtility - a utility class to help parse URLs.FBSDKLoginKit.framework - a framework providing login functionality. Requires FBSDKCoreKit.FBSDKLoginManager - a block based API for authorization.FBSDKShareKit.framework - a framework providing sharing functionality. Requires FBSDKCoreKit.FBSDKGameRequestDialog - a strongly typed dialog to create Game Requests.FBSDKAppInviteDialog - a strongly typed dialog to send App Invites.FBSDKShareAPI - a strongly typed implementation to perform shares over the Graph API.FBSDKShareButton/FBSDKSendButton/FBSDKLikeButton - turn-key buttons for sharing.FBSDKMessengerSharerKit.framework - a framework for building on Messenger Platform@deprecated have been removed.FBSDK prefix instead of FB. For example, FBAppEvents -> FBSDKAppEvents.FB*Dialogs and FB*DialogsParams. Use the appropriate strongly typed dialog and content model from FBSDKShareKit.framework.FBAppCall is generally replaced by FBSDKApplicationDelegate. See the getting started guide.FBSDKRequest* is replaced by FBSDKGraphRequest* and automatically provides error recovery and simplier error classification. See the upgrade guide.FBSession and FBAccessTokenData are replaced by FBSDKLoginManager, FBSDKAccessToken. See the upgrade guide.FBAppLinkData. Use BFURL from Bolts.framework.FBGraphObject. Use the appropriate Open Graph content model along with FBSDKShareAPI from FBSDKShareKit.framework.FB*ViewController and FBCacheDescriptor. No alternative. Construct a table view and page the Graph API results manually.FBSDKTokenCachingStrategy. No alternative. FBSDKLoginManager caches tokens to keychain automatically. You can observe token changes to do manual post processing (see [FBSDKAccessToken currentAccessToken]).