Summary: Bump SDK Version to 17.0.0 Reviewed By: jjiang10 Differential Revision: D53864621 fbshipit-source-id: 218006151196c7d2a4432e0ddd28a4e982b6aca3
71 KiB
Changelog
All notable changes to this project are documented in this file.
This project adheres to Semantic Versioning.
| ⚠️ Be Advised ⚠️ |
|---|
We have begun rewriting the iOS SDK in Swift in order to modernize the code base. Please monitor the changelog for updates to existing interfaces but keep in mind that some interfaces will be unstable during this process. As such, updating to a minor version may introduce compilation issues related to language interoperability. Please bear with us as we work towards providing an improved experience for integrating with the Facebook platform. |
Unreleased
17.0.0
16.4.0
Added
- More support on integrity
16.3.1
16.2.1
16.2.0
Changed
- Update the implementation for SKAdNetwork to use the latest Apple API
16.1.3
16.1.2
16.1.1
Fixed
- Fix App AEM AutoSetup
- Fix ATE status publishing issue
16.1.0
Fixed
- Fix CAPI-G module
16.0.1
Changed
- Flushed events if AEM Campaign ID is found
16.0.0
Added
- Added AEM Auto Setup
15.1.0
Changed
- The enum
AppLinkNavigation.Typetype has been renamed tpAppLinkNavigationType. - The initializer
init(appLink:extras:appLinkData:settings:)inAppLinkNavigationignores thesettingsargument if one is passed. - The method
navigation(with:extras:appLinkData:settings:)inAppLinkNavigationignores thesettingsargument if one is passed.
Deprecated
- The
navigation(with:extras:appLinkData:settings:)method inAppLinkNavigationis deprecated in favor of theinit(appLink:extras:appLinkData:)designated init. - The
init(appLink:extras:appLinkData:settings:)initializer inAppLinkNavigationis deprecated in favor of theinit(appLink:extras:appLinkData:)designated init. - The
Profile.enableUpdatesOnAccessTokenChange(_:)method is deprecated in favor of theProfile.isUpdatedWithAccessTokenChangeproperty. SettingsProtocol.codelessDebugLogEnabledis deprecated in favor ofSettingsProtocol.isCodelessDebugLogEnabled.SettingsProtocol.advertiserIDCollectionEnabledis deprecated in favor ofSettingsProtocol.isAdvertiserIDCollectionEnabled.SettingsProtocol.advertiserTrackingEnabledis deprecated in favor ofSettingsProtocol.isAdvertiserTrackingEnabled.SettingsProtocol.graphAPIDebugParamValueis deprecated in favor of its new nameSettingsProtocol.graphAPIDebugParameterValueSettings.autoLogAppEventsEnabledis deprecated in favor ofSettings.isAutoLogAppEventsEnabled.
Renamed
SettingsProtocol.graphAPIDebugParamValuehas been renamed toSettingsProtocol.graphAPIDebugParameterValue
Removed
Profileconformance toNSCopyinghas been removed as well as custom hashability and equatability.
Fixed
- The documentation for the property list-backed value
Settings.isCodelessDebugLogEnabledhas been corrected to indicate that the default value isfalse.
15.0.0
Changed
- The minimum supported version of iOS and tvOS is now 12.0.
Deprecated
- Support for tvOS is now deprecated and will be removed in Version 16.
Removed
- Support for bitcode. Bitcode is no longer needed or supported by Apple as of Xcode 14 - https://developer.apple.com/documentation/xcode-release-notes/xcode-14-release-notes
Improved
- Binary artifact sizes are now smaller.
14.1.0
Fixed
- Fixed GitHub Issue #2082.
Added
- Added server-side AEM rule matching
14.0.0
Removed
- Removed deprecated
AEMReporter.configure(networker:appID:)method. - Removed deprecated
ContextDialogPresenter.showCreateContextDialog(withContent:delegate:)method. - Removed deprecated
ContextDialogPresenter.showSwitchContextDialog(withContent:delegate:)method. - Removed deprecated
ContextDialogPresenter.showChooseContextDialog(withContent:delegate:)method. - Removed deprecated
ContextDialogPresenter.showChooseContextDialog(with:delegate:)method. - Removed deprecated
ContextDialogPresenter.createContextDialog(withContent:delegate:)method. - Removed deprecated
ContextDialogPresenter.switchContextDialog(withContent:delegate:)method. - Removed deprecated
SwitchContextDialog.dialog(content:windowFinder:delegate:)method. - Removed deprecated
LoginConfiguration.authType(for:)method. - Removed internal
AuthenticationTokenSettingsprotocol.
Changed
- Made
LoginManagerLoginResult.tokenimmutable. - Made
LoginManagerLoginResult.authenticationTokenimmutable. - Made
LoginManagerLoginResult.isCancelledimmutable. - Made
LoginManagerLoginResult.grantedPermissionsimmutable. - Made
LoginManagerLoginResult.declinedPermissionsimmutable. - Made
AccessToken.currentAccessTokenuse a Swift name ofcurrent. - Made
AuthenticationToken.currentAuthenticationTokenuse a Swift name ofcurrent. - Renamed
SharingValidationprotocol toSharingValidatable. - Corrected type definition for
FBSDKUserIdentifierto beNSString *instead ofNSStringfor Swift compatibility.
13.2.0
Fixed
- Fixed an issue in native sharing where hashtags are not automatically added to a post.
13.1.0
13.0.0
Notable Changes
Supported platform versions have been updated
The minimum supported version of iOS is now 11.0 for all frameworks. The minimum supported version of tvOS is now 11.0 for all frameworks. The XCFramework binaries are now built with Xcode 13 so Xcode 12 is no longer supported.
Client Tokens are now required
Starting with the v13.0 release, client tokens must be included in apps for Graph API calls. An exception is now raised when running apps without a client token. See the instructions for more information.
Swift conversions
A number of types have been converted from Objective-C to Swift. As a consequence, developers may need to use modular import statements when using GamingServicesKit and a majority of ShareKit in order to avoid encountering compilation errors in Objective-C.
// When importing a framework in this form:
#import <FBSDKShareKit/FBSDKShareKit.h>
// You may be need to update to this form when unknown symbol warnings appear:
@import FBSDKShareKit;
Reduced use of Objective-C value-type practices
We have further reduced the use of Objective-C value-type practices in ShareKit. ShareKit content types will no longer implement the following behaviors:
- conformance to the
NSCopyingprotocol - custom hashability and equatability
- conformance to
NSSecureCoding
Additional strong typing of app event reporting methods
More app event reporting interfaces now use formal app event names and parameter names. Developers working in Swift code are required to use AppEvents.Name and AppEvents.ParameterName instances to represent app event names and app event parameter names, respectively.
The example below works without changes in Objective-C:
NSDictionary<NSString *, id> *parameters = @{
FBSDKAppEventParameterNameNumItems: @5,
@"custom_parameter": @"special info"
};
[FBSDKAppEvents logEvent:FBSDKAppEventNamePurchased
parameters:parameters];
This next example is how it would look in Swift for an updated API:
let parameters: [AppEvents.ParameterName: Any] = [
.numItems: 5,
.init("custom_parameter"): "special info"
]
AppEvents.logEvent(.purchased, parameters: parameters)
Changed
- Renamed
frictionlessRequestsEnabledproperty onGameRequestDialogin Objective-C; useisFrictionlessRequestsEnabledandsetIsFrictionlessRequestsEnabled:instead. - Corrected nullability of
contentURLin protocolSharingContent - Renamed
AppInviteDestinationtoAppInviteContent.Destination - Renamed
userGeneratedproperty onSharePhotoin Objective-C; useisUserGeneratedandsetIsUserGenerated:instead.
Deprecated
- Deprecated the
FacebookGamingServicesCocoaPod; please use theFBSDKGamingServicesKitpod instead. SPM users should continue to useFacebookGamingServices.
Moved
A few types have been moved from FBSDKShareKit to FBSDKGamingServicesKit. If you were using any of these you will have to add @import FBSDKGamingServicesKit in order to access these:
- GameRequestActionType
- GameRequestContent
- GameRequestDialog
- GameRequestDialogDelegate
- GameRequestFilter
- GameRequestFrictionlessRecipientCache
- GameRequestURLProvider
Removed
- Removed
NSObjectProtocolconformance/inheritance from multiple types in ShareKit. - Removed deprecated
SDKErrortype;ErrorFactoryand/orNetworkErrorCheckershould be used instead. - Removed deprecated
ReferralCode,ReferralManager,ReferralManagerResultand related classes. - Removed unused
AppGroupContentclass,AppGroupPrivacyenum andNSStringFromFBSDKAppGroupPrivacyfunction. - Removed
SharingSchemeprotocol from ShareKit - Removed deprecated
logInWithURL:handlerfromLoginManager - Removed deprecated
initandnewmethods fromAppInviteContent - Removed deprecated
AppLinkResolverRequestBuilder - Removed deprecated URL schemes
.facebookApp,.facebookShareExtensionand.masqueradePlayer; use.facebookAPIinstead. - Removed deprecated
initandnewmethods fromCrashHandler - Removed
initandnewmethods fromMessageDialog; useinit(content:delegate:)instead. - Removed deprecated
initandnewmethods fromLogger - Removed deprecated
initandnewmethods fromFBSDKURLSession - Removed
initandnewmethods fromShareDialog; useinit(viewController:content:delegate:)instead. - Removed
initandnewfromShareCameraEffectContent; useinit(effectID:contentURL:)instead. - Removed deprecated
init(appLink:extras:appLinkData:)fromAppLinkNavigation; useinit(appLink:extras:appLinkData:settings:)instead". - Removed class-based factory methods for
SharePhoto:+photoWithImage:userGenerated:,+photoWithImageURL:userGenerated:,+photoWithPhotoAsset:userGenerated:. Also removedinitandnew; use the new convenience initializers instead. - Removed class-based factory methods for
ShareVideo:+videoWithData:,+videoWithData:previewPhoto:,+videoWithVideoAsset:,+videoWithVideoAsset:previewPhoto:,+videoWithVideoURL:,+videoWithVideoURL:previewPhoto:. Also removedinitandnew; use the new convenience initializers instead. - Removed
videoURLproperty fromPHAsset. - Removed
isEqualToHashtag:andhashtagWithString:methods from Hashtag. UseisEqual:andinitWithString:instead.
AppEvents deprecations
Use AppEvents.shared in places where AppEvents was used before. (Many class methods and properties in AppEvents have been deprecated in favor of their instance-based equivalents.)
- Removed deprecated
AppEvents.flushBehavior(useAppEvents.shared.flushBehaviorinstead) - Removed deprecated
AppEvents.loggingOverrideAppID(useAppEvents.shared.loggingOverrideAppIDinstead) - Removed deprecated
AppEvents.userID(useAppEvents.shared.userIDinstead) - Removed deprecated
AppEvents.anonymousID(useAppEvents.shared.anonymousIDinstead) - Removed deprecated
AppEvents.logEvent(_:)(useAppEvents.shared.logEvent(_:)instead) - Removed deprecated
AppEvents.logEvent(_:valueToSum:)(useAppEvents.shared.logEvent(_:valueToSum:)instead) - Removed deprecated
AppEvents.logEvent(_:parameters:)(useAppEvents.shared.logEvent(_:parameters:)instead) - Removed deprecated
AppEvents.logEvent(_:valueToSum:parameters:)(useAppEvents.shared.logEvent(_:valueToSum:parameters:)instead) - Removed deprecated
AppEvents.logEvent(_:valueToSum:parameters:accessToken:)(useAppEvents.shared.logEvent(_:valueToSum:parameters:accessToken:)instead) - Removed deprecated
AppEvents.logPurchase(_:currency:)(useAppEvents.shared.logPurchase(amount:currency:)instead) - Removed deprecated
AppEvents.logPurchase(_:currency:parameters:)(useAppEvents.shared.logPurchase(amount:currency:parameters:)instead) - Removed deprecated
AppEvents.logPurchase(_:currency:parameters:accessToken:)(useAppEvents.shared.logPurchase(amount:currency:parameters:accessToken:)instead) - Removed deprecated
AppEvents.logPushNotificationOpen(_:)(useAppEvents.shared.logPushNotificationOpen(payload:)instead) - Removed deprecated
AppEvents.logPushNotificationOpen(_:action:)(useAppEvents.shared.logPushNotificationOpen(payload:action:)instead) - Removed deprecated
AppEvents.logProductItem(_:availability:condition:description:imageLink:link:title:priceAmount:currency:gtin:mpn:brand:parameters:)(useAppEvents.shared.logProductItem(id:availability:condition:description:imageLink:link:title:priceAmount:currency:gtin:mpn:brand:parameters:)instead) - Removed deprecated
AppEvents.setPushNotificationsDeviceToken(_:)(useAppEvents.shared.setPushNotificationsDeviceToken(_:)instead) - Removed deprecated
AppEvents.setPushNotificationsDeviceToken(_:)(useAppEvents.shared.setPushNotificationsDeviceToken(_:)instead) - Removed deprecated
AppEvents.flush()(useAppEvents.shared.flush()instead) - Removed deprecated
AppEvents.requestForCustomAudienceThirdPartyID(with:)(useAppEvents.shared.requestForCustomAudienceThirdPartyID(accessToken:)instead) - Removed deprecated
AppEvents.clearUserIDis deprecated and will be removed in the next major release, please setAppEvents.shared.userIDtonilinstead) - Removed deprecated
AppEvents.augmentHybridWKWebView(_:)(useAppEvents.shared.augmentHybridWebView(_:)instead) - Removed deprecated
AppEvents.setIsUnityInit(_:)(useAppEvents.shared.setIsUnityInitialized(_:)instead) - Removed deprecated
AppEvents.sendEventBindingsToUnity()(useAppEvents.shared.sendEventBindingsToUnity()instead) - Removed deprecated
AppEvents.setUser(email:firstName:lastName:phone:dateOfBirth:gender:city:state:zip:country:)(useAppEvents.shared.setUser(email:firstName:lastName:phone:dateOfBirth:gender:city:state:zip:country:)instead) - Removed deprecated
AppEvents.clearUserData()(useAppEvents.shared.clearUserData()instead) - Removed deprecated
AppEvents.getUserData()(useAppEvents.shared.getUserData()instead) - Removed deprecated
AppEvents.setUserData(_:forType:)(useAppEvents.shared.setUserData(_:forType:)instead) - Removed deprecated
AppEvents.clearUserDataForType(_:)(useAppEvents.shared.clearUserDataForType(_:)instead)
Settings deprecations
Use Settings.shared in places where Settings was used before. (Many class methods and properties in FBSDKSettings have been deprecated in favor of their instance-based equivalents.)
- Removed deprecated
Settings.sdkVersion(useSettings.shared.sdkVersioninstead") - Removed deprecated
Settings.defaultGraphAPIVersion(useSettings.shared.defaultGraphAPIVersioninstead") - Removed deprecated
Settings.JPEGCompressionQuality(useSettings.shared.JPEGCompressionQualityinstead") - Removed deprecated
Settings.isAutoLogAppEventsEnabled(useSettings.shared.isAutoLogAppEventsEnabledinstead") - Removed deprecated
Settings.isCodelessDebugLogEnabled(useSettings.shared.isCodelessDebugLogEnabledinstead") - Removed deprecated
Settings.isAdvertiserIDCollectionEnabled(useSettings.shared.isAdvertiserIDCollectionEnabledinstead") - Removed deprecated
Settings.isSKAdNetworkReportEnabled(useSettings.shared.isSKAdNetworkReportEnabledinstead") - Removed deprecated
Settings.shouldLimitEventAndDataUsage(useSettings.shared.isEventDataUsageLimitedinstead") - Removed deprecated
Settings.shouldUseCachedValuesForExpensiveMetadata(useSettings.shared.shouldUseCachedValuesForExpensiveMetadatainstead") - Removed deprecated
Settings.isGraphErrorRecoveryEnabled(useSettings.shared.isGraphErrorRecoveryEnabledinstead") - Removed deprecated
Settings.appID(useSettings.shared.appIDinstead") - Removed deprecated
Settings.appURLSchemeSuffix(useSettings.shared.appURLSchemeSuffixinstead") - Removed deprecated
Settings.clientToken(useSettings.shared.clientTokeninstead") - Removed deprecated
Settings.displayName(useSettings.shared.displayNameinstead") - Removed deprecated
Settings.facebookDomainPart(useSettings.shared.facebookDomainPartinstead") - Removed deprecated
Settings.loggingBehaviors(useSettings.shared.loggingBehaviorsinstead") - Removed deprecated
Settings.graphAPIVersion(use theSettings.shared.graphAPIVersionproperty instead") - Removed deprecated
Settings.isAdvertiserTrackingEnabled()(use theSettings.shared.isAdvertiserTrackingEnabledproperty instead") - Removed deprecated
Settings.setAdvertiserTrackingEnabled(_:)(use theSettings.shared.isAdvertiserTrackingEnabledproperty to set a value instead") - Removed deprecated
Settings.setDataProcessingOptions(_:)(use theSettings.shared.setDataProcessingOptions(_:)method to set the data processing options instead") - Removed deprecated
Settings.setDataProcessingOptions(_:_:_:)(use theSettings.shared.setDataProcessingOptions(_:_:_:)method to set the data processing options instead") - Removed deprecated
Settings.enableLoggingBehavior()(useSettings.shared.enableLoggingBehavior()instead") - Removed deprecated
Settings.disableLoggingBehavior()(useSettings.shared.disableLoggingBehavior()instead")
12.3.2
This release contains various fixes for FBAEMKit
Fixed
- Fetched AEM config after AEM URL is received
- Added delay between AEM conversion requests
- Moved Catalog Matching logic behind GK
12.3.1
Fixed
- Fixed missing
defaultComponentsaccessor forCoreKitComponents. Fixes issue #2010.
12.3.0
Added
- Added network error checking protocol (
NetworkErrorChecking) and concrete implementation (NetworkErrorChecker) - Added error factory protocol (
ErrorCreating) and concrete implementation (ErrorFactory)
Removed
- Removed
configureWithWebViewProvider:urlOpener:fromFBSDKWebDialogView
Deprecated
SDKErrorhas been deprecated in favor of the newErrorFactoryandNetworkErrorCheckertypesNSStringFromFBSDKShareDialogMode()has been deprecated in favor ofShareDialog.Mode.description
12.2.1
Fixed
- Duplicate symbol error when using Swift Package Manager with the
ObjClinker flag (issue #1972) - Issue using SPM for tvOS projects (issue #1936)
- Fixed regression in sizes for FacebookGamingServices-Static_XCFramework.zip and FacebookSDK-Static_XCFramework.zip
- Potential fix for [FBSDKAppEventsDeviceInfo encodedDeviceInfo] crash (issue #1961)
12.2.0
Note: There is a known issue with using the ObjC linker flag with this version. We are working on a patch fix. If you rely on the ObjC linker flag, you will want to wait for the patch fix before upgrading.
Updated
- Starting with v12.2.0 apps no longer need to embed numerous custom URL schemes in
LSApplicationQueriesSchemesfor theirInfo.plist. Only thefbapiandfb-messenger-share-apicustom URL schemes are needed. With the change to iOS 15 that limitsLSApplicationQueriesSchemesto 50 schemes, this should relieve some pressure that apps may face when running up against this limit. As part of this change the following symbols are deprecated:URLScheme.facebookAppURLScheme.facebookShareExtensionURLScheme.masqueradePlayer
Fixed
- Fixed NSKeyedUnarchiver validateAllowedClass Warnings in Xcode Console. Fixes #1941 and #1930
- An implementation bug in
ApplicationDelegatewhere added application observers were notified twice forapplication:didFinishLaunchingWithOptions:. The return type ofApplicationDelegate.application:didFinishLaunchingWithOptions:was also incorrectly stated as, "YES if the url was intended for the Facebook SDK, NO if not". In actuality, the method returns whether there are any application observers that themselves return true from calling their implementation ofapplication:didFinishLaunchingWithOptions:. This fix means that application observers will now only be notified once per app launch, however, ifApplicationDelegate.application:didFinishLaunchingWithOptions:is called after callingApplicationDelegate.initializeSDKthen the return type will always be false regardless of any application observers. - Using share dialogs via share sheet mode fails to show the dialog (Issue #1938)
- Fixed: aem_conversion_configs should contain an explicit "fields" parameter (Issue #1933)
Deprecated
- The class-based interface of
AppEventshas been deprecated. Please use the instance properties and methods onAppEvents.sharedinstead.
12.1.0
Changed
- When using SPM, FacebookAEM and FacebookBasics no longer have to be explicitly included
Fixed
- FBSDKShareDialog show does nothing the first time (Issue #1919)
- Unable to archive app for distribution using Xcode 12.5.1 and Swift Package Manager (Issue #1917)
- iOS 15: NSKeyedUnarchiver warning (Issued #1887)
Deprecated
- The aggregate FacebookSDK pod is deprecated. Please use one of the individual pods instead (i.e. FBSDKCoreKit, FBSDKShareKit, FBSDKLoginKit, etc.)
FBSDKReferralCode,FBSDKReferralManagerandFBSDKReferralManagerResultare deprecated and will be removed in v13.0.0
12.0.2
- Updated release to be built with Xcode 12 for backwards compatibility with Xcode 12
12.0.1
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
12.0.0
Starting with version 12.0.0, CocoaPods and Swift Package Manager (SPM) are vending pre-built XCFrameworks. You no longer need to build the SDK when using CocoaPods or SPM, which should save you between a few seconds and a few minutes per build.
Because XCFrameworks do not allow embedded frameworks, note the following:
- When you install the SDK by using CocoaPods, the generated Pods project includes the dependencies for you.
- When you install the SDK by using SPM, you must add the dependencies yourself.
- You must include
FacebookAEMandFacebookBasicseven though you won't use them directly.
- You must include
You can no longer build from source using Carthage. Instead use Carthage to obtain the pre-built XCFrameworks. For instructions, see: https://github.com/Carthage/Carthage#migrating-a-project-from-framework-bundles-to-xcframeworks.
For more details, see https://developers.facebook.com/docs/ios/getting-started.
🚨 IMPORTANT 🚨
Changes to FBSDKLoginButton when defined in a Storyboard or XIB file: There is a known issue with using XCFrameworks in conjunction with Storyboard or XIB files. If you do not follow the instructions for using Interface Builder at https://developers.facebook.com/docs/facebook-login/ios/advanced/, FBSDKLoginButton does not load or decorate correctly. Add [FBSDKLoginButton class] to application:didFinishLaunchingWithOptions: so that the Storyboard can find it. If you don't, any methods that you call on it may result in a runtime crash.
Changes in Version 12.0.0
- 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. FacebookGamingServicesandFBSDKGamingServicesKit— There are two libraries related to Gaming Services.FBSDKGamingServicesKitis a superset ofFacebookGamingServicesthat includes Objective-C wrapper classes forFBSDKContextDialogPresenterandFBSDKContextDialogPresenter. 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 include graphDomain |
— |
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 the AppEvents.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 from GamingPayloadDelegate.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:) |
11.2.1
Fixed
- Fixed the App AEM Advertiser Rule match for fb_content
- Fixed: 'FBSDKCoreKitImport.h' file not found. (Issue #1829)
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
11.1.0
Added
- Reintroduces
initializeSDKmethod 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.shto 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
.xcodeprojfile. We are planning to remove the.xcodeprojfiles 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 byGamingServiceResultCompletionwhich passes a dictionary instead of a string for the result. Additionally the following methods have been updated:uploadImageWithConfiguration:andResultCompletionHandleris replaced byuploadImageWithConfiguration:andResultCompletionuploadImageWithConfiguration:completionHandler:andProgressHandleris replaced byuploadImageWithConfiguration:completion:andProgressHandler:uploadVideoWithConfiguration:completionHandler:andProgressHandler:is replaced byuploadVideoWithConfiguration:completion:andProgressHandler:uploadVideoWithConfiguration:andResultCompletionHandleris replaced byuploadVideoWithConfiguration:andResultCompletion
FBSDKGamingPayloadObserver'ssharedinstance. 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
initializeSDKdeprecation #1731
11.0.1
Added
- Add background refresh status logging
Changed
- No longer automatically showing UI for GraphErrorRecoveryProcessor
Fixed
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: https://github.com/facebook/facebook-ios-sdk/issues/1763.
Added
- Login with Facebook iOS app now populates a shared
AuthenticationTokeninstance. - Added Limited Login support for
user_hometown,user_location,user_genderanduser_linkpermissions under public beta. - Updated Profile on Limited Login to include first, middle and last name as separate fields.
- Released
user_messenger_contactpermission 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_idparam toFBSDKLoginButtonandFBSDKLoginConfiguration - 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:completiontoFBSDKGraphRequestConnection. ReplacesaddRequest:completionHandler:. - Added
addRequest:name:completion:toFBSDKGraphRequestConnection. ReplacesaddRequest:batchEntryName:completionHandler:. - Added
addRequest:parameters:completion:toFBSDKGraphRequestConnection. ReplacesaddRequest:batchParameters:completionHandler:. - Added instance method
activateApptoAppEvents.
Deprecated
FBSDKGraphRequestBlock. Replaced byFBSDKGraphRequestCompletionwhich returns an abstractFBSDKGraphRequestConnectionin 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.FBSDKAppLinkReturnToRefererControllerDelegateFBSDKAppLinkReturnToRefererControllerFBSDKIncludeStatusBarInSizeFBSDKAppLinkReturnToRefererViewDelegateFBAppLinkReturnToRefererViewFBSDKErrorRecoveryAttempting'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:FBSDKAccessTokensBlockFBSDKTestUsersManagerFBSDKGraphErrorRecoveryProcessor'sdelegatepropertyFBSDKGraphErrorRecoveryProcessor'sdidPresentErrorWithRecovery:contextInfo:FBSDKGamingVideoUploader'suploadVideoWithConfiguration:andCompletionHandler:FBSDKGamingImageUploader'suploadImageWithConfiguration:andCompletionHandler:
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_idsupport in advanced matching. GamingServicesKitchanged 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
9.2.0
Added
- Added Limited Login support for
user_friends,user_birthdayanduser_age_rangepermissions under public beta. - Shared Profile instance will be populated with
birthdayandageRangefields using the claims from theAuthenticationToken. (NOTE: birthday and ageRange fields are in public beta mode) - Added a convenience initializer to
Profileas part of fixing a bug where upgrading from limited to regular login would fail to fetch the profile using the newly available access token. GamingServicesKitadded an observer class where if developers set the delegate we will trigger the delegate method with aGamingPayloadobject 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
ASIdentifierManagerto 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_projectsflag. #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 = bitcodeto 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.
9.1.0
Added
friendIDsproperty added toFBSDKProfile(NOTE: We are building out thefriendIDsproperty in Limited Login with the intention to roll it out in early spring)FBSDKProfileinitializer that includes optionalfriendIDsargumentclaimsproperty of typeFBSDKAuthenticationTokenClaimsadded toFBSDKAuthenticationToken
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
AppEventssingleton when setting overriding app ID #1647 - CocoaPods now compiles
FBSDKDynamicFrameworkLoaderwith 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'sdelegatepropertyFBSDKGraphErrorRecoveryProcessor'sdidPresentErrorWithRecovery:contextInfo:methodFBSDKAppLinkReturnToRefererViewFBSDKAppLinkReturnToRefererController
Removed
- Internal type
FBSDKErrorRecoveryAttempter
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)
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
linkURLproperty ofFBSDKProfilewill only be populated if the user has granted theuser_linkpermission. - FBSDKGamingServicesKit will no longer embed FBSDKCoreKit as a dependency. This may affect you if you are manually integrating pre-built binaries.
- The aggregate CocoaPod
FacebookSDKnow 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
autoInitEnabledoption is removed from the SDK. From here on, developers are required to initialize the SDK explicitly with theinitializeSDKmethod or implicitly by calling it inapplicationDidFinishLaunching.
Fixed
- Swift Package Manager Mac Catalyst support #1577
8.2.0
Changed
- Remove SignalHandler to avoid hiding root cause of crashes caused by fatal signals.
- Expose functions in
FBSDKUserDataStoreas public for apps using Audience Network SDK only to use advanced matching.
8.1.0
Added
- Introduced
AppLinkResolverRequestBuilderfor use in cleaning up and adding tests aroundAppLinkResolver
Changed
- Removed version checks for iOS 9 since it’s the default version now.
- Refactored
AppLinkResolverto use a request builder - Refactored and added tests around
FBSDKProfileandFBSDKProfilePictureView - Updated
FBSDKSettingsto useADIdentifierManagerfor 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
FBSDKVideoUploaderbug #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
8.0.0
Added
- Added timestamp for install event in iOS 14
- Added method
setAdvertiserTrackingEnabledto overwrite theadvertiser_tracking_enabledflag - Added
SKAdNetworksupport for installs - Added
SKAdNetworksupport for conversion value in iOS 14 - Added
FBSDKReferralManagerfor integrating with the web referral dialog - Added method
loginWithURLtoFBSDKLoginManagerfor 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
setAdvertiserTrackingEnabledis called withfalsein 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+ loadmethod 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
7.1.1
Fixed
- Fix data processing options issue
7.1.0
Added
- Introduce DataProcessingOptions
Deprecated
- Remove UserProperties API
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
NSJSONSerializationmethods toFBSDKTypeUtilityand 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 theupdate()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
FBSDKTypeUtilityto provide type safety for Dictionaries and Arrays - Updates code so that
NSKeyedUnarchivermethod 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
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
6.5.2
- Various bug fixes
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
6.5.0
Added
- More usecase for Integrity is supported.
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:
Changed
Various bug fixes, CI improvements
6.3.0
Added
- Support new event type for suggested events
6.2.0
Added
- Support for Gaming Video Uploads
- Allow Gaming Image Uploader to accept a callback
- Messenger Sharing
6.0.0
Updated
- Uses API version 6.0 by default
Fixed
FBSDKShareDialogdelegate callbacks on apps using iOS 13
Removed
ShareKit
- Facebook Messenger Template and OpenGraph Sharing
FBSDKMessengerActionButtonFBSDKShareMessengerGenericTemplateContentFBSDKShareMessengerGenericTemplateElementFBSDKShareMessengerMediaTemplateMediaTypeFBSDKShareMessengerMediaTemplateContentFBSDKShareMessengerOpenGraphMusicTemplateContentFBSDKShareMessengerURLActionButtonFBSDKShareAPIsince it exists to make sharing of open graph objects easier. It also requires the deprecatedpublish_actionspermission which is deprecated.- Property
pageIDfromFBSDKSharingContentsince it only applies to sharing to Facebook Messenger FBSDKShareOpenGraphActionFBSDKShareOpenGraphContentFBSDKShareOpenGraphObjectFBSDKShareOpenGraphValueContainer
CoreKit
FBSDKSettingspropertyinstrumentEnabled- 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
FBSDKLoginBehaviorLogin flows no longer support logging in through the native application. This change reflects that.
5.15.1
Fixed
- fix multi-thread issue for Crash Report
- fix write to file issue for Crash Report
5.15.0
Fixed
- fix for CocoaPods (i.e. macro
FBSDKCOCOAPODS) - fixes a bug in for sharing callbacks for apps using SceneDelegate
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
5.13.1
Fixed
- bug fix for address inferencer weights load
5.13.0
Added
- Parameter deactivation
Fixed
- Update ML model to support non-English input
5.12.0
Changed
- Updated suggested events
5.11.1
Fixed
- Accelerate automatically linked for SPM installs 6c1a7e
- Fixes building for Unity 6a83270
- Updates build scripts, various bug fixes
5.11.0
Added
- Launch event suggestions
5.10.1
Fixed
- Various bugfixes with SPM implementation
5.10.0
Added
- Support for Swift Package Manager
5.9.0
Changed
- Using Graph API version 5.0
5.8.0
Added
- Launch automatic advanced matching: https://www.facebook.com/business/help/2445860982357574
5.7.0
Changed
- Nullability annotation in FBSDKCoreKit
Fixed
- Various bug fixes
- Build scripts (for documentation and to support libraries that include Swift)
5.6.0
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
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
Changed
- Deprecated
+[FBSDKSettings isInstrumentEnabled], please use+[FBSDKSettings isAutoLogEnabled]instead
Fixed
- Fix Facebook Login for iOS 13 beta
- Various bug fixes
5.4.0
Changed
- Add handling for crash and error to make SDK more stable
5.3.0
Changed
- Graph API update to v4.0
5.2.3
Fixed
- Fixed Facebook Login issues
5.2.2
Fixed
- Fixed Facebook Login on iOS 13 beta
- Various bug fixes
5.2.1
Fixed
- Various bug fixes
5.2.0
Fixed
- Fixed a crash caused by sensitive data filtering
- Fixed FB Login for iOS 13
5.1.1
5.1.0
5.0.2
Fixed
- Various bug fixes
5.0.1
Fixed
- Various bug fixes
5.0.0
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_INITIALIZERfor required initsNS_TYPED_EXTENSIBLE_ENUMwhere made sensegettername for certain properties, like booleansNS_ASSUME_NONNULL_BEGIN,NS_ASSUME_NONNULL_END, and other nullability annotations- Generics for Arrays, Sets, and Dictionaries
NS_SWIFT_NAMEto remove theFBSDKprefix where necessary (leftFBprefix for UI elements)FBSDKLoginManager -logInWithPermissions:fromViewController:handler:FBSDKLoginButton permissionsFBSDKDeviceLoginButton permissionsFBSDKDeviceLoginViewController permissions- New
FBSDKAppEventNamevalues
Changed
- Using
instancetypefor inits - All
NSError **translate to throws on Swift - Updated Xcode Projects and Schemes to most Valid Project settings
- Getter methods changed to
readonlyproperties - Getter/Setter methods changed to
readwriteproperties - 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_SWIFTwhere advisable
Deprecated
FBSDKLoginManager -logInWithReadPermissions:fromViewController:handler:FBSDKLoginManager -logInWithWritePermissions:fromViewController:handler:FBSDKLoginButton readPermissionsFBSDKLoginButton writePermissionsFBSDKDeviceLoginButton readPermissionsFBSDKDeviceLoginButton writePermissionsFBSDKDeviceLoginViewController readPermissionsFBSDKDeviceLoginViewController writePermissionsFBSDKUtility SHA256HashStringFBSDKUtility SHA256HashData
Removed
- Deprecated methods
- Deprecated classes
- Deprecated properties
- Made
initandnewunavailable where necessary - Used
NS_SWIFT_UNAVAILABLEwhere 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_ENUMattribute. All your existing code should work just fine.
Swift Developers
NS_SWIFT_NAMEwas applied where applicable. Most of these changes Xcode can fix automatically.- The
FBSDKprefix for UI elements has been replaced with the simplerFBprefix. - The
FBSDKprefix for all other types has been removed. FBSDKErroris nowCoreError.
- The
NS_ERROR_ENUMis 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_ENUMattribute:FBSDKAppEventNamePurchased->AppEvents.Name.purchased"custom_app_event"->AppEvents.Name("custom_app_event")
- Certain values have been annotated with
NS_REFINED_FOR_SWIFTand can be customized via either:- The Facebook SDK in Swift (Beta)
- 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
Fixed
_inBackgroundnow indicates correct application state
4.44.0
Added
- Add parameter
_inBackgroundfor app events
Fixed
- Various bug fixes
4.43.0
Added
- Support for Xcode 10.2
Deprecated
FBSDKLoginBehaviorNativeFBSDKLoginBehaviorSystemAccountFBSDKLoginBehaviorWeb[FBSDKLoginManager renewSystemCredentials]
Fixed
- Various bug fixes
4.42.0
Changed
- Moved directory structure for better separation
Fixed
- Various bug fixes
4.41.2
Fixed
- Resolved issues with the release process
- Various bug fixes
4.41.1
Fixed
- Resolved build failures with Carthage and Cocoapods
- Various bug fixes
4.41.0
Fixed
- Various bug fixes
4.40.0
Fixed
- Various bug fixes
4.39.1
2019-01-08 | Full Changelog | Facebook Developer Docs Changelog