Changelog History
Page 2
-
v12.0.1 Changes
Note: Binaries for v12.0.1 were built with Xcode 13 and will not work with Xcode 12. See #1911. Use release v12.0.2 instead.
- 🛠 Fixed: Share Dialog not presenting for SDK 12.0.0 including for the FacebookShareSample app #1909
-
v12.0.0 Changes
- 👍 The minimum supported version of iOS is now 10.0.
- Formalized the shared instance of
AppEvents
(given the property nameshared
) to start moving away from a class-based interface. FacebookGamingServices
andFBSDKGamingServicesKit
— There are two libraries related to Gaming Services.FBSDKGamingServicesKit
is a superset ofFacebookGamingServices
that includes Objective-C wrapper classes forFBSDKContextDialogPresenter
andFBSDKContextDialogPresenter
. If you don't need an Objective-C interface for these types, we recommend that you use onlyFacebookGamingServices
.- 👀 Nullability annotations are added to some types. If you are using Swift (and in some cases Objective-C) and you use a newly annotated type, see the warnings in Xcode for more information.
The following table contains changes to the iOS SDK in version 12.0.0.
🚚 |Removed or Changed|Version 12.0.0 Replacement or Change| |-|-| |
AccessToken
convenience initializers that includegraphDomain
|—| |AccessToken.graphDomain
class property.|AccessToken.graphDomain
instance property.| |AccessToken.refreshCurrentAccessToken(completionHandler:)
|AccessToken.refreshCurrentAccessToken(completion:)
| |AppEvents.activateApp
class method.|AppEvents.activateApp
instance method that you access on theAppEvents.shared
instance.| |FBSDKGraphErrorRecoveryProcessor
- you can no longer create new instances without using designated initializers.|—| |GamingContext.type
|—| 🔧 |GamingImageUploader.uploadImage(configuration:andResultCompletionHandler:)
|GamingImageUploader.uploadImage(configuration:andResultCompletion:)
| 🔧 |GamingImageUploader.uploadImage(configuration:completionHandler:andProgressHandler:)
|GamingImageUploader.uploadImage(configuration:completion:andProgressHandler:)
| 🛰 |GamingPayload.gameRequestID
|You can obtain the game request ID fromGamingPayloadDelegate.parsedGameRequestURLContaining(_:gameRequestID:)
| 🛰 |GamingPayloadDelegate.updatedURLContaining(_:)
|GamingPayloadDelegate.parsedGameRequestURLContaining(_:gameRequestID:)
| 🛰 |GamingPayloadObserver.shared
|You must now create instances of this object by using a delegate.| |GamingServiceResultCompletionHandler
|GamingServiceResultCompletion
| 🔧 |GamingVideoUploader.uploadVideo(configuration:andResultCompletionHandler:)
|GamingVideoUploader.uploadVideo(configuration:andResultCompletion:)
| 🔧 |GamingVideoUploader.uploadVideo(configuration:completionHandler:andProgressHandler:)
|GamingVideoUploader.uploadVideo(configuration:completion:andProgressHandler:)
| |GraphRequest.start(completionHandler:)
|GraphRequest.start(completion:)
| |GraphRequestBlock
|GraphRequestCompletion
| |GraphRequestConnection.add(_:completionHandler:)
|GraphRequestConnection.add(_:completion:)
| |GraphRequestConnection.add(_:batchEntryName:completionHandler:)
|GraphRequestConnection.add(_:name:completion:)
| |GraphRequestConnection.add(_:batchParameters:completionHandler:)
|GraphRequestConnection.add(_:parameters:completion:)
| -
v11.2.1 Changes
🛠 Fixed
- 🛠 Fixed the App AEM Advertiser Rule match for fb_content
- 🛠 Fixed: 'FBSDKCoreKitImport.h' file not found. (Issue #1829)
-
v11.2.0 Changes
➕ 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
-
v11.1.0 Changes
➕ Added
- Reintroduces
initializeSDK
method toFBSDKApplicationDelegate
🔄 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 byGamingServiceResultCompletion
which passes a dictionary instead of a string for the result. Additionally the following methods have been updated:uploadImageWithConfiguration:andResultCompletionHandler
is replaced byuploadImageWithConfiguration:andResultCompletion
uploadImageWithConfiguration:completionHandler:andProgressHandler
is replaced byuploadImageWithConfiguration:completion:andProgressHandler:
uploadVideoWithConfiguration:completionHandler:andProgressHandler:
is replaced byuploadVideoWithConfiguration:completion:andProgressHandler:
uploadVideoWithConfiguration:andResultCompletionHandler
is replaced byuploadVideoWithConfiguration:andResultCompletion
- 🛰
FBSDKGamingPayloadObserver
'sshared
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
- Reintroduces
-
v11.0.1 Changes
➕ Added
- ➕ Add background refresh status logging
🔄 Changed
- 💻 No longer automatically showing UI for GraphErrorRecoveryProcessor
🛠 Fixed
-
v11.0.0 Changes
🚀 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 callFBSDKApplicationDelegate.application:didFinishLaunchingWithOptions:
before using the SDK. For more information see: https://github.com/facebook/facebook-ios-sdk/issues/1763.➕ Added
- Login with Facebook iOS app now populates a shared
AuthenticationToken
instance. - Added Limited Login support for
user_hometown
,user_location
,user_gender
anduser_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 toFBSDKLoginButton
andFBSDKLoginConfiguration
- ➕ Added
FBSDKApplicationObserving
- a protocol for describing types that can optional respond to lifecycle events propagated byApplicationDelegate
- ➕ Added
addObserver:
andremoveObserver:
toFBSDKApplicationDelegate
- ➕ Added
startWithCompletion:
toFBSDKGraphRequest
. ReplacesstartWithCompletionHandler:
- ➕ Added
addRequest:completion
toFBSDKGraphRequestConnection
. ReplacesaddRequest:completionHandler:
. - ➕ Added
addRequest:name:completion:
toFBSDKGraphRequestConnection
. ReplacesaddRequest:batchEntryName:completionHandler:
. - ➕ Added
addRequest:parameters:completion:
toFBSDKGraphRequestConnection
. ReplacesaddRequest:batchParameters:completionHandler:
. - ➕ Added instance method
activateApp
toAppEvents
.
🗄 Deprecated
FBSDKGraphRequestBlock
. Replaced byFBSDKGraphRequestCompletion
which returns an abstractFBSDKGraphRequestConnection
in the formid<FBSDKGraphRequestConnecting>
(ObjC) orGraphRequestConnecting
(Swift)FBSDKGraphRequest
'sstartWithCompletionHandler:
replaced bystartWithCompletion:
FBSDKGraphRequestConnection
'saddRequest:completionHandler:
replaced byaddRequest:completion:
FBSDKGraphRequestConnection
'saddRequest:batchEntryName:completionHandler:
replaced byaddRequest:name:completion:
FBSDKGraphRequestConnection
'saddRequest:batchParameters:completionHandler:
replaced byaddRequest: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 isFBSDKApplicationDelegate.application:didFinishLaunchingWithOptions:
- ⚡️
FBSDKAppEvents
'updateUserProperties:handler:
method. - ⚡️
FBSDKAppEvents
'supdateUserProperties:handler:
method. FBSDKAppLinkReturnToRefererControllerDelegate
FBSDKAppLinkReturnToRefererController
FBSDKIncludeStatusBarInSize
FBSDKAppLinkReturnToRefererViewDelegate
FBAppLinkReturnToRefererView
FBSDKErrorRecoveryAttempting
'sattemptRecoveryFromError:optionIndex:delegate:didRecoverSelector:contextInfo:
FBSDKProfile
'sinitWithUserID:firstName:middleName:lastName:name:linkURL:refreshDate:imageURL:email:
FBSDKProfile
'sinitWithUserID:firstName:middleName:lastName:name:linkURL:refreshDate:imageURL:email:friendIDs:birthday:ageRange:isLimited:
FBSDKProfile
'sinitWithUserID:firstName:middleName:lastName:name:linkURL:refreshDate:imageURL:email:friendIDs:
FBSDKProfile
'sinitWithUserID:firstName:middleName:lastName:name:linkURL:refreshDate:imageURL:email:friendIDs:birthday:ageRange:
FBSDKAccessTokensBlock
- ✅
FBSDKTestUsersManager
FBSDKGraphErrorRecoveryProcessor
'sdelegate
propertyFBSDKGraphErrorRecoveryProcessor
'sdidPresentErrorWithRecovery:contextInfo:
FBSDKGamingVideoUploader
'suploadVideoWithConfiguration:andCompletionHandler:
FBSDKGamingImageUploader
'suploadImageWithConfiguration:andCompletionHandler:
- Login with Facebook iOS app now populates a shared
-
v10.0.0 Changes
🚀 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.
-
v9.3.0 Changes
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
-
v9.2.0 Changes
➕ Added
- Added Limited Login support for
user_friends
,user_birthday
anduser_age_range
permissions under public beta. - Shared Profile instance will be populated with
birthday
andageRange
fields using the claims from theAuthenticationToken
. (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 aGamingPayload
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 everydidBecomeActive
- 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
.
- Added Limited Login support for