Facebook SDK for iOS Changelog v3.x

This document refers to the iOS SDK v3. For the new iOS SDK v4 please see our new iOS docs.

Changelog and release notes for the Facebook SDK for iOS.

v3.24.4 - March 16, 2016

FacebookSDK.framework

  • Improved Xcode-7.3beta compatibility.

v3.24.3 - January 16, 2016

FacebookSDK.framework

  • Fixed bitcode support.

v3.24.2 - January 13 2016

FacebookSDK.framework

Modified

  • Update OHHTTPStubs submodule to 4.7

Fixed

  • Fixed bug in FBSDKAppEvents that would not send events if activateApp was sent from a background thread.
  • Fixed bug in FBAppBridge that showed "native app not installed" error when the sharing image/video is too big.

v3.24.1 - October 7th 2015

FacebookSDK.framework

Fixed

  • Fixed orientation issue where SFSafariViewController was not rotating in the login flow.
  • Fixed headerdoc comments on FBSessionLoginBehavior.
  • Updated Bolts to 1.3.0
  • Marked [FBSession handleOpenURL] as deprecated. FBAppCall handleOpenURL: (or its overloads) should be used instead.

v3.24.0 - September 10th 2015

FacebookSDK.framework

Deprecated

  • Several methods on FBSession have been deprecated in favor of new overloads that take a fromViewController parameter. This resolves various presentation issues that can occur on iOS 9.
  • [FBSettings isPlatformCompatibilityEnabled] is deprecated.

Added

  • The SDK supports various iOS 9 features including Bitcode. In addition, the SDK dialogs such as Login, Like, Share Dialogs automatically determine the best UI based on the device, including SFSafariViewController instead of Safari. Follow the our Preparing for iOS 9 guide.

Modified

  • Updated Bolts to 1.2.2

FBAudienceNetwork.framework

  • FBAudienceNetwork is no longer included in the v3.x installer. Please refer to v4.x of FBAudienceNetwork for updates.

v3.23.2 - March 23rd 2015

facebook-ios-sdk-3.23.2.pkg - Facebook SDK 3.23.2 for iOS

FacebookSDK.framework

Fixed

  • Updated Bolts submodule to 1.1.4
  • Updated FacebookSDK to no longer statically link Bolts.framework. You can now link Bolts frameworks without duplicate symbol linker errors.

v3.23.1 - February 24th 2015

facebook-ios-sdk-3.23.1.pkg - Facebook SDK 3.23.1 for iOS

FacebookSDK.framework

  • No changes.

FBAudienceNetwork.framework

Fixed

  • Fixed issue with native ads not loading while scrolling
  • Fixed issue building for older targets

v3.23 - February 5th 2015

facebook-ios-sdk-3.23.pkg - Facebook SDK 3.23 for iOS

FacebookSDK.framework

Added

  • Added [FBRequest requestForUploadVideo] to more easily upload videos.

Modified

  • FBErrorUtility better categorizes server-side errors when System Account login fails.
  • FBRequest parameters now support NSNumber instances.

Fixed

  • Fixed FBViewController to page results correctly.
  • Fixed FBViewController does not display its own navigation bar when in a modal navigation controller.
  • Fixed bug in FBRequestConnection that prevented video uploads if token refresh requests were piggybacked.
  • Fixed bug regarding cookie usage in FBRequest.
  • Fixed analyzer warnings.

FBAudienceNetwork.framework

Fixed

  • Stability fixes.

v3.22 - January 6th 2015

facebook-ios-sdk-3.22.pkg - Facebook SDK 3.22 for iOS

FacebookSDK.framework

Added

  • Added FBTestUsersManager and FBTestUserSession to more easily write integration tests (replaces FBTestSession).
  • Allow opted-in apps to automatically log in-app purchase events as app events. See the App Events guide.

Modified

  • Deprecated FBTestSession.
  • Compiling the SDK source requires the latest (iOS 8/Xcode 6) SDK.

Fixed

  • Removed submodules flag from podspec.
  • Moved project private files out of ./src and into specific folders.
  • Fixed comments in image_to_code.py.
  • Fixed podspec prepare_command to not generate public headers for resource files.
  • Fixed crash caused by decoding of incorrectly formatted URLs.

FBAudienceNetwork.framework

Fixed

  • Fixed linker error when using -all_load flag

v3.21.1 - December 5th, 2014

facebook-ios-sdk-3.21.1.pkg - Facebook SDK 3.21.1 for iOS

FacebookSDK.framework

No changes.

FBAudienceNetwork.framework

Modified

  • Updated sample apps to support iPhone 6

Fixed

  • Resolved issue with FBAdView failing to work with mediation
  • Increased size of medium rect ads to support iPhone 6

v3.21 - December 1st, 2014

facebook-ios-sdk-3.21.pkg - Facebook SDK 3.21 for iOS

FacebookSDK.framework

Added

  • Added -[FBErrorUtility errorCodeForError] and -[FBErrorUtility errorSubcodeForError] to more easily work with Facebook errors.

Modified

  • FBAudienceNetwork.framework is now installed at the root of the installation directory instead of in a subdirectory.

Fixed

  • Fixed bug in FBSession that prevented restoring from cache when the cached token had different permissions.
  • Fixed bug in FBRequestConnection that did not respect setting of errorBehavior.
  • Fixed documentation errors.
  • Fixed bug in FBSessionTokenCachingStrategy that prevented using different instances to cache different tokens (such as in SwitchUserSample).
  • Fixed prepare_command in podspec.

