Skip to content

Latest commit

 

History

History
1050 lines (697 loc) · 45.2 KB

CHANGELOG.md

File metadata and controls

1050 lines (697 loc) · 45.2 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

As of v12.0, CocoaPods and Swift Package Manager (SPM) will be vending pre-built XCFrameworks.

What this means for you as a developer is that you no longer need to build the SDK when using CocoaPods or SPM. This should save anywhere from a few seconds to a few minutes per build depending on your particular setup.

Because XCFrameworks do not allow for embedded frameworks, they require their dependent frameworks to be included. When you install the SDK using CocoaPods, the generated Pods project will include the dependencies for you, however, when you install the SDK using SPM, you will be required to add the dependencies yourself.

What this means for you as a developer is that you'll need to include FacebookAEM and FacebookBasics even though you won't use them directly. If you don't you'll experience a crash at runtime upon app launch when the dependencies cannot be resolved.

More detailed instructions can be found at: https://developers.facebook.com/docs/ios/getting-started

FacebookGamingServices vs FBSDKGamingServicesKit - You'll notice there are two libraries related to Gaming Services. FBSDKGamingServicesKit is a superset of FacebookGamingServices that includes Objective-C wrapper classes for FBSDKContextDialogPresenter and FBSDKContextDialogPresenter. If you do not require an Objective-C interface for these types, we recommend using only FacebookGamingServices.

Added

  • Formalized the shared instance of AppEvents (given the property name shared) in order to start moving away from a class-based interface.

Removed

Support for building from source using Carthage. Instead Carthage can be used to obtain the pre-built XCFrameworks. For update instructions, see: https://github.com/Carthage/Carthage#migrating-a-project-from-framework-bundles-to-xcframeworks

  • AccessToken
    • graphDomain class property. Replacement - graphDomain instance property
    • convenience initializers that include graphDomain
    • refreshCurrentAccessToken(completionHandler:) Replacement - refreshCurrentAccessToken(completion:)
  • AppEvents
    • activateApp class method. Replaced by an instance method of the same name that can be accessed on the AppEvents.shared instance.
  • Ability to create new instances of FBSDKGraphErrorRecoveryProcessor without using designated initializers.
  • GraphRequest
    • start(completionHandler:) Replacement - start(completion:)
  • GraphRequestBlock Replacement - GraphRequestCompletion
  • GraphRequestConnection
    • add(_:completionHandler:) Replacement - add(_:completion:)
    • add(_:batchEntryName:completionHandler:) Replacement - add(_:name:completion:)
    • add(_:batchParameters:completionHandler:) Replacement - add(_:parameters:completion:)
  • GamingContext.type
  • GamingImageUploader
    • uploadImage(configuration:andResultCompletionHandler:) Replacement - uploadImage(configuration:andResultCompletion:)
    • uploadImage(configuration:completionHandler:andProgressHandler:) Replacement - uploadImage(configuration:completion:andProgressHandler:)
  • GamingVideoUploader
    • uploadVideo(configuration:andResultCompletionHandler:) Replacement - uploadVideo(configuration:andResultCompletion:)
    • uploadVideo(configuration:completionHandler:andProgressHandler:) Replacement - uploadVideo(configuration:completion:andProgressHandler:)
  • GamingPayload.gameRequestID You can obtain the game request idea from GamingPayloadDelegate.parsedGameRequestURLContaining(_:gameRequestID:)
  • GamingPayloadDelegate.updatedURLContaining(_:) Replacement - GamingPayloadDelegate.parsedGameRequestURLContaining(_:gameRequestID:)
  • GamingPayloadObserver.shared. Instances of this object now must be created with a delegate.
  • GamingServiceResultCompletionHandler Replacement - GamingServiceResultCompletion

Full Changelog

12.0.0

2021-09-27 | Full Changelog

11.2.1

