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.
- Increased minSdkVersion from 15 to 21
- Instance variables in
MessengerThreadParams
andShareToMessengerParams
are now not directly accessible from Java due to conversion to Kotlin. Use the corresponding getters to access them in Java, i.e.params.getMetadata()
instead ofparams.metadata
. - Removed deprecated LoginBehavior.WEB_VIEW_ONLY setting.
- Fixed the issue with robolectric and other dependencies not being correctly specified as test implementation.
- Fixed the issue causing apps targeting Android 12 or higher to fail due to a component with an intent-filter not explicitly defining the attribute
android:exported
.
- We now use jacoco to gather code coverage on debug builds. If you are building from source instead of using releases from maven, you may run into an issue where debug builds crash on launch. The issue and solution are well-documented in jacoco/jacoco#968
- Migrated the gradle files (excluding
maven.gradle
and sample projects) from Groovy to Kotlin.
- Fixed the issue which caused AndroidX activity/fragment 1.5.0+ to break the Facebook Login Android SDK Flow if the Facebook app is not installed.
- Removed deprecated
ShareOpenGraphAction
,ShareOpenGraphContent
,ShareOpenGraphValueContainer
andShareOpenGraphObject
classes.
- Added
LoginManager.createLogInActivityResultContract()
andFacebookDialog.createActivityResultContractForShowingDialog()
methods to expose the activity result contracts. - Support for CloudBridge for AppEvents. This feature is available for selected partners now.
- The client token is now mandatory. SDK initialization will have a check on it and throw out an exception if the client token is not available.
- All classes from the deprecated Bolts library are moved to an independent
facebook-bolts
kit. Now all kits depend on it to keep the back-compatibility, but we will gradually remove the dependency.
AppEventsLogger.setUserID()
allows to receive null value to clear the user ID.- Fixed the crashes if WebView is not available.
- Deprecate
ShareOpenGraphAction
,ShareOpenGraphContent
,ShareOpenGraphValueContainer
andShareOpenGraphObject
since Open Graph stories will only render as plan link shares. See Open Graph Stories document for more details.
- Set Java source and target compatibility to 1.8 (Java 8). All apps that integrate with Facebook Android SDK should also set source and compatibility to 1.8 or above.
- GMS AD_ID Permission is added to the SDK by default for requesting the advertising ID. You can follow this guide to remove the permission request.
- Removed the support for tokenless requests. Now all Graph API requests must be associated with an access token and the app needs to have a client token to construct the access token without a logged in user. Please follow this document to add the client token into
AndroidManifest.xml
. - Removed deprecated LikeView and various related classes (LikeButton, LikeContent, LikeDialog etc)
- Removed deprecated Device Sharing classes (DeviceShareButton, DeviceShareDialog, DeviceShareDialogFragment)
- Removed deprecated Messenger Sharing classes (ShareMessengerMediaTemplateContent, ShareMessengerGenericTemplateContent etc)
- Removed deprecated Fblite Login
- Removed deprecated PerformanceGuardian
- Removed end-to-end dumpsys utility for testing
- Fixed the bug of handling sharing result if the post id is not available.
- Avoid tokenless requests if the client token is presented. Tokenless request support will be removed in v13.0.
- Fblite Login is deprecated.
- Internal utility methods on collections are deprecated and will be replaced by
kotlin.collections
.
- Fixed reauthorization of data access.
- Add fields parameters for login GET requests to remove warning messages.
- Added parsing entry intent to look for gaming payload and tournament data for user coming from FB surface. Gaming tournament feature is available for selected partners now.
- Added data processing options to crash/error report.
- On Android 12 and above, AppEvents will send attribution ID and anonymous ID if GMS is supported and isTrackingLimited is OFF. On Android 11 and below, nothing is changed. This feature will be turned on after Google Play Store starts the enforcement of the new policy.
- Fixed a bug that causes multiple login intents to launch when the user has previously authorized the app and is logging in with the
openid
scope.
- Adds Tournaments for native games, this feature is only available for select partners.
- Added AuthenticationToken Cache to enhance OIDC experience. NOTE: This feature is currently in beta testing and not broadly available to developers
com.facebook.bolts.AppLinkResolver
will only receive nonnull parameters and return nonnull values.com.facebook.bolts.Capture
is removed.- Removed deprecated functions in
com.facebook.appevents.AppEventsLogger
- Removed deprecated function
ViewIndexer.sendToServerUnity(String)
- Login and share kits now fully supports AndroidX Activity Result APIs. No need to override the
onActivityResult()
if you're passing activity/fragment fromandroidx.activity
v1.2.0+ orandroidx.fragment
v1.3.0+ as the context toLoginButton
andShareButton
.
- Added the ability to perform login based on OpenID Connect standard. NOTE: This feature is currently in beta testing and not broadly available to developers
- Add Custom Updates for Cloud Games
- Fixed Login Connect support in CCT and Webview
- Access token and profile management for Instagram users, support for querying graph.instagram.com, and Instagram login dialogs. NOTE: These changes support a feature currently in alpha testing and not broadly available to developers.
- Fixed the crash when calling
AppEventsLoggerImpl.augmentWebView(WebView, Context)
.
- Fixed the bug in
GraphRequest
when passing an attachment through POST method. - Fixed the race condition in cloud game.
- Fixed the bug of accessing WindowManager from a non-visual context on Android 11.
- Validating the package checksum's providers when requesting it on Android S+.
- Application Not Response (ANR) detector for improving the SDK quality. It will only collect ANR that caused by Facebook SDK and can be turned off by disabling automatically logged events. More details: https://developers.facebook.com/docs/app-events/getting-started-app-events-android/#auto-events
- 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. Learn more at https://developers.facebook.com/docs/facebook-login/login-connect - Support Android S+ checksum API for computing the package checksum if it’s available.
- Expanded support for auto-logging of in-app purchases to support apps that use V2 and/or V3 of the Google Play Billing Library
- The default Graph API version is updated to v11.0
- Removed deprecated signing key hashes for validating signatures
- In
AccessToken
,token
,applicationId
,userId
andpermissions
fields became nonnull. - The constructors of
GraphResponse
now require a nonnullGraphRequest
object. If the constructor is called with aJSONArray
or an error, the array/error should also be nonnull. - In
GraphRequest
, The parameter ofCallback.onComplete()
is declared nonnull. The parameters ofGraphJSONArrayCallback
andGraphJSONObjectCallback
are declared nullable.
- Fixed NPE on calling
AppEventsLogger.activateApp(Context context)
- Removed the dependencies on deprecated
kotlin-android-extension
library
GraphRequest#setSkipClientToken()
- Supported refetching Gate Keeper values after switching app IDs.
- Fixed POM validation error in staging phase.
- Fixed IAP enable logic
- GameRequests has a new UI for Gaming Domain Apps.
- Added a GamingPayload class that can retrieve Payloads sent from our messenger XMAs.
- The default Graph API version is updated to v9.0
- Added SDK on-device signal processing capabilities, but feature is not yet active
- Mitigations for switching to Facebook app for logging in, due to Android 11 package visibility change
Note: The current version uses Graph API v8.0. To use the latest Graph API version, please specific that version in your GraphRequest call.
- Added Performance Guardian to improve the performance of Suggested Events and Codeless
- Added ReferralManager for integrating with web Referral dialog
- Updated tokenless profile picture API call
- Fixed callback issues for GamingImageUploader
- Deprecated GameRequestDialog
- Deprecated DeviceShareDialog
- Introduce DataProcessingOptions
- Remove UserProperties API
- AAM improvement
- Corrected the report type of Crash Reports
- Handle RejectedExecutionException in ViewIndexer.schedule()
- Fixed the exception in getRootView
- Fixed model cache issue
- Android X, to use v7 please upgrade to Android X. Big thanks to @sunyal for helping with the migration.
- Marketing kit is deprecated
- Fixed AppLinkData issue: issue 761
- Fixed timestamp issue of Model Delivery
- More usecase for Integrity is supported.
- Fixed bugs for suggested events
- FBSDKMessageDialog now accepts FBSDKSharePhotoContent.
- Fixed crash in Codeless
- Support new event type for suggested events
- Fixed an issue in for suggested events
- Support for Gaming Video Uploads
- Allow Gaming Image Uploader to accept a callback
- Messenger Sharing
- New SDK component: Gaming Services
- Places Kit
- Graph API call upgrade to v6.0
- Attempts to fix #665
- FB Login improvements
- Install Referrer uses new API
- Deprecates messenger sharing. See: https://developers.facebook.com/docs/sharing/messenger for more details on why the deprecation is occurring and how you can update your application to account for this change
- Chrome Custom Tabs for FB Login improvements
- Parameter deactivation
- Fixed a corner case
- Updated suggested events
- Fix java.lang.SecurityException in AccessTokenManager: issue 627
- Fix Google Api Error because of values-fb: issue 614
- Minor fixes
- Launch event suggestions
- Fix NPE on AccessTokenAppIdPair
- API call upgrade to v5.0
- Launch automatic advanced matching: https://www.facebook.com/business/help/2445860982357574
- Change keepnames to keep in proguard-rules for IAP
- Fix memory leak in Codeless
- Fix issue of listing crash report files
- Crash in FetchedAppGateKeepersManager
- Various bug fixes
- Add handling for crash and error to make SDK more stable
- API call upgrade to v4.0
- Various bug fixes
- Auto log Subscribe and StartTrial going through GooglePlay store when the developer enables it in Facebook Developer setting page
- Fix in-app purchase auto-logging issue which was introduced in 5.0.1
- Support campaign attribution for Audience Network
- Fixed a crash that caused by absence of Google Play Store services
- support manual SDK initialization
- extend coverage of AutoLogAppEventsEnabled flag to all internal analytics events
- Deprecate several activateApp and deactivateApp functions in AppEventsLogger.java
- Deprecated classes: FacebookUninstallTracker
- Various bug fixes
- Various bug fixes
- Facebook Developer Docs: Changelog v4.x