FBAudienceNetwork.framework

Added

  • Support for a large banner ad format, with height of 250 and flexible width between 300 and 360:
    FBAdView *adViewRectangle = [[FBAdView alloc] 
      initWithPlacementID:@"YOUR_PLACEMENT_ID"      
                   adSize:kFBAdSizeHeight250Rectangle 
       rootViewController:self];

Modified

  • A more polished sample app.

Fixed

  • Fix NSTimer crash and other bug fixes.
  • Fix crash on iOS 8 when the SKStoreProductViewController is dismissed.

v3.20 - October 30th, 2014

facebook-ios-sdk-3.20.pkg - Facebook SDK 3.20 for iOS

FacebookSDK.framework

Added

  • Added a new sample, ShareIt which demonstrates the Like Button.

Modified

  • v3.20 of the SDK targets v2.2 of the Graph API. You can also read the blog post.
  • Updated Bolts submodule to 1.1.3 and ios-snapshot-test-case to 1.2.
  • FBLikeControl now has a objectType property to specify the object type to like and can log errors to console when using the new FBLoggingBehaviorUIControlErrors logging behavior.

Fixed

  • Updated podspec to no longer include AdSupport framework or FBUserSettingsViewResources.bundle by default.
  • Fixed bugs in Like Button.
  • Fixed bug in login when using `FBSessionLoginBehaviorUseSystemAccountIfPresent.
  • Fixed memory leak in FBLoginView.
  • Fixed bug in FBRequestConnection so that piggybacked requests (such as token extension) are not added when using deprecated style FBRequests, or if the graph version part had been overridden.
  • Minor documentation and whitespace fixes.

FBAudienceNetwork.framework

Fixed

  • Fixed interstitial ad layout after screen rotation.
  • Fixed status bar issue for in-app web browser.

v3.19 - October 2nd, 2014

facebook-ios-sdk-3.19.pkg - Facebook SDK 3.19 for iOS

FacebookSDK.framework

Added

  • Added Facebook-iOS-SDK.podspec for better Cocoapods support.
  • The Like Button for iOS is now out of beta!

Fixed

  • Fixed thread safety bug in FBDynamicFrameworkLoader.
  • Fixed memory leaks reported by analyzer.
  • Fixed bug in FBViewController that did not display Cancel or Done buttons in some iOS 8 conditions.

FBAudienceNetwork.framework

Fixed

  • Fixed crash issue when requesting FBNativeAd on iOS 5.
  • Fixed tint color bug for in-app FBSKStoreProductViewController.

v3.18.2 - September 29, 2014

facebook-ios-sdk-3.18.2.pkg - Facebook SDK 3.18.2 for iOS

FacebookSDK.framework

Fixed

  • Re-added armv7s architecture

FBAudienceNetwork.framework

Fixed

  • Re-added armv7s architecture

v3.18.1 - September 25, 2014

facebook-ios-sdk-3.18.1.pkg - Facebook SDK 3.18.1 for iOS

FacebookSDK.framework

Fixed

  • Fixed bug that would prevent some instances of App Links from being logged.

FBAudienceNetwork.framework

Added

  • Added delegate functions when the ad impression is being captured.

Fixed

  • Fixed the issue that delegate function ‘adViewDidClick:’ was not properly fired when a person clicked the install button of app ad.

v3.18 - September 3, 2014

facebook-ios-sdk-3.18.pkg - Facebook SDK 3.18 for iOS

FacebookSDK.framework

Fixed

  • Bolts.framework is now installed in the FacebookSDK directory
  • Fixed the orientation of web dialogs when linking against the iOS 8 SDK

FBAudienceNetwork.framework

Added

  • Added a means of providing a view controller from which to show advertisements. See Adding Ad Banners in iOS for details.

Modified

  • Updated the FBAudienceNetwork beta the sample code

Fixed

  • Stability improvements in the FBAudienceNetwork beta

v3.17.1 - August 21, 2014

facebook-ios-sdk-3.17.1.pkg - Facebook SDK 3.17.1 for iOS

FacebookSDK.framework

Added

Fixed

  • Fixed all enum delcarations to use NS_ENUM for Swift compatibility
  • Fixed a memory leak in FBSessionTokenCachingStrategy

v3.17 - August 7, 2014

facebook-ios-sdk-3.17.pkg - Facebook SDK 3.17 for iOS

FacebookSDK.framework

Added

  • Added FBTaggableFriendPickerViewController to pick friends from the taggable_friends API for apps with the user_friends permission.

Deprecated

  • Removed deprecated REST API methods ([FBRequest initWithSession:restMethod:parameters:HTTPMethod:], [FBRequest restMethod]).

Modified

  • Upgrade to Facebook API v2.1
  • Requires iOS 6.0+
  • Updated version of FBLikeControl.
  • Updated FBFriendPickerViewController.
  • Updated FBPlacePickerViewController.
  • Moved access tokens into the keychain.

Fixed

  • Fixed a bug in FBLoginView that incorrectly notified the FBLoginViewDelegate of errors when its internal request to fetch userInfo was cancelled.
  • Fixed a bug in FBRequestConnection that resulted in an incorrect error message when an access token expired. (https://github.com/facebook/facebook-ios-sdk/pull/634)

FBAudienceNetwork.framework

Modified

  • Added support for iOS 8.

v3.16.1 - July 17, 2014

facebook-ios-sdk-3.16.1.pkg - Facebook SDK 3.16.1 for iOS

FacebookSDK.framework

Modified

  • Removed non-essential app events code.

v3.16 - July 10, 2014

facebook-ios-sdk-3.16.pkg - Facebook SDK 3.16 for iOS

FacebookSDK.framework

Added

  • Added parameterless [FBDialogs canPresent*] helpers to detect if a share capability is available without constructing parameters.
  • Added FBAppEvents.loggingOverrideAppID to support logging of app events to a different app ID than the primary app ID.
  • Added properties appID and userID to FBAccessTokenData. userID is populated automatically upon successful login with a token string.
  • Added FBRequestConnectionDelegate so that consumers of FBRequestConnection can be notified of various events like completion of all requests.

Deprecated

  • The app event FBAppEventNameActivatedApp is deprecated in favor of calling [FBAppEvents activateApp].
  • The app event FBAppEventNamePurchased is deprecated in favor of calling [FBAppEvents logPurchase:currency:].
  • FBSession's appVersion and setAppVersion methods are deprecated, and app events' reporting will use the app's CFBundleVersion as the version indicator instead.
  • The deprecated [FBSettings publishInstall:] has been deleted. Use [FBAppEvents activateApp] instead.

Modified

  • [FBAppEvents activateApp] also logs an event "deactivated app" which tracks time spent in the app and time between app invocations.
  • Removed the sample apps: ProfilePictureSample, GraphApiSample, SessionLoginSample.
  • Modified Scrumptious sample to use taggable_friends API instead of FBFriendPickerViewController.

Fixed

  • Fixed bug in login to allow correct specification of default_audience when asking for publish permissions.
  • Fixed bug in FBAccessTokenData caching when working with multiple app IDs.

FBAudienceNetwork.framework

Added

  • Added console logging for impression and click handling in test mode.

Modified

  • Improved impression logging for banner ad and native ad.

v3.15.1 - June 23, 2014

facebook-ios-sdk-3.15.1.pkg - Facebook SDK 3.15.1 for iOS

FBAudienceNetwork.framework

Modified

  • The 'registerViewForInteraction:' function in 'FBNativeAd' in the Audience Network framework was modified to accept the view controller that shows the native ad unit. This is to ensure proper presentation of the iOS app store when clicking on mobile app install ads. For more information on the the Native Ad API see our documentation here.

v3.15 - June 12, 2014

facebook-ios-sdk-3.15.pkg - Facebook SDK 3.15 for iOS

FacebookSDK.framework

Added

  • Add snapshot tests and a new FacebookSDKApplicationTests target for tests that require UIKit

Modified

  • Update all targets to use xcconfigs for project settings
  • Update build scripts to use xctool
  • Convert to XCTest for unit tests

Fixed

  • Use error consts where able (NSURLErrorDomain, NSURLErrorCancelled)
  • Fix parsing of empty URL params (https://github.com/facebook/facebook-ios-sdk/pull/461)
  • Fix zombie in FBFrictionlessRequestSettings (https://github.com/facebook/facebook-ios-sdk/issues/464, https://github.com/facebook/facebook-ios-sdk/issues/458)
  • Fix typo in commnet in FBGraphObject (https://github.com/facebook/facebook-ios-sdk/issues/477)
  • Fix FBTooltipView to not crash on a server error (https://github.com/facebook/facebook-ios-sdk/issues/613)
  • Fix FBLoginDialog delegate zombie (https://github.com/facebook/facebook-ios-sdk/issues/576)
  • Fix inconsistency in attempting to open an app URL (/bugs/489245687842265/)
  • Remove access to IDFA for implicit events
  • Tweak FBLikeControl

FBAudienceNetwork.framework

Added

  • Added the adViewDidFinishHandlingClick: function FBAdViewDelegate for cases where you will need to get notified when people finish the interaction with the banner unit.

Modified

  • The native ad API was changed to make it easier on logging the impression and handling the click. We removed the logImpression and handleClickWithViewController:callback: functions in favor for ones that allow you to register the ad view. This will enable the SDK to handle the impression logging and click automatically. More details on the new API can be found here.

Fixed

  • Internal and stability improvements

v3.14.1 - May 12, 2014

facebook-ios-sdk-3.14.1.pkg - Facebook SDK 3.14.1 for iOS

Modified

  • The id property on the types FBGraphObject, FBGraphPlace, FBOpenGraphAction, and FBOpenGraphObject have been deprecated in favor of objectID to avoid app store submission warnings.
  • The description property of FBLinkShareParams and FBOpenGraphObject has been deprecated in favor of linkDescription and objectDescription, respectively, to avoid app store submission warnings.

Fixed

  • Fixed bugs in Audience Network.
  • Fixed bug in FBOpenGraphActionParams that prevented sharing of certain Open Graph stories.
  • Fixed bug in FBFrictionlessRequestSettings that could result in a zombie reference.
  • Fixed bug in legacy Facebook that could crash when parsing URL.

v3.14 - April 30, 2014

facebook-ios-sdk-3.14.pkg - Facebook SDK 3.14 for iOS

Added

  • Version 3.14 targets v2.0 of the Graph API and uses the New Facebook Login, which affects FBSession in numerous ways. Please read the iOS SDK Upgrade Guide, or the App Upgrading Guide to learn more.
  • Added "Message Dialog", a new way to share links, photos, and Open Graph stories via Facebook Messenger without requiring login. See the Message Dialog Guide or the Sharing on iOS Guide for more details.
  • Added FBLikeControl, a new UI control to easily let people perform a Like in your native apps. This is a beta. See here for more details.
  • Added FBAudienceNetwork.framework, a new way to monetize your apps. Learn more and get started here.
  • Added FBAppLinkResolver to support App Links, a new way for cross app linking and discovery.

Modified

  • Updated Scrumptious sample with a brand new design with a storyboard implementation. The app now features both the Native Share Dialog and Message Dialog when the appropriate Facebook App is also installed on the device.
  • FBShareDialogParams is deprecated in favor of FBLinkShareParams.
  • FBShareDialogPhotoParams is deprecated in favor of FBPhotoParams.
  • FBOpenGraphActionShareDialogParams is deprecated in favor of FBOpenGraphActionParams.

Fixed

  • A bug preventing usage of the iOS integrated share sheet when the person was logged in by the Facebook App and not the system account store.

Other

  • The Bolts framework is now required when using FBAppLinkResolver. The framework is installed next to the Facebook SDK with the installer package (default location is ~/Documents/Bolts.framework).

v3.13.1 - April 4, 2014

facebook-ios-sdk-3.13.1.pkg - Facebook SDK 3.13.1 for iOS

Fixed

  • Fixed projects for XCode 5.1.
  • Fixed bug preventing usage of iOS share sheet when logged in via a different login behavior.

v3.13 - March 6, 2014

facebook-ios-sdk-3.13.pkg - Facebook SDK 3.13 for iOS

Modified

  • Modified sample apps for 64 bit support and update project settings.

Added

  • Added presentShareDialogWithPhotoParams:clientState:handler: and canPresentShareDialogWithPhotos to FBDialogs. You can now use the Native Share Dialog to share photos directly without constructing an Open Graph story.

Fixed

  • Fixed missing import in FBErrorUtility.h
  • Fixed FBProfilePictureView to work for "@me" and consistently handle invalid images.
  • Fixed Scrumptious sample to use existing OG meal objects when posting via Native Share (similar to the Android SDK sample)

v3.12 - January 30, 2014

facebook-ios-sdk-3.12.pkg - Facebook SDK 3.12 for iOS

Modified

  • Added appledoc as a submodule.
  • Updated code style.
  • Removed unnecessary @synthesize statements.
  • Organized source files.
  • Added xcconfig files for the sample projects.
  • Modified Rock Paper Scissors sample app to demonstrate custom app events and deep linking.

Fixed

  • Fixed 64-bit support in sample code.
  • Fixed image usage in Scrumptious sample.

v3.11.1 - January 17, 2014

facebook-ios-sdk-3.11.1.pkg - Facebook SDK 3.11.1 for iOS

Fixed

  • Fixed bug in FBRequestConnection which was causing crashes when refreshing an access token.

v3.11 - December 20, 2013

facebook-ios-sdk-3.11.pkg - Facebook SDK 3.11 for iOS

Modified

  • Moved README file to README.txt

Fixed

  • Fixed image usage in Scrumptious sample.
  • Fixed bug in FBUserSettingsViewController that did not open cached session tokens.
  • Fixed bug in FBAppEvents to use the correct session when there is no access token nor client token.
  • Fixed bug in FBAppLinkData. The ref property should be type NSString and not NSArray.
  • Fixed bug in FBRequest serialization of Open Graph object posts.

v3.10 - November 19, 2013

facebook-ios-sdk-3.10.pkg - Facebook SDK 3.10 for iOS

Modified

  • Modified Scrumptious sample to no longer use -ObjC linker flag.
  • Modified FBSession to optimistically receive granted permissions when opening the session. This applies to all logins except for iOS 6+ integrated authentication.

Added

  • Added property loginBehavior to FBLoginView to allow control over which login behavior is used.
  • Added setter to property selection in FBFriendPickerViewController to allow preselection of friends.

Fixed

  • Fixed bug in FBSession so that FBSessionStateCreatedTokenLoaded -> FBSessionStateClosed is not a valid state transition.
  • Fixed bug in FBSession so that the FBSessionLoginBehavior used to open the session is also applied to requests for new permissions.

v3.9 - October 17, 2013

facebook-ios-sdk-3.9.pkg - Facebook SDK 3.9 for iOS

Modified

  • Removed @beta attribute from FBAppEvents API.
  • Moved [FBAppEvents limitEventUsage] to [FBSettings limitEventAndDataUsage].
  • Replaced PackageManager with productbuild and pkgbuild in the script, build_distribution.sh.
  • Updated FBSession to piggyback a permissions refresh onto the first request after opening.

Added

  • Added -[FBSession setStateChangeHandler].

Fixed

  • Fixed SDK project file deployment target for 64 bit builds.
  • Fixed bug in FBGraphObjectPagingLoader to correctly inform delegate in case of errors.
  • Fixed bug in FBLoginView that would sometimes incorrectly try to open an already open session.

v3.8 - September 18, 2013

facebook-ios-sdk-3.8.pkg - Facebook SDK 3.8 for iOS

Modified

  • Updated SDK and samples to support iOS 7 and Xcode 5 and 64 bit architectures. See our upgrade guide.
  • Updated Update App UserID requests so they respect limitEventUsage setting.
  • Updated FBRequestConnection and FBSession to automatically refresh session permissions periodically. This refresh is piggybacked to outgoing requests to avoid extra network round-trips and occurs at most once a day.

Added

  • Added addRequest:completionHandler:batchParameters to FBRequestConnection to support additional parameters to batched graph requests.

Fixed

  • Fixed rotation bug in FBDialog
  • Fixed bug in batched graph requests when a request's path includes special characters.
  • Fixed FBLoginView and FBProfilePictureView to support autolayout and storyboards.

v3.7.1 - August 22, 2013

facebook-ios-sdk-3.7.1.pkg - Facebook SDK 3.7.1 for iOS

Fixed

  • Fixed [FBAppCall openDeferredAppLink:] to respect multiple invocations properly.
  • Fixed image attachment in the Native Share Dialog for iOS 7.

v3.7 - August 8, 2013

facebook-ios-sdk-3.7.pkg - Facebook SDK 3.7 for iOS

Modified

  • Updated logo and default text for FBLoginView. The button is now wider. See the Upgrading Guide for more information.
  • Updated FBSession with additional implicit logging during login.
  • Updated Scrumptious and HelloFacebookSample to use the aforementioned errorBehavior for its Graph requests.
  • Updated Scrumptious landing page design.

Added

Fixed

  • Fixed potential BAD_EXC_ACCESS error in FBWebDialogs.
  • Fixed error conditions related to login with Safari or iOS 6.
  • Fixed bug in FBRequestConnection when the request was cancelled.

v3.6 - July 24, 2013

facebook-ios-sdk-3.6.pkg - Facebook SDK 3.6 for iOS

Modified

  • FBInsights is deprecated. Please use FBAppEvents instead.
  • Several FBSettings methods related to publishing installs are deprecated including shouldAutoPublishInstall, setShouldAutoPublishInstall:autoPublishInstall, and publishInstall:appID. Use [FBAppEvents activateApp] instead.
  • The Scrumptious sample app demonstrates the native Share Dialog and localization best practices.
  • Graph API requests made implicitly from SDK methods no longer close an FBSession if they fail
  • Calls to the startForCustomAudienceThirdPartyID and requestForCustomAudienceThirdPartyID APIs in FBSettings no longer require setting the client token in [FBSettings setClientToken:].

Added

  • FBAppEvents is a new class that lets apps publish custom events from apps to Facebook for the purposes of monitoring the impact of mobile app ads on logged app events and providing Insights on logged events. For more information, read Facebook SDK for iOS app events.
  • The SDK version number is defined in FacebookSDK.h and available from [FBSettings sdkVersion]
  • FBAppCall has new APIs to retrieve deferred App Links and more easily parse inbound App Links.

Fixed

  • Fixed a login bug for apps that use a custom URL scheme suffix.
  • Fixed a bug in FBWebDialogs when an UIAlertView was present

Other

  • SDK 3.6 setup is simplified due to two changes:
    • iOS framework dependencies are loaded automatically and do not need to be configured manually.
    • The SDK's resource bundle is no longer required. Image and string resources that support the web-based dialogs, Login button, and other UI controls are are now included automatically. The impact on app size is negligible.
  • The SDK is now signed and easier to install on OS X

v3.5.3 - June 24, 2013

facebook-ios-sdk-3.5.3.pkg - Facebook SDK 3.5.3 for iOS

Fixed

  • A crash when using the deprecated FBNativeDialogs class.
  • Static analyzer warnings.
  • Removed another usage of id selector to prevent false positives of "non-public selector" warnings for App Store approval.

v3.5.2 - June 6, 2013

facebook-ios-sdk-3.5.2.pkg - Facebook SDK 3.5.2 for iOS

Fixed

  • Support for passing a single UIImage instance to the Open Graph Share Dialog.
  • Support apps that use multiple URL schemes.
  • Stability improvements and prevention of potential memory leaks.
  • FBWebDialogs bug that occurred when person is not authenticated.
  • Fixed issue that occurred with apps with bundle IDs longer than 47 characters.

Modified

  • Usage of UIDevice to prevent false positives regarding [UIDevice uniqueIdentifier] for App Store approval.
  • Removed usage of id selector to prevent false positives of "non-public selector" warnings for App Store approval.
  • Improve share dialog performance.

v3.5.1 - April 24, 2013

facebook-ios-sdk-3.5.1.pkg - Facebook SDK 3.5.1 for iOS

Fixed

  • Crashing bug when using the new native Login Dialog under certain scenarios, ex: no internet connection.
  • Failure to provide a return URL for FBWebDialogs.

Modified

  • Minor improvement to the RPSSample sample app.

v3.5 - April 18, 2013

facebook-ios-sdk-3.5.pkg - Facebook SDK 3.5 for iOS

Modified

  • FBSession support for the native Login Dialog iOS 6 is still the default login dialog. People who have Facebook version 6.0 (or greater) will see the native Login Dialog. People on older versions of the Facebook app will continue to see the web-based Login Dialog.

  • FBRequest and FBRequestConnection helpers for Object API. SDK 3.5 supports the new Open Graph APIs that let apps create, read, update, and delete Open Graph objects. New methods on FBRequest and FBRequestConnection help make these API calls:

    • requestForPostOpenGraphObjectWithType
    • requestForPostOpenGraphObject
    • requestForUpdateOpenGraphObjectWithId
    • requestForUploadStagingResourceWithImage
    • requestForDeleteObject
    • startForPostOpenGraphObject
    • startForPostOpenGraphObjectWithType
    • startForUpdateOpenGraphObject
    • startForUpdateOpenGraphObjectWithId
    • startForUploadStagingResourceWithImage

For more information, see FBRequest and FBRequestConnection;

  • FBRequest and FBRequestConnection support for reading a Custom Audience API

    • requestForCustomAudienceThirdPartyID
    • startForCustomAudienceThirdPartyID
  • FBSettings has several BetaFeature methods

  • The image property on FBOpenGraphAction changed from type NSArray to id

  • FBSBJSON has been removed with the update to iOS 5.0 as the minimum supported version.

Added

  • FBDialogs addition of present* and can* methods for sharing Open Graph actions, links, and status updates

    • canPresentShareDialogWithParams
    • presentShareDialogWithParams
    • presentShareDialogWithLink
    • canPresentShareDialogWithOpenGraphActionParams
    • presentShareDialogWithOpenGraphActionParams
    • presentShareDialogWithOpenGraphAction
  • FBAppCall is a new class that apps use to consistently handle "open URL" events sent to an app from the Facebook app. Open URL events are used to send an app:

    • a response to opening the Login Dialog (for apps using Facebook Login)
    • deep links (when people click on stories from the app in the News Feed or on Timeline) > Instances are used to handle calls that cross app boundaries, and the FBAppCall type is general plumbing for calls between apps.
  • Richer support for deep links using FBAppCall

    Once an app uses FBAppCall to handle cross app calls in the handleOpenURL method of the app delegate, the handling code uses the FBAppLinkData class to read data from the URL used to open the app. FBAppLinkData handles parsing the incoming URLs and provides strongly typed access to data on App Links, including the target_url field of deep links.

  • FBGraphObject updates for Object API

    FBGraphObject includes updates to support the Object API. To create an instance of an Open Graph object that your app can create using [FBRequest startForPostOpenGraphObject], use:

[FBGraphObject openGraphObjectForPost];

For example:

NSMutableDictionary<FBOpenGraphObject> *object = [FBGraphObject openGraphObjectForPost];
object[@"type"] = @"books.book";
object[@"title"] = @"Snow Crash";
object[@"image"] = @"http://upload.wikimedia.org/wikipedia/en/d/d5/Snowcrash.jpg";
object[@"url"] = @"https://example.com/book-app/books/Snow-Crash";

Your app may load an FBGraphObject from local storage on an iOS device, and may change that object's state during routine app execution. To correctly create an FBOpenGraphObject using [FBRequest startForPostOpenGraphObject] or other similar methods, your app needs to mark the object as "provisioned for post" using:

object.provisionedForPost = YES;

Here's a complete example that creates an object, marks it as provisioned for post, and creates it:

NSMutableDictionary<FBOpenGraphObject> *object = [FBGraphObject openGraphObjectForPost];
object.provisionedForPost = YES;
object[@"type"] = @"books.book";
object[@"title"] = @"Snow Crash";
object[@"image"] = @"TODO";
object[@"url"] = @"https://example.com/book-app/books/Snow-Crash";

[FBRequestConnection startForPostOpenGraphObject:object
                               completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                                   if(error) {
                                       NSLog(@"Error: %@", error);
                                   } else {
                                       NSLog(@"Success");
                                   }
                               }];

  • Adds FBErrorUtility public API and makes the -ObjC linker flag optional SDK 3.2 included improved support for handling errors and required apps to use the –ObjC linker flag to access these new APIs. The –ObjC linker flag is still supported but is no longer required to use the new error handling APIs. Apps can use FBErrorUtility without

  • Adds Rock Paper Scissors sample app The Rock Paper Scissors sample apps shows how to use app-owned Open Graph objects and how to use the native Share Dialog from an app that doesn't require use of Facebook Login to publish Open Graph actions.

  • Add photo upload support to Scrumptious sample app Scrumptious has been updated to show how to use the image staging service and how to create person-owned Open Graph objects.

Fixed

  • No changes

Other

  • New setup instructions The SDK setup instructions have been simplified and just require apps to import frameworks and configure three settings in the .plist.

  • Security.framework is now required The Security framework is now required and helps secure cross app calls made to / from the Facebook app.

  • Removes BooleanOG and Hackbook samples These samples have been removed in favor of Rock Paper Scissors and to streamline the number of samples included in the SDK.

  • Removes support for iOS 4.* Facebook 6.0 dropped support for iOS 4.x. To stay in sync, the Facebook SDK also does not support iOS 4.x.

v3.2.1 - March 20, 2013

facebook-ios-sdk-3.2.1.pkg - Facebook SDK 3.2.1 for iOS

Added

  • FBFrictionlessRecipientCache class to maintain a cache of friends for use in the FBWebDialog class when presenting the Requests dialog.

  • FBWebDialog method presentRequestsDialogModallyWithSession:message:title:parameters:handler:friendCache: to enable frictionless request support by passing in a FBFrictionlessRecipientCache object representing a cached set of friends.

Fixed

  • FBRequestConnection to properly handle a nil completion handler.

v3.2 - February 25, 2013

facebook-ios-sdk-3.2.pkg - Facebook SDK 3.2 for iOS

Modified

  • FBSession properties accessToken, expirationDate and loginType have been deprecated. Instead use the new accessTokenData property to access this info.

  • FBSession methods reauthorize* have been deprecated, instead use the requestNew* methods.

  • Improved error handling logic, including handling various iOS 6 cases.

  • The Scrumptious sample now uses FBLoginViewfor authentication. The sample has also been modified to show best practices in handling errors during authorization and calling Facebook APIs.

  • Samples migrated from the deprecated APIs. The -ObjC linker flag added to all samples.

  • Implicit logging added to provide Facebook Insights to events such as launching/dismissing the native share sheet, launching/dismissing the native Login dialog, friend picker usage, and place picker usage. A new advanced setting in the App Dashboard named Mobile SDK Insights, allows you to turn off the implicit logging which is on by default.

  • PlacePickerSample sample displays an alert when a place is selected.

  • JustRequestSample sample renamed to GraphApiSample.

Added

  • FBWebDialog class to provide webview dialogs to replace Facebook dialog API.

  • NSError(FBError) category extension to NSError to simplify Facebook error handling.

  • FBSession methods requestNewPublishPermissions:defaultAudience:completionHandler:requestNewReadPermissions:completionHandler: for requesting new or additional permissions for the session.

  • FBSession method openFromAccessTokenData to support opening from an FBAccessTokenData instance.

  • FBSession class method renewSystemCredentials to allow easy refresh of iOS 6 account store.

  • FBSession class methods to get and set default URL scheme suffix used in sessions:

    • setDefaultUrlSchemeSuffix:
    • defaultUrlSchemeSuffix
  • FBAccessTokenData class to simplify access token data operations.

  • FBSession property accessTokenData used to get the FBAccessTokenData used in the session.

  • FBSessionTokenCachingStrategy methods to operate with FBAccessTokenData:

    • nullCacheInstance - class method that returns an FBSessionTokenCachingStrategy instance that does not perform any caching. One scenario where this is useful is importing an access token using the openFromAccessTokenData method on an FBSession instance that is not initialized from cache. The nullCacheInstance can be used to create the required FBSession instance.
    • cacheFBAccessTokenData: - method used to cache a token represented by FBAccessTokenData.
    • fetchFBAccessTokenData - method used to fetch a cached token.
  • FBPlacePickerViewController method updateView to allow a place picker refresh without a network roundtrip.

  • FBLoginViewDelegate method loginView:handleError: to notify the delegate of communication or authorization errors.

  • FBSettings method publishInstall:withHandler: enables defining a handler to process server response when publishing an attributed install for Mobile App Install Ads analytics.

  • FBInsights class to provide client-side logging of specialized app analytics that are then available on Facebook Insights. Also provides analytics for Conversion Pixel tracking for ads optimization.

  • FBSettings class methods setClientToken and clientToken to enable anonymous Facebook API calls in support of FBInsights logging.

Fixed

  • Memory leaks in FBUserSettingsViewController, FBLoginView, and FBSession.

  • Incorrect use of publish permissions when read permissions should be used, in FBUserSettingsViewController and FBLoginView.

  • FBViewController to initialize ''done'' and''cancel'' buttons properly for non-programmatic init paths.

  • FBViewController and FBLoginView documentation.

  • A bug in the FBSessionhandleOpenURL method that no longer passed through errors.

  • A bug in the FBSessionhandleDidBecomeActive method that incorrectly coupled to the active session.

  • A bug in FBSession that prevented KVO of the state property.

  • How friend picker and place picker selection changed events are triggered when items are deselected. The event was being triggered multiple times in certain scenarios.

  • The friend picker to properly handle profiles with no name data.

  • A bug in WebView Login dialog reauthorization flow that did not invoke reauthorization handlers.

  • Rotation bugs in ProfilePictureSample, FriendPickerSample and FBUserSettingsViewController.

  • FriendPickerViewController and PlacePickerViewController can now fetch Retina-sized images.

v3.1.1 - October 3, 2012

FacebookSDK-3.1.1.pkg- Facebook SDK 3.1.1 for iOS

Modified

  • Fixed token and permission sync bugs for iOS 6
  • Fixed linking error for consumers of SBJSON
  • Improved samples to better demonstrate iOS 6 authentication flows
  • Other minor bugs fixed and improvements made to samples

v3.1 - September 25, 2012

FacebookSDK-3.1.pkg - Facebook SDK 3.1 for iOS

Modified

  • Fixed sorting for FBFriendPickerViewController when a person have friends in multiple locales. The fix is consistent with the built in iOS Contacts app and with the iOS Human Interface Guidelines.

  • Fixed a bug in the Open Graph action message parameter. Changed the property name in the FBOpenGraphAction protocol from user_message to message.

  • The location property of the FBGraphUser is of type FBGraphUserLocation instead of FBGraphLocation. This fixes an issue where the person's location was incorrectly represented as a Facebook place object.

  • Fixed a bug to clear cached requests and images when and FBSession is closed using the closeAndClearTokenInformation method.

  • Renamed SBJSON to FBSBJSON in Facebook SDK to fix linking errors in apps also using newer versions of SBJSON.

  • Updated samples to work with iOS 5 and retina display

Added

  • iOS 6 Login support.

  • FBNativeDialogs class to support the iOS6 SLComposeViewController social share controller.

  • FBsession class methods to separate out permission requests into read and publish when opening or reauthorizing sessions:

    • openActiveSessionWithReadPermissions:allowLoginUI:completionHandler: - opens an active session with the requested read permissions.
    • openActiveSessionWithPublishPermissions:defaultAudience:allowLoginUI:completionHandler: - opens an active session with the requested publish permissions.
    • reauthorizeWithReadPermissions:completionHandler: - reauthorizes a session with the additional requested read permissions.
    • reauthorizeWithPublishPermissions:defaultAudience:completionHandler: - reauthorizes a session with the additional requested publish permissions.
  • FBsession class method handleDidBecomeActive to better handle scenarios where a person switches back to an app without completing Facebook Login via Facebook for iOS app or Facebook on m.facebook.com, by for example clicking the device Home button.

  • Global migration support to enable shielding of apps from breaking server-side changes and maintain app stability. As an example, if the FBFriendPickerViewController data request results in a server response that is a breaking change, the Facebook SDK now has hooks to maintain stability and revert to getting the non-breaking data response.

  • FBGraphUserLocation protocol to represent a person's location.

v3.0.8 - August 21, 2012

FacebookSDK-3.0.8.pkg - Facebook SDK 3.0 for iOS (update 1)

Modified

  • Fixed crashing bug for certain deep linking scenarios
  • Fixes bug in places picker
  • Improves usability of interface builder and delegate properties
  • Fixed bug in structure of FBGraphUser
  • Other minor bug fixes and improvements to samples

v3.0 - August 7, 2012

FacebookSDK-3.0.pkg - Facebook SDK 3.0 for iOS

Modified

  • FBLoginView property style removed as no profile picture is specified in this control.

  • FBSession class method sessionOpen has been removed, instead use the new openActiveSessionWithAllowLoginUI: class method.

  • FBSession class method sessionOpenWithPermissions:completionHandler: has been removed, instead use the new openActiveSessionWithPermissions:allowLoginUI:completionHandler: class method.

Added

  • FBSession class methods openActiveSessionWithAllowLoginUI: and openActiveSessionWithPermissions:allowLoginUI:completionHandler: allows control for opening a session without showing the login UI, ex: if app starts and a cached token is available.

  • FBSettings class methods for supporting install publishing: shouldAutoPublishInstall, setShouldAutoPublishInstall: and publishInstall:.

  • Localization support for all visual components.

  • Localization support for Scrumptious and HelloFacebook sample apps.

  • Production art across all view controllers and controls.

v3.0.6.b - July 25, 2012

Beta version

Modified

  • Framework has been renamed from FBiOSSDK to FacebookSDK.

  • Framework bundle file renamed from FBiOSSDKResources.bundle to FacebookSDKResources.bundle.

  • FBProfilePictureView property userID renamed to profileID.

  • FBProfilePictureView instance method:

    • - (id)initWithUserID:(NSString *)userID pictureCropping:(FBProfilePictureCropping)pictureCropping

    modified to :

    • - (id)initWithUserID:(NSString *)profileID pictureCropping:(FBProfilePictureCropping)pictureCropping
  • FBSession class method loggingBehavior moved to new FBSettings class.

  • FBSession class method setLoggingBehavior: moved to new FBSettings class.

  • FBTokenCachingStrategy method clearToken no longer takes in a parameter:

    • - (void)clearToken:(NSString *)token

    modified to:

    • - (void)clearToken
  • FBRequest class methods starting with start* have moved to the FBRequestConnection class:

    • startWithGraphPath:completionHandler:
    • startForPostWithGraphPath:graphObject:completionHandler:
    • startWithGraphPath:parameters:HTTPMethod:completionHandler:

Added

  • Simple support for automating common model view controller behavior is now inherited from the new FBViewController base class.

  • FBUserSettingsViewController - view controller that displays the logged in profile information and provides login and logout functionality.

  • FBSettings - class to manage settings, ex: logging behavior.

  • NSNotificationCenter support by FBSession for the active session is now available. Four notifications are supported:

    • FBSessionDidSetActiveSessionNotification to indicate that a new active session has been set.
    • FBSessionDidUnsetActiveSessionNotification to indicate that a new active session has been unset.
    • FBSessionDidBecomeOpenActiveSessionNotification to indicate that the active session is open.
    • FBSessionDidBecomeClosedActiveSessionNotification to indicate that there is no longer an active session.
  • FBRequest - class methods added:

    • requestForPostWithGraphPath:graphObject:
    • requestForPostStatusUpdate:
    • requestForPostStatusUpdate:place:tags:
    • requestWithGraphPath:parameters:
  • FBRequestConnection - class methods added:

    • startForMeWithCompletionHandler:
    • startForMyFriendsWithCompletionHandler:
    • startForUploadPhoto:completionHandler:
    • startForPostStatusUpdate:completionHandler:
    • startForPostStatusUpdate:place:tags:completionHandler:
    • startForPlacesSearchAtCoordinate:radiusInMeters:resultsLimit:searchText:completionHandler:
  • FBUserSettingsDelegate - protocol added to define methods called by an FBUserSettingsViewController.

  • FBViewControllerDelegate - protocol added to define methods called when the Cancel or Done buttons are pressed in an FBViewController.