Fixed

  • Fixed the App AEM Advertiser Rule match for fb_content
  • Fixed: 'FBSDKCoreKitImport.h' file not found. (Issue #1829)

2021-09-16 | Full Changelog

11.2.0

Added

  • Added AEM Deeplink handling debugging support

Fixed

  • Support for building with Xcode 13 beta 4 due to change in optionality for NS_EXTENSION_UNAVAILABLE. More information in the Xcode release notes and in issue #1799. Resolved by @S2Ler in #1768

2021-08-30 | Full Changelog

11.1.0

Added

  • Reintroduces initializeSDK method to FBSDKApplicationDelegate

Changed

  • Introduced Xcodegen for generating project files. Moving forward, We will now use Xcodegen to generate the project files that are used to build the SDK releases. There should be no impact to SDK users. However, some build settings were restored to Xcode defaults as a result of this change, and output binaries may be affected in unpredictable ways. Contributors to the SDK should run the new, top-level script generate-projects.sh to ensure that the project files they are using are the same as those being used in CI and for releases. The next major version will remove the project files from version control. If you experience any of these issues, please open an issue and we will look into it.

Deprecated

  • Building the frameworks using Carthage. Carthage is a dependency manager that typically works by building a third party framework using Xcode schemes shared from a .xcodeproj file. We are planning to remove the .xcodeproj files in the next major release as they will be generated on an as needed basis using Xcodegen. There is a strong likelihood that this change will break several integrations that use Carthage. You will still be able to use Carthage by pulling the pre-built binaries or XCFrameworks directly from the release. If this does not work for your use case, we recommend checking out Swift Package Manager as an alternative.
  • FBSDKGamingServicesKit's GamingServiceResultCompletionHandler. Replaced by GamingServiceResultCompletion which passes a dictionary instead of a string for the result. Additionally the following methods have been updated:
    • uploadImageWithConfiguration:andResultCompletionHandler is replaced by uploadImageWithConfiguration:andResultCompletion
    • uploadImageWithConfiguration:completionHandler:andProgressHandler is replaced by uploadImageWithConfiguration:completion:andProgressHandler:
    • uploadVideoWithConfiguration:completionHandler:andProgressHandler: is replaced by uploadVideoWithConfiguration:completion:andProgressHandler:
    • uploadVideoWithConfiguration:andResultCompletionHandler is replaced by uploadVideoWithConfiguration:andResultCompletion
  • FBSDKGamingPayloadObserver's shared instance. Going forward a user should create and retain their own instance of a payload observer for as long as they'd like to receive callbacks from its delegate.

Fixed

  • Initializing the SDK in when UIApplication is unavailable #1748
  • Issue caused by initializeSDK deprecation #1731

2021-07-23 | Full Changelog

11.0.1

Added

  • Add background refresh status logging

Changed

  • No longer automatically showing UI for GraphErrorRecoveryProcessor

Fixed

  • Fix nil completion handler crash - (@revolter in #1768)
  • Fix AEM HMAC generation issue

2021-06-22 | Full Changelog

11.0.0

ATTENTION: The Platform SDK v11.0 release introduces a few key changes to how dependencies will be managed moving forward. These changes are being implemented to drive more efficiency in our development process and reduce an over-reliance on singletons and tight coupling.. As part of these changes, we are currently in the process of converting existing types to use injected dependencies. As a result, many types will no longer be usable until the SDK is initialized. In order to ensure that types are configured correctly before being used, you will need to call FBSDKApplicationDelegate.application:didFinishLaunchingWithOptions: first before attempting to (i) get or set any properties, or (ii) invoke any methods on the SDK.

The source code has been updated to include reminders in the form of exceptions in DEBUG builds across several locations. These reminders will serve as pointers for Developers to call FBSDKApplicationDelegate.application:didFinishLaunchingWithOptions: before using the SDK. For more information see: facebook#1763.

Added

  • Login with Facebook iOS app now populates a shared AuthenticationToken instance.
  • Added Limited Login support for user_hometown, user_location, user_gender and user_link permissions under public beta.
  • Updated Profile on Limited Login to include first, middle and last name as separate fields.
  • Released user_messenger_contact permission to enable Login Connect with Messenger. This new feature allows people to opt in to being contacted by a business on Messenger following the FB Login flow.
  • Added ability to add messenger_page_id param to FBSDKLoginButton and FBSDKLoginConfiguration
  • Added FBSDKApplicationObserving - a protocol for describing types that can optional respond to lifecycle events propagated by ApplicationDelegate
  • Added addObserver: and removeObserver: to FBSDKApplicationDelegate
  • Added startWithCompletion: to FBSDKGraphRequest. Replaces startWithCompletionHandler:
  • Added addRequest:completion to FBSDKGraphRequestConnection. Replaces addRequest:completionHandler:.
  • Added addRequest:name:completion: to FBSDKGraphRequestConnection. Replaces addRequest:batchEntryName:completionHandler:.
  • Added addRequest:parameters:completion: to FBSDKGraphRequestConnection. Replaces addRequest:batchParameters:completionHandler:.
  • Added instance method activateApp to AppEvents.

Deprecated

  • FBSDKGraphRequestBlock. Replaced by FBSDKGraphRequestCompletion which returns an abstract FBSDKGraphRequestConnection in the form id<FBSDKGraphRequestConnecting> (ObjC) or GraphRequestConnecting (Swift)
  • FBSDKGraphRequest's startWithCompletionHandler: replaced by startWithCompletion:
  • FBSDKGraphRequestConnection's addRequest:completionHandler: replaced by addRequest:completion:
  • FBSDKGraphRequestConnection's addRequest:batchEntryName:completionHandler: replaced by addRequest:name:completion:
  • FBSDKGraphRequestConnection's addRequest:batchParameters:completionHandler: replaced by addRequest:parameters:completion:
  • FBSDKGraphRequestBlock
  • Class method AppEvents.activateApp. It is replaced by an instance method of the same name.

Removed

  • FBSDKApplicationDelegate.initializeSDK:launchOptions:. The replacement method is FBSDKApplicationDelegate.application:didFinishLaunchingWithOptions:
  • FBSDKAppEvents' updateUserProperties:handler: method.
  • FBSDKAppEvents's updateUserProperties:handler: method.
  • FBSDKAppLinkReturnToRefererControllerDelegate
  • FBSDKAppLinkReturnToRefererController
  • FBSDKIncludeStatusBarInSize
  • FBSDKAppLinkReturnToRefererViewDelegate
  • FBAppLinkReturnToRefererView
  • FBSDKErrorRecoveryAttempting's attemptRecoveryFromError:optionIndex:delegate:didRecoverSelector:contextInfo:
  • FBSDKProfile's initWithUserID:firstName:middleName:lastName:name:linkURL:refreshDate:imageURL:email:
  • FBSDKProfile's initWithUserID:firstName:middleName:lastName:name:linkURL:refreshDate:imageURL:email:friendIDs:birthday:ageRange:isLimited:
  • FBSDKProfile's initWithUserID:firstName:middleName:lastName:name:linkURL:refreshDate:imageURL:email:friendIDs:
  • FBSDKProfile's initWithUserID:firstName:middleName:lastName:name:linkURL:refreshDate:imageURL:email:friendIDs:birthday:ageRange:
  • FBSDKAccessTokensBlock
  • FBSDKTestUsersManager
  • FBSDKGraphErrorRecoveryProcessor's delegate property
  • FBSDKGraphErrorRecoveryProcessor's didPresentErrorWithRecovery:contextInfo:
  • FBSDKGamingVideoUploader's uploadVideoWithConfiguration:andCompletionHandler:
  • FBSDKGamingImageUploader's uploadImageWithConfiguration:andCompletionHandler:

2021-06-01 | Full Changelog

10.0.0 (Release Skipped)

NOT RELEASED

Reason: The SDK is primarily a means of interacting with the Graph API. The decision was made to skip this version in order to maintain major version parity. Since Graph API is on v11, it did not make sense to release a v10 then immediately release a v11.

9.3.0

Important

Performance Improvements

  • Cocoapods: FBSDKCoreKit rebuilds FacebookSDKStrings.bundle so xcode processes the strings files into binary plist format. This strips comments and saves ~181KB in disk space for apps. #1713

Added

  • Added AEM (Aggregated Events Measurement) support under public beta.
  • Added external_id support in advanced matching.
  • GamingServicesKit changed the Game Request feature flow where if the user has the facebook app installed, they will not see a webview to complete a game request. Instead they will switch to the facebook app and app switch back once the request is sent or the user cancels the dialog.

Fixed

  • Fix for shadowing swift type. #1721
  • Optimization for cached token fetching. See the commit message for more details.
  • Cocoapods with generate_multiple_pod_projects #1709

2021-04-25 | Full Changelog

9.2.0

Added

  • Added Limited Login support for user_friends, user_birthday and user_age_range permissions under public beta.
  • Shared Profile instance will be populated with birthday and ageRange fields using the claims from the AuthenticationToken. (NOTE: birthday and ageRange fields are in public beta mode)
  • Added a convenience initializer to Profile as part of fixing a bug where upgrading from limited to regular login would fail to fetch the profile using the newly available access token.
  • GamingServicesKit added an observer class where if developers set the delegate we will trigger the delegate method with a GamingPayload object if any urls contain gaming payload data. (NOTE: This feature is currently under development)

Fixed

Performance Improvements

  • Added in memory cache for carrier and timezone so they are not dynamically loaded on every didBecomeActive
  • Added cached ASIdentifierManager to avoid dynamic loading on every didBecomeActive
  • Backgrounds the expensive property creation that happens during AppEvents class initialization.
  • Added thread safety for incrementing the serial number used by the logging utility.
  • Added early return to Access Token to avoid unnecessary writes to keychain which can cause performance issues.

Bug Fixes

  • Fixed using CocoaPods with the generate_multiple_pod_projects flag. #1707
  • Adhere to flush behavior for logging completion. Will now only flush events if the flush behavior is explicitOnly.
  • Static library binaries are built with BITCODE_GENERATION_MODE = bitcode to fix errors where Xcode is unable to build apps with bitcode enabled. #1698

Deprecated

  • TestUsersManager. The APIs that back this convenience type still exist but there is no compelling reason to have this be part of the core SDK. See the commit message for more on the rationale.

Removed

  • Internal type AudioResourceLoader.

2021-04-06 | Full Changelog

9.1.0

Added

  • friendIDs property added to FBSDKProfile (NOTE: We are building out the friendIDs property in Limited Login with the intention to roll it out in early spring)
  • FBSDKProfile initializer that includes optional friendIDs argument
  • claims property of type FBSDKAuthenticationTokenClaims added to FBSDKAuthenticationToken

Fixed

  • Build Warnings for SPM with Xcode 12.5 Beta 2 #1661
  • Memory leak in FBSDKGraphErrorRecoveryProcessor
  • Name conflict for Swift version of FBSDKURLSessionTask
  • Avoids call to AppEvents singleton when setting overriding app ID #1647
  • CocoaPods now compiles FBSDKDynamicFrameworkLoader with ARC.
  • CocoaPods now uses static frameworks as the prebuilt libraries for the aggregate FacebookSDK podspec
  • App Events use the correct token if none have been provided manually (@ptxmac#1670

Deprecated

  • FBSDKGraphErrorRecoveryProcessor's delegate property
  • FBSDKGraphErrorRecoveryProcessor's didPresentErrorWithRecovery:contextInfo: method
  • FBSDKAppLinkReturnToRefererView
  • FBSDKAppLinkReturnToRefererController

Removed

  • Internal type FBSDKErrorRecoveryAttempter

2021-02-25 | Full Changelog

9.0.1

Added

  • Add control support for the key FacebookSKAdNetworkReportEnabled in the info.plist
  • Add APIs to control SKAdNetwork Report

Fixed

  • Fix deadlock issue between SKAdNetwork Report and AAM/Codeless
  • Fix default ATE sync for the first app launch
  • Fix build error caused by LoginButton nonce property (@kmcbride in #1616)
  • Fix crash on FBSDKWebViewAppLinkResolverWebViewDelegate (@Kry256 in #1624)
  • Fix XCFrameworks build issue (#1628)
  • Fix deadlock when AppEvents ActivateApp is called without initializing the SDK (#1636)

2021-02-02 | Full Changelog

9.0.0

We have a number of exciting changes in this release! For more information on the v9 release please read our associated blog post!

Added

  • Swift Package Manager now supports Mac Catalyst
  • Limited Login. Please read the blog post and docs for a general overview and implementation details.

Changed

  • The default Graph API version is updated to v9.0
  • The linkURL property of FBSDKProfile will only be populated if the user has granted the user_link permission.
  • FBSDKGamingServicesKit will no longer embed FBSDKCoreKit as a dependency. This may affect you if you are manually integrating pre-built binaries.
  • The aggregate CocoaPod FacebookSDK now vendors XCFrameworks. Note: this may cause conflicts with other CocoaPods that have dependencies on the our libraries, ex: Audience Network. If you encounter a conflict it is easy to resolve by using one or more of the individual library pods instead of the aggregate pod.

Removed

  • The autoInitEnabled option is removed from the SDK. From here on, developers are required to initialize the SDK explicitly with the initializeSDK method or implicitly by calling it in applicationDidFinishLaunching.

Fixed

  • Swift Package Manager Mac Catalyst support #1577

2021-01-05 | Full Changelog

8.2.0

Changed

  • Remove SignalHandler to avoid hiding root cause of crashes caused by fatal signals.
  • Expose functions in FBSDKUserDataStore as public for apps using Audience Network SDK only to use advanced matching.

2020-11-10 | Full Changelog

8.1.0

Added

  • Introduced AppLinkResolverRequestBuilder for use in cleaning up and adding tests around AppLinkResolver

Changed

  • Removed version checks for iOS 9 since it’s the default version now.
  • Refactored AppLinkResolver to use a request builder
  • Refactored and added tests around FBSDKProfile and FBSDKProfilePictureView
  • Updated FBSDKSettings to use ADIdentifierManager for tracking status
  • Removes usages of deprecated UI_USER_INTERFACE_IDIOM()

Fixed

  • Issues with Swift names causing warnings - #1522
  • Fixes bugs related to crash handling - #1444
  • Fixes Carthage distribution to include the correct binary slices when building on Xcode12 - #1484
  • Fixes duplicate symbol for FBSDKVideoUploader bug #1512
  • GET requests now default to having a 'fields' parameter to avoid warnings about missing fields #1403
  • Fixes Multithreading issue related to crash reporting - #1550

2020-10-23 | Full Changelog

8.0.0

Added

  • Added timestamp for install event in iOS 14
  • Added method setAdvertiserTrackingEnabled to overwrite the advertiser_tracking_enabled flag
  • Added SKAdNetwork support for installs
  • Added SKAdNetwork support for conversion value in iOS 14
  • Added FBSDKReferralManager for integrating with the web referral dialog
  • Added method loginWithURL to FBSDKLoginManager for supporting deep link authentication
  • Added E2E tests for all in-market versions of the SDK that run on server changes to avoid regressions

Changed

  • Event handling in iOS 14: will drop events if setAdvertiserTrackingEnabled is called with false in iOS 14
  • FBSDKProfile - imageURLForPictureMode:size: - User profile images will only be available when an access or client token is available

Deprecated

  • FBSDKSettings - isAutoInitEnabled - Auto-initialization flag. Will be removed in the next major release. Future versions of the SDK will not utilize the + load method to automatically initialize the SDK.

Fixed / Patched

  • #1444 - Update crash handling to use sigaction in signal handler and respect SIG_IGN
  • #1447 - Login form automatically closing when SDK is not initialized on startup
  • #1478 - Minimum iOS deployment target is now 9.0
  • #1485 - StoreKit is now added as a weak framework for CocoaPods
  • Bug fix for Advanced Matching, which was not working on iOS 14

2020-09-22 | Full Changelog

7.1.1

Fixed

  • Fix data processing options issue

2020-06-25 | Full Changelog

7.1.0

Added

  • Introduce DataProcessingOptions

Deprecated

  • Remove UserProperties API

2020-06-23 | Full Changelog

7.0.1

🚨🚨🚨Attention! 🚨🚨🚨

This release fixes the ability to parse bad server configuration data. Please upgrade to at least this version to help avoid major outtages such as #1374 and #1427

Added

  • Added additional unit tests for FBSDKRestrictiveDataFilterManager
  • Added integration test for building with xcodebuild
  • Added safer implementation of NSJSONSerialization methods to FBSDKTypeUtility and changed callsites
  • Added 'fuzz' testing class to test our network response parsing won't crash from bad/unexpected values

Fixed

  • Issue #1401
  • Issue #1380
  • Previously, we could not remove AAM data if we opt out some rules. Now, we align with Android AAM and add an internalUserData to save AAM data. And we only send back the data of enabled AAM rules.
  • Fix a bug where we were not updating Event Deactivation or Restrictive Data Filtering if the enable() function was called after the update() function
  • Restrictive data filtering bug where updating filters would exit early on an empty eventInfo parameter.
  • Enabling bitcode by default; we used to disable bitcode globally and enable it for certain versions of iphoneos due to Xcode 6 issue, given we've dropped the support for Xcode 6, it's cleaner to enable bitcode by default.

Changed

  • Now using FBSDKTypeUtility to provide type safety for Dictionaries and Arrays
  • Updates code so that NSKeyedUnarchiver method calls will continue to work no matter what the iOS deployment target is set to.
  • Skips sending back app events when there are no encoded events.

Deprecated

  • MarketingKit

2020-06-08 | Full Changelog

7.0.0

Changed

  • Using version 7.0 of the Facebook Graph API
  • Dropping support for Xcode versions below 11. This is in line with Apple's plans to disallow submission of Apps that do not include the iOS 13 SDK. This means that from v7.0 on, all SDK kits will be built using Xcode 11 and Swift 5.1.
  • Include the enhanced Swift interfaces

This primarily matters for how you include CocoaPods

Distribution Channel Old way New Way
CocoaPods pod 'FBSDKCoreKit/Swift' pod 'FBSDKCoreKit'
Swift Package Manager No change No change
Carthage No change No change

Deprecated

  • FBSDKMarketingKit

2020-05-05 | Full Changelog

6.5.2

  • Various bug fixes

2020-04-29 | Full Changelog

6.5.1

Fixed

  • The Swift interface for SharingDelegate should not have a nullable error in the callback.
  • Fixes issue with login callback during backgrounding.
  • Minor fixes related to Integrity

2020-04-23 | Full Changelog

6.5.0

Added

  • More usecase for Integrity is supported.

2020-04-20 | Full Changelog

6.4.0

Added

FBSDKMessageDialog now accepts FBSDKSharePhotoContent.

FBSDKGamingServicesKit/FBSDKGamingImageUploader.h uploadImageWithConfiguration:andResultCompletionHandler: uploadImageWithConfiguration:completionHandler:andProgressHandler:

FBSDKGamingServicesKit/FBSDKGamingVideoUploader.h uploadVideoWithConfiguration:andResultCompletionHandler: uploadVideoWithConfiguration:completionHandler:andProgressHandler:

Deprecated

FBSDKGamingServicesKit/FBSDKGamingImageUploader.h uploadImageWithConfiguration:andCompletionHandler:

FBSDKGamingServicesKit/FBSDKGamingVideoUploader.h uploadVideoWithConfiguration:andCompletionHandler:

2020-03-25 | Full Changelog

Changed

Various bug fixes, CI improvements

6.3.0

Added

  • Support new event type for suggested events

2020-03-25 | Full Changelog

6.2.0

Added

  • Support for Gaming Video Uploads
  • Allow Gaming Image Uploader to accept a callback
  • Messenger Sharing

2020-03-09 | Full Changelog

6.0.0

Updated

  • Uses API version 6.0 by default

Fixed

  • FBSDKShareDialog delegate callbacks on apps using iOS 13

Removed

ShareKit

  • Facebook Messenger Template and OpenGraph Sharing
  • FBSDKMessengerActionButton
  • FBSDKShareMessengerGenericTemplateContent
  • FBSDKShareMessengerGenericTemplateElement
  • FBSDKShareMessengerMediaTemplateMediaType
  • FBSDKShareMessengerMediaTemplateContent
  • FBSDKShareMessengerOpenGraphMusicTemplateContent
  • FBSDKShareMessengerURLActionButton
  • FBSDKShareAPI since it exists to make sharing of open graph objects easier. It also requires the deprecated publish_actions permission which is deprecated.
  • Property pageID from FBSDKSharingContent since it only applies to sharing to Facebook Messenger
  • FBSDKShareOpenGraphAction
  • FBSDKShareOpenGraphContent
  • FBSDKShareOpenGraphObject
  • FBSDKShareOpenGraphValueContainer

CoreKit

  • FBSDKSettings property instrumentEnabled
  • Sharing of open graph objects. This is because the "publish_actions" permission is deprecated so we should not be providing helper methods that encourage its use. For more details see: https://developers.facebook.com/docs/sharing/opengraph
  • FBSDKAppEventNameSubscriptionHeartbeat

LoginKit

  • FBSDKLoginBehavior Login flows no longer support logging in through the native application. This change reflects that.

2020-02-03 | Full Changelog

5.15.1

Fixed

  • fix multi-thread issue for Crash Report
  • fix write to file issue for Crash Report

2020-01-28 | Full Changelog

5.15.0

Fixed

  • fix for CocoaPods (i.e. macro FBSDKCOCOAPODS)
  • fixes a bug in for sharing callbacks for apps using SceneDelegate

2020-01-21 | Full Changelog

5.14.0

Added

  • SPM Support for tvOS

Fixed

  • fix for CocoaPods static libs (i.e. no use-frameworks!)
  • various bug fixes and unit test additions

2020-01-14 | Full Changelog

5.13.1

Fixed

  • bug fix for address inferencer weights load

2019-12-16 | Full Changelog

5.13.0

2019-12-11 | Full Changelog

Added

  • Parameter deactivation

Fixed

  • Update ML model to support non-English input

5.12.0

Changed

  • Updated suggested events

2019-12-03 | Full Changelog

5.11.1

2019-11-19 | Full Changelog

Fixed

  • Accelerate automatically linked for SPM installs 6c1a7e
  • Fixes building for Unity 6a83270
  • Updates build scripts, various bug fixes

5.11.0

2019-11-14 | Full Changelog

Added

  • Launch event suggestions

5.10.1

2019-11-12 | Full Changelog

Fixed

  • Various bugfixes with SPM implementation

5.10.0

2019-11-06 | Full Changelog

Added

  • Support for Swift Package Manager

5.9.0

2019-10-29 | Full Changelog

Changed

  • Using Graph API version 5.0

5.8.0

2019-10-08 | Full Changelog

Added

5.7.0

2019-09-30 | Full Changelog

Changed

  • Nullability annotation in FBSDKCoreKit

Fixed

  • Various bug fixes
  • Build scripts (for documentation and to support libraries that include Swift)

5.6.0

2019-09-13 | Full Changelog

Changed

  • Fixed FB Login for multi-window apps that created via Xcode 11
  • Added support for generate_multiple_pod_projects for cocoapods 1.7.0
  • Improved performance and stability of crash reporting
  • Added user agent suffix for macOS

Fixed

  • Various bug fixes

5.5.0

2019-08-30 | Full Changelog

Changed

  • Replaced UIWebView with WKWebView as Apple will stop accepting submissions of apps that use UIWebView APIs
  • Added support for Catalyst

Fixed

  • Various bug fixes

5.4.1

2019-08-21 | Full Changelog

Changed

  • Deprecated +[FBSDKSettings isInstrumentEnabled], please use +[FBSDKSettings isAutoLogEnabled] instead

Fixed

  • Fix Facebook Login for iOS 13 beta
  • Various bug fixes

5.4.0

2019-08-15 | Full Changelog

Changed

  • Add handling for crash and error to make SDK more stable

5.3.0

2019-07-29 | Full Changelog

Changed

  • Graph API update to v4.0

5.2.3

2019-07-15 | Full Changelog

Fixed

  • Fixed Facebook Login issues

5.2.2

2019-07-14 | Full Changelog

Fixed

  • Fixed Facebook Login on iOS 13 beta
  • Various bug fixes

5.2.1

2019-07-02 | Full Changelog

Fixed

  • Various bug fixes

5.2.0

2019-06-30 | Full Changelog

Fixed

  • Fixed a crash caused by sensitive data filtering
  • Fixed FB Login for iOS 13

5.1.1

2019-06-22 | Full Changelog

5.1.0

2019-06-21 | Full Changelog

5.0.2

2019-06-05 | Full Changelog

Fixed

  • Various bug fixes

5.0.1

2019-05-21 | Full Changelog

Fixed

  • Various bug fixes

5.0.0

2019-04-30 | Full Changelog

Added

  • support manual SDK initialization

Changed

  • extend coverage of AutoLogAppEventsEnabled flag to all internal analytics events

Added

  • Typedefs for public Objective-C blocks
  • NS_DESIGNATED_INITIALIZER for required inits
  • NS_TYPED_EXTENSIBLE_ENUM where made sense
  • getter name for certain properties, like booleans
  • NS_ASSUME_NONNULL_BEGIN, NS_ASSUME_NONNULL_END, and other nullability annotations
  • Generics for Arrays, Sets, and Dictionaries
  • NS_SWIFT_NAME to remove the FBSDK prefix where necessary (left FB prefix for UI elements)
  • FBSDKLoginManager -logInWithPermissions:fromViewController:handler:
  • FBSDKLoginButton permissions
  • FBSDKDeviceLoginButton permissions
  • FBSDKDeviceLoginViewController permissions
  • New FBSDKAppEventName values

Changed

  • Using instancetype for inits
  • All NSError ** translate to throws on Swift
  • Updated Xcode Projects and Schemes to most Valid Project settings
  • Getter methods changed to readonly properties
  • Getter/Setter methods changed to readwrite properties
  • Dot notation for access to properties
  • Collections/Dictionaries became non null when at all possible
  • Class creation methods become Swift inits
  • Used NS_REFINED_FOR_SWIFT where advisable

Deprecated

  • FBSDKLoginManager -logInWithReadPermissions:fromViewController:handler:
  • FBSDKLoginManager -logInWithWritePermissions:fromViewController:handler:
  • FBSDKLoginButton readPermissions
  • FBSDKLoginButton writePermissions
  • FBSDKDeviceLoginButton readPermissions
  • FBSDKDeviceLoginButton writePermissions
  • FBSDKDeviceLoginViewController readPermissions
  • FBSDKDeviceLoginViewController writePermissions
  • FBSDKUtility SHA256HashString
  • FBSDKUtility SHA256HashData

Removed

  • Deprecated methods
  • Deprecated classes
  • Deprecated properties
  • Made init and new unavailable where necessary
  • Used NS_SWIFT_UNAVAILABLE where necessary

Fixed

  • Various bug fixes

5.X Upgrade Guide

All Developers

  • Light-weight generics have been added for Arrays, Sets, and Dictionaries. Make sure you're passing in the proper types.
  • Some methods used to have closures as arguments, but did not have them as the final argument. All these methods have been rearranged to have the closure as the final argument.

ObjC Developers

  • Certain string values, like App Event Names and HTTP Method, have been made NSString typedef with the NS_TYPED_EXTENSIBLE_ENUM attribute. All your existing code should work just fine.

Swift Developers

  • NS_SWIFT_NAME was applied where applicable. Most of these changes Xcode can fix automatically.
    • The FBSDK prefix for UI elements has been replaced with the simpler FB prefix.
    • The FBSDK prefix for all other types has been removed.
    • FBSDKError is now CoreError.
  • NS_ERROR_ENUM is used to handling errors now. For more details, view Apple's documentation on Handling Cocoa Errors in Swift.
  • Certain string values, like App Event Names and HTTP Method, have been made extensible structs with the NS_TYPED_EXTENSIBLE_ENUM attribute:
    • FBSDKAppEventNamePurchased -> AppEvents.Name.purchased
    • "custom_app_event" -> AppEvents.Name("custom_app_event")
  • Certain values have been annotated with NS_REFINED_FOR_SWIFT and can be customized via either:
    1. The Facebook SDK in Swift (Beta)
    2. Implementing custom extensions
// Custom extensions
public extension AccessToken {
  var permissions: Set<String> {
    return Set(__permissions)
  }
}

extension AppEvents.Name {
  static let customAppEvent = AppEvents.Name("custom_app_event")
}

extension ShareDialog.Mode: CustomStringConvertible {
  public var description: String {
    return __NSStringFromFBSDKShareDialogMode(self)
  }
}

// Later in code
let perms: Set<String> = AccessToken(...).permissions

let event: AppEvents.Name = .customAppEvent

let mode: ShareDialog.Mode = .native
let description: String = "\(mode)"

4.44.1

2019-04-11 | Full Changelog

Fixed

  • _inBackground now indicates correct application state

4.44.0

2019-04-02 | Full Changelog

Added

  • Add parameter _inBackground for app events

Fixed

  • Various bug fixes

4.43.0

2019-04-01 | Full Changelog

Added

  • Support for Xcode 10.2

Deprecated

  • FBSDKLoginBehaviorNative
  • FBSDKLoginBehaviorSystemAccount
  • FBSDKLoginBehaviorWeb
  • [FBSDKLoginManager renewSystemCredentials]

Fixed

  • Various bug fixes

4.42.0

2019-03-20 | Full Changelog

Changed

  • Moved directory structure for better separation

Fixed

  • Various bug fixes

4.41.2

2019-03-18 | Full Changelog

Fixed

  • Resolved issues with the release process
  • Various bug fixes

4.41.1

2019-03-18 | Full Changelog

Fixed

  • Resolved build failures with Carthage and Cocoapods
  • Various bug fixes

4.41.0

2019-03-13 | Full Changelog

Fixed

  • Various bug fixes

4.40.0

2019-01-17 | Full Changelog

Fixed

  • Various bug fixes

4.39.1

2019-01-08 | Full Changelog | Facebook Developer Docs Changelog