Firebase iOS Release Notes

To see release notes for the Firebase console and for other Firebase platforms and related SDKs, see the Firebase Release Notes.

Version 5.12.0 - November 6, 2018

  • Fixed static analysis warning for improper nil comparison. (#2034)
  • Assign the default app before posting notifications. (#2024)
  • Remove unnecessary notification flag. (#1993)
  • Wrap diagnostics notification in collection flag check. (#1979)

Authentication

  • Restore SafariServices framework dependency. (#2002)

Performance Monitoring

  • Resolved open issues in the Performance Monitoring SDK.

Storage

  • Storage operations can now be scheduled and controlled from any thread (#1302, #1388).
  • Fixed an issue that prevented uploading of files with semicolons in the filename.

Cloud Firestore

  • Fixed compilation in C99 and C++11 modes without GNU extensions.

Version 5.11.0 - October 24, 2018

Analytics

  • Added support for dynamic audience evaluation.

Cloud Firestore

  • Improvements to the SDK.

Dynamic Links

  • Updated the SDK to use c99-compatible typeof() operator. (#1982)

InstanceID

  • Fixed a crash caused by keychain operation when accessing default access group. (#1399, #1393)

FCM

  • Fixed an issue where messages failed to be delivered to the recipient's time zone. (#1946)

Performance Monitoring

  • You can now deep dive into samples of traces and network requests, or Sessions, in the Firebase console.
  • The Performance Monitoring SDK now adds Remote Config as a dependency.

Remote Config

  • Internal updates to support Performance Monitoring.

Version 5.10.0 - October 9, 2018

Cloud Firestore

  • Some SDK errors that represent common mistakes (such as permission denied or a missing index) will automatically be logged as a warning in addition to being surfaced via the API.

FCM

  • Now you can access the message ID of FIRMessagingRemoteMessage object. (#1861)
  • Add a new boolean value useFIRMessagingDelegateForDirectMessageDelivery if you want all your direct channel data messages to be delivered in FIRMessagingDelegate. If you don't use the new flag, for iOS 10 and above, direct channel data messages are delivered in FIRMessagingDelegate messaging:didReceiveMessage:; for iOS 9 and below, direct channel data messages are delivered in Apple's AppDelegate application:didReceiveRemoteNotification:fetchCompletionHandler:. So, if you set the useFIRMessagingDelegateForDirectMessageDelivery to true, direct channel data messages are delivered in FIRMessagingDelegate across all iOS versions. (#1875)
  • Fixed an issue where callback was not triggered with invalid topic names. (#1880)

ML Kit

  • Added support for face contour detection.
  • Added synchronous face detection API resultsInImage:error:.
  • Breaking change: Renamed the asynchronous face detection API from detectInImage:completion: to processImage:completion:.
  • Breaking change: Renamed some properties and enums in VisionFaceDetectorOptions.
  • Breaking change: Removed the constant VisionFaceDetectionMinSize in VisionFaceDetectorOptions.
  • Upgraded TensorFlowLite dependency from 0.1.7 to 1.10.1.

Remote Config

  • Fixed open bugs in the Remote Config SDK.

Version 5.9.0 - September 25, 2018

Analytics

  • Fixed duplicate nanopb symbols. (#1832)

Dynamic Links

  • Dynamic Links is now open source and delivered as a source pod. (#1842)

Firebase In App Messaging

  • Released a new open source SDK called FirebaseInAppMessagingDisplay that separates UI functionality out of FirebaseInAppMessaging, enabling custom UI implementations.
  • Respect fetch between wait time returned from API responses.

InstanceID

  • Fixed a crash caused by NSUserDefaults being called on background thread.

Cloud Firestore

  • Fixed an issue where the first get() call made after being offline could incorrectly return cached data without attempting to reach the backend.
  • Changed get() to only make 1 attempt to reach the backend before returning cached data, potentially reducing delays while offline. Previously, it would make 2 attempts, to work around a backend bug.
  • Fixed an issue that caused us to drop empty objects from calls to setData(..., merge:true).

Version 5.8.1 - September 19, 2018

  • Resolved issue with Firebase/Core dependencies that caused a CocoaPods error. (#1845, #8110)

Version 5.8.0 - September 12, 2018

  • Resolved most of the Xcode Analyzer issues in Firebase sources.

Analytics

  • Resolved open issues with the Analytics SDK.

Cloud Firestore

  • Fixed an issue where the first get() call made after being offline could incorrectly return cached data without attempting to reach the backend.
  • Changed get() to only make 1 attempt to reach the backend before returning cached data, potentially reducing delays while offline. Previously, it would make 2 attempts, to work around a backend bug.

Version 5.7.0 - August 28, 2018

  • Clarified wording in FirebaseAnalytics not available log message. (#1653)

FCM

  • Ensure NSUserDefaults is persisted properly before app close. (#1646)
  • Internal code cleanup. (#1666)

Storage

  • Fixed potential EXC_BAD_ACCESS violation in the internal logic for processing finished downloads. (#1565, #1747)

Cloud Firestore

  • Fixed an issue where changes to custom authentication claims did not take effect until you did a full sign-out and sign-in. (#1499)
  • Improved how Firestore handles idle queries to reduce the cost of re-listening within 30 minutes.

AdMob

  • Native ads: GADNativeAppInstallAd, GADNativeContentAd, and associated APIs are deprecated in favor of GADUnifiedNativeAd. See the Native Ads Advanced Unified guide for further instructions on using the new APIs.
  • Native Ads: Added the "Mute This Ad" feature.
  • Native Ads: Fixed a bug where AdChoices view was removed when reusing ad views in collection views.
  • Added the requestConfiguration property to GADMobileAds, which can be used to specify maxAdContentRating and tagForUserOfConsent parameters for all ad requests.
  • Mediation: Added maxAdContentRating and underAgeOfConsent properties to GADMediationAdRequest.

Version 5.6.0 - August 15, 2018

  • The minimum supported Xcode version is now 9.2.

Analytics

  • Fixed memory leaks. (#1636)

Crash Reporting

  • Updates to the SDK documentation to reflect deprecation status.

Cloud Firestore

  • Fixed an issue where get(source:.Cache) could throw an "unrecognized selector" error if the SDK has previously cached the non-existence of the document. (#1632)

Firebase In App Messaging

  • Firebase In App Messaging is now available in the Firebase SDK for iOS. For more information, see the documentation.

InstanceID

  • Fixed an issue with checkin not caching properly on app start. (#1561)

Performance Monitoring

  • Reduced bandwidth consumption used by the SDK.

Version 5.5.0 - August 2, 2018

  • Added a global data collection flag to use when individual product flags are not set. (#1583)
  • Renamed the FirebaseNanoPB framework to MeasurementNanoPB. If you use the framework SDK zip, make sure to remove the FirebaseNanoPB framework folder to prevent duplicate symbols.

Analytics

  • Added currency code validation for CURRENCY parameter and numeric value of pre-defined currency-related events.
  • Resolved NSUserDefaults crashes caused by notifications to the system whenever the values were changed and UI updates initiated by the system in the background. (#1317 and #431)

Authentication

  • Adds FIRAuthErrorCodeMalformedJWT, which is raised on JWT token parsing failures during auth operations (#1436).

Crash Reporting

  • Added conformance to Firebase global data collection switch.

Dynamic Links

  • Resolved open issues with Dynamic Links.

InstanceID

  • Added support for global Firebase data collection flag. (#1219)
  • Improved message tracking sent by server API.
  • Fixed an issue with InstanceID not properly compiling in app extensions.

FCM

  • Added support for global Firebase data collection flag. (#1219)
  • Fixed an issue where FCM wouldn't properly unswizzle swizzled delegate methods. (#1481)
  • Resolved an issue with FCM not compiling inside app extensions. (#1503)

Performance Monitoring

  • Resolved SDK crashes.
  • Added dependency on open-source version of the GoogleUtilities/Swizzler library.
  • Added conformance to Firebase global data collection switch.

Remote Config

  • Fixed a memory leak bug. (#488)

Cloud Firestore

  • Added FieldValue.arrayUnion() and FieldValue.arrayRemove() to atomically add and remove elements from an array field in a document.
  • Added whereField(arrayContains:) query filter to find documents where an array field contains a specific element.
  • Fixed compilation with older Xcode versions (#1517).
  • Fixed a performance issue where large write batches with hundreds of changes would take a long time to read and write and consume excessive memory. Large write batches should now see no penalty.
  • Fixed a performance issue where adding a listener for a large collection (thousands of documents) would take a long time in offline mode (#1477).
  • Fixed an issue that could cause deleted documents to momentarily re-appear in the results of a listener, causing a flicker. (#1591)

ML Kit

  • This is a breaking change. Unified and enhanced on-device and cloud text recognition API.
  • This is a breaking change. Enhanced cloud document scanning API.

Version 5.4.1 - July 20, 2018

Cloud Firestore

  • Fixed an issue where queries returned fewer results than they should, caused by documents that were cached as deleted when they should not have been. (#1548).

Version 5.4.0 - June 29, 2018

Authentication

  • Resolved an issue with parsing JWT date timestamps correctly.
  • Fixed an issue where anonymous accounts weren't correctly promoted to non-anonymous when linked with passwordless email auth accounts.
  • Fixed a data race issue caught by the sanitizer.

Cloud Firestore

  • Internal improvements.

Cloud Functions for Firebase Client SDK

  • Add a constructor to set the region.
  • Add a method to set a Cloud Functions emulator origin to use, for testing.

FCM

  • Client now properly suspends topic requests when a token is not available and resumes the topic operation when the token is generated.
  • Corrected the deprecation warning when subscribing to or unsubscribing from an invalid topic.
  • Removed unused heartbeat timestamp tracking.

Realtime Database

  • Fixed undefined behavior sanitizer issues.

Version 5.3.0 - Jun 20, 2018

  • Fixed a thread sanitizer error (#1390).
  • Updated FirebaseCore.podspec so that it works with cocoapods-packager. (#1378).

InstanceID

  • Ensure the checkin and tokens are refreshed if the Firebase project changed.
  • Resolved an issue that required checkin to be turned off when the FCM autoInitEnabled flag is off.

Cloud Firestore

  • setData methods taking mergeFields: arguments can now delete fields using FieldValue.delete().
  • Firestore will now recover from auth token expiration when the system clock is wrong.
  • Fixed compilation with older Xcode versions (#1366).

ML Kit

  • isIdleRequired in ModelDownloadConditions has been renamed to canDownloadInBackground. Its initializer has also been renamed accordingly.
  • Direct initialization of certain detectors and model interpreter is no longer allowed. Related class methods should be used instead.
  • Fixed memory leaks in continuous detection of face, text, barcode, or label.
  • Fixed a crash that returned the following error: "Terminating app due to uncaught exception NSGenericException, reason: 'Completion handler blocks are not supported in background sessions. Use a delegate instead.'"
  • Fixed VisonBarcodeDetector signal SIGABRT while scanning certain QR codes.
  • Keeping a strong reference of VisionTextDetector during detection is no longer necessary.

Performance Monitoring

  • Resolved issue with crashing related to screen traces.
  • Improved SDK startup time.
  • Resolved AVAssetDownloadTask crashes.

Version 5.2.0 - Jun 6, 2018

Authentication

  • Restore 4.x level of support for extensions.

Instance ID

  • Added a new API to fetch InstanceID and Token with a completion handler. The completion handler returns a FIRInstanceIDResult with an instanceID and token properties.
  • Deprecated the token method.
  • Added support to log a new customized label provided by developer.

Cloud Firestore

  • Internal improvements.

FCM

  • Added a warning message when subscribing to topics with incorrect name formats.
  • Silenced a deprecation warning in FIRMessaging.

Version 5.1.0 - May 29, 2018

Analytics

  • Added subscription parameter for autorenewable and non-renewing subscription In-app Purchases.
  • Minor bug fixes.

Realtime Database

  • Minor bug fixes.

Dynamic Links

  • Fixed issue where opens were double counted when using unique match.

Cloud Firestore

  • Fixed an issue where FirestoreSettings would accept a concurrent dispatch queue, but this configuration would trigger an assertion failure. Passing a concurrent dispatch queue should now work correctly (#988).

FCM

  • Cleaned up some deprecation warnings.

Version 5.0.1 - May 15, 2018

Firebase v5.0.1 contains bugfixes for the Firebase pod and ZIP file.

  • Duplicate symbol issue when building with -all_load.
  • Empty modulemap for SDKs in the ZIP file.

Version 5.0.0 - May 8, 2018

Firebase v5.0.0 removes support for iOS 7 and building with Xcode 7. Please use Xcode 8.0 or later and upgrade your app's minimum target to iOS 8 or above, for example by adding "platform :ios, '8.0' to your Podfile. To see the breakdown of worldwide iOS versions, go to Apple's App Store support page.

Changes related to CocoaPods:

  • Ensure Firebase/Core is included in your Podfile.
  • The minimum CocoaPods version required is now 1.4.0.
  • The Authentication, Realtime Database, Core, Cloud Firestore, Cloud Functions for Firebase Client SDK, FCM, and Storage SDKs are now Source Pods. This means you can directly see the source code in your project and see the full call stack while debugging.

Firebase Core

  • Removed deprecated methods.
  • Removed UIKit import from FIRApp.h.

A/B Testing

  • Firebase A/B Testing is now available for managing your experiments. For more information, see the documentation.

Analytics

  • Minor bug fixes.

Authentication

  • Added support for testing phone number authentication. For more information, see Test with whitelisted phone numbers.
  • Added FIRAuthDataResultCallback, which returns an AuthDataResult object instead of a User object after sign-in. This replaces FIRAuthResultCallback for the following methods: signInWithEmail:, signInwithCredential:, signInAnonymouslyWithCompletion:, and createUserWithEmail:.
  • The following methods have been deprecated: signAndRetrieveDataWithEmail:, signInAndRetrieveDataWithCredential:, and signInAndRetrieveDataAnonymouslyWithCompletion:

Crash Reporting

  • The Crash Reporting APIs are now deprecated. New projects should use the Crashlytics APIs.

Realtime Database

  • Minor bug fixes.

Dynamic Links

  • The shared instance of FIRDynamicLinks is no longer nullable.
  • Removed deprecated FIRDynamicLinkMatchConfidence property. This is replaced by FIRDLMatchType.

Instance ID

  • Removed deprecated method setAPNSToken:type defined in FIRInstanceID, please use setAPNSToken:type defined in FIRMessaging instead.
  • Removed deprecated enum FIRInstanceIDAPNSTokenType defined in FIRInstanceID, please use FIRMessagingAPNSTokenType defined in FIRMessaging instead.
  • Resolved an issue that FCM scheduled messages were not tracked successfully.

FCM

  • Removed deprecated delegate property remoteMessageDelegate, use delegate instead.
  • Removed deprecated method messaging:didRefreshRegistrationToken: defined in FIRMessagingDelegate protocol, use messaging:didReceiveRegistrationToken: instead.
  • Removed deprecated method applicationReceivedRemoteMessage: defined in FIRMessagingDelegate protocol, use messaging:didReceiveMessage: instead.
  • Resolved an issue that data messages were not tracked successfully.

Performance Monitoring

  • Performance Monitoring has exited beta and is now generally available.
  • Added automatic screen traces to report on screen rendering performance.
  • Added APIs for setting, incrementing, and getting metrics.
  • Deprecated the API to increment and decrement counters, use the new metrics API instead.

Remote Config

  • Changed the designated initializer for FIRRemoteConfigSettings to return a nonnull FIRRemoteConfigSettings object.

Storage

  • Removed downloadURLs property on StorageMetadata. Use StorageReference.downloadURL(completion:) to obtain a current download URL.
  • The maxOperationRetryTime timeout now applies to calls to StorageReference.getMetadata(completion:) and StorageReference.updateMetadata(completion:). These calls previously used the maxDownloadRetryTime and maxUploadRetryTime timeouts.

Cloud Firestore

  • Replaced the DocumentListenOptions object with a simple boolean. Instead of calling addSnapshotListener(options: DocumentListenOptions.includeMetadataChanges(true)), call addSnapshotListener(includeMetadataChanges:true).
  • Replaced the QueryListenOptions object with simple booleans. Instead of calling addSnapshotListener(options: QueryListenOptions.includeQueryMetadataChanges(true) .includeDocumentMetadataChanges(true)), call addSnapshotListener(includeMetadataChanges:true).
  • QuerySnapshot.documentChanges() is now a method which optionally takes includeMetadataChanges:true. By default, even when listening to a query with includeMetadataChanges:true, metadata-only document changes are suppressed in documentChanges().
  • Replaced the SetOptions object with a simple boolean. Instead of calling setData(["a": "b"], options: SetOptions.merge()), call setData(["a": "b"], merge: true).
  • Replaced the SnapshotOptions object with direct use of the FIRServerTimestampBehavior on DocumentSnapshot. Instead of calling data(SnapshotOptions.serverTimestampBehavior(.estimate)), call data(serverTimestampBehavior: .estimate).
  • Added ability to control whether DocumentReference.getDocument() and Query.getDocuments() should fetch from server only, cache only, or attempt server and fall back to the cache (which was the only option previously, and is now the default.)
  • Added new mergeFields:(NSArray<id>*) override for set() which allows merging of a reduced subset of fields.

Cloud Functions for Firebase Client SDK

  • Removed FIR prefix on FIRFunctionsErrorCode in Swift.

ML Kit

  • ML Kit for Firebase is now available as a public beta. To learn more, read ML Kit for Firebase.

Known Issues

  • The -all_load option linker option does not work with Firebase 5.0.0.
  • There is an issue preventing the use of bitcode in some of the new ML Kit subspecs.

Version 4.13.0 - April 13, 2018

Authentication

  • Resolved a crash which occurred when certain Firebase IDTokens were being parsed.

Analytics

  • Added a new public method resetAnalyticsData to clear all Analytics data as well as reset App Instance ID.
  • Improved In-App Purchase report: Analytics can report accurate discounted price for introductory offer purchases.
  • Other bug fixes.

Version 4.12.0 - April 10, 2018

Authentication

  • Adds getIDTokenResultWithCompletion: and getIDTokenResultForcingRefresh:completion: APIs which call back with an AuthTokenResult object. The Auth token result object contains the ID token JWT string and other properties associated with the token including the decoded available payload claims.
  • Adds the updateCurrentUser:completion: API which sets the currentUser on the calling Auth instance to the provided user object.
  • Adds client-side validation to prevent setting handleCodeInApp to false when performing email-link authentication. If handleCodeInApp is set to false an invalid argument exception is thrown.
  • Adds support for passing the deep link (which is embedded in the sign-in link sent via email) to the signInWithEmail:link:completion: and isSignInWithEmailLink: methods during an email/link sign-in flow.

FCM

  • Added new methods that provide completion handlers for topic subscription and unsubscription.

Performance Monitoring

  • Resolved a crash caused by a multithreading issue.

Remote Config

  • Improved documentation on InstanceIDs for GDPR.

Storage

  • Deprecated downloadURLs property on StorageMetadata. Use StorageReference.downloadURLWithCompletion() to obtain a current download URL.

Cloud Firestore

  • Resolved a regression in the Firebase iOS SDK release 4.11.0 that could cause getDocument() requests made while offline to be delayed by up to 10 seconds rather than returning from cache immediately.
  • Added a new Timestamp class to represent timestamp fields, currently supporting up to microsecond precision. It can be passed to API methods anywhere a system Date is currently accepted. To make DocumentSnapshots read timestamp fields back as Timestamps instead of Dates, you can set the newly added property areTimestampsInSnapshotsEnabled in FirestoreSettings to true. Note that the current behavior (DocumentSnapshots returning system Dates) will be removed in a future release. Using Timestamps avoids rounding errors from the system Date being stored as a floating-point value.

Version 4.11.0 - March 20, 2018

Authentication

  • Adds new API to determine the sign-in methods associated with an email address.
  • Adds new API to allow authentication using only an email link (Passwordless Authentication with email link).

Instance ID

  • Improved documentation on InstanceID usage for GDPR.
  • Improved the keypair handling during GCM to FCM migration. If you are migrating from GCM to FCM, we encourage you to update to this version and above.

Cloud Firestore

  • If the SDK's attempt to connect to the Cloud Firestore backend neither succeeds nor fails within 10 seconds, the SDK will consider itself "offline", causing getDocument() calls to resolve with cached results, rather than continuing to wait.
  • Fixed a race condition after calling enableNetwork() that could result in a "Mutation batchIDs must be acknowledged in order" assertion crash.
  • Fixed undefined symbols in the absl namespace.

Cloud Functions for Firebase Client SDK

Version 4.10.1 - March 9, 2018

Cloud Firestore

  • Fixed a regression in the 4.10.0 Firebase iOS SDK release that prevented the SDK from communicating with the backend until successfully authenticating via Firebase Authentication or after unauthenticating and re-authenticating. All reads and writes were silently executed only locally rather than being sent as unauthenticated requests.

Version 4.10.0 - March 6, 2018

FirebaseCore

  • This release includes updates to several services that address issues with CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF warnings that surface in newer versions of Xcode and CocoaPods.

Analytics

  • Increased user ID max length to 256 characters.
  • Added event names level_start and level_end.
  • Added parameter names level_name and success.
  • Added Audience support for nested event parameters.
  • Added lifetime user engagement user property.
  • Resolved deadlock in Screen View Reporter.

Authentication

  • Addressed CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF warnings that surface in newer versions of Xcode and CocoaPods.
  • Improved FIRUser documentation with clear message explaining when Authentication attempts to validate users and what happens when an invalidated user is detected.

Realtime Database

  • Resolved issue with loss of precision for 64 bit numbers on older 32 bit iOS devices with persistence enabled.
  • Addressed CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF warnings that surface in newer versions of Xcode and CocoaPods.

FCM

  • Improved documentation on the usage of the autoInitEnabled property.

Performance Monitoring

  • Fixed a crash related to redirection requests with AFNetworking.

Storage

  • Addressed CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF warnings that surface in newer versions of Xcode and CocoaPods.

Cloud Firestore

  • When you delete a FirebaseApp, the associated Firestore instances are now also deleted.
  • Fixed race conditions in streams that could be exposed by rapidly toggling the network from enabled to disabled and back or encountering a failure from the server.
  • Addressed CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF warnings that surface in newer versions of Xcode and CocoaPods.

Version 4.9.0 - February 14, 2018

Authentication

  • Added an explicit dependency on CoreGraphics from Firebase Auth.

Instance ID

  • Improved support for language targeting for FCM service. Server updates happen more efficiently when language changes.
  • Improved support for FCM token auto generation enable/disable functions.

FCM

  • Added a new property autoInitEnabled to enable and disable FCM token auto generation.
  • Resolved an issue where notification delivery would fail after changing language settings.

Remote Config

  • Improved support for language targeting. Simplied Chinese (zh_hans) and Traditional Chinese (Taiwan) (zh_TW) language targeting should be more accurate.

Cloud Firestore

  • Fixed a regression in Firebase iOS release 4.8.1 that could in certain cases result in an "OnlineState should not affect limbo documents." assertion crash when the client loses its network connection.
  • It's now possible to pass a nil completion block to WriteBatch.commit.

Version 4.8.2 - January 27, 2018

Analytics

  • Fixed an issue with data collection. We have also removed version 4.8.1 to prevent usage of the SDK with the issue.

Version 4.8.1 - January 18, 2018

Analytics

  • Improved the In-App Purchase report. Analytics can now detect subscription restoration or repurchase and non-consumables and can report auto-renewable and non-renewing subscriptions.

Authentication

  • Resolved a bug where the FIRAuthResult object returned following a phone number authentication always contained a nil FIRAdditionalUserInfo object. Now, the FIRAdditionalUserInfo object is never nil and its newUser field is populated correctly.

Realtime Database

  • Now community-supported on tvOS.

Dynamic Links

  • Resolved an error where fingerprint match fails for some locales.

Performance Monitoring

  • Fixed several minor bugs.

Remote Config

  • Resolved an issue where throttle rate drops during developer mode.
  • Replaced FIR_SWIFT_NAME with NS_SWIFT_NAME.

Storage

  • Now community-supported on tvOS.

Cloud Firestore

  • Removed the includeMetadataChanges property in FIRDocumentListenOptions to avoid confusion with the factory method of the same name.
  • Added a commit method that takes no completion handler to FIRWriteBatch.
  • Queries can now be created from an NSPredicate.
  • Added SnapshotOptions API to control how DocumentSnapshots return unresolved server timestamps.
  • Added disableNetwork() and enableNetwork() methods to Firestore class, allowing for explicit network management.
  • For non-existing documents, DocumentSnapshot.data() now returns nil instead of throwing an exception. A non-nullable QueryDocumentSnapshot is introduced for Queries to reduce the number of nil-checks in your code.
  • Snapshot listeners (with the includeMetadataChanges option enabled) now receive an event with snapshot.metadata.isFromCache set to true if the SDK loses its connection to the backend. A new event with snapshot.metadata.isFromCache set to false will be raised once the connection is restored and the query is in sync with the backend again.
  • Multiple offline mutations now properly reflected in retrieved documents. Previously, only the last mutation would be visible.
  • Fixed a crash in closeWithFinaleState: that could be triggered by signing out when the app didn't have a network connection.

Version 4.8.0 - December 18, 2017

Realtime Database

  • Internal cleanup in the firebase-ios-sdk repository. Functionality of the Realtime Database SDK is not affected.

Dynamic Links

  • Resolved race condition that could occur while processing server response(s).

Instance ID

  • Resolved a crash caused by a reflection call during logging.
  • Updated server with the latest parameters and deprecated old ones.

Performance Monitoring

Cloud Firestore

  • Firestore no longer has a direct dependency on FirebaseAuth.
  • Fixed a crash when using path names with international characters with persistence enabled.
  • Addressed race condition during the teardown of idle streams.

Storage

  • Internal cleanup in the firebase-ios-sdk repository. Functionality of the Storage SDK is not affected.

Version 4.7.0 - November 30, 2017

  • Replaced the FIR_SWIFT_NAME macro with NS_SWIFT_NAME.

Authentication

  • Added new APIs that return an AuthDataResult object after successfully creating a user with an email and password, signing in anonymously, signing in with email/password credentials, and signing in with custom tokens. The AuthDataResult object contains the new user and additional information pertaining to the new user.

Realtime Database

  • Addressed a race condition that occurred during initialization of empty snapshots.

Dynamic Links

  • Added new confidence type property. See FIRDLMatchType (values: Unique, Default, Weak).
  • Updated the self-diagnostic output.

Instance ID

  • Improved identity reset process, ensuring all information is reset during Identity deletion.

Cloud Firestore

  • Improved performance when loading documents that match a query.
  • Updated SDK to cleanly shut down idle write streams.

Performance Monitoring

  • Network requests made using NSURLConnection are now instrumented.
  • Resolved some open issues with Performance Monitoring.
  • Added FirebaseSwizzlingUtilities for optional method swizzling.

Storage

  • Added md5Hash to FIRStorageMetadata.

Version 4.6.0 - November 14, 2017

  • Added -FIRLoggerForceSTDERR launch argument flag to force STDERR output for all Firebase logging.

Analytics

  • Resolved open issues with Google Analytics for Firebase, including a screen-tracking issue that loaded views of unloaded controllers and an issue with calling [UIApplication sharedApplication] from a background queue.

Authentication

  • Improved error handling in both the phone-number linking and reCAPTCHA flows for phone-number sign-in.
  • Resolved issue with users remaining anonymous even after being linked to a phone number.

Dynamic Links

  • The FDL Builder API now includes a fallback link for users on other platforms.
  • Resolved open issues and improved stability in the Dynamic Links SDK.

Instance ID

  • Made token refresh weekly.
  • Resolved crash that occurred during token operation.

Invites

  • Updated API to properly handle links to an app that is already installed.
  • Resolved crashes that occurred when a selected Invite recipient had an empty name.

Cloud Firestore

  • Firestore now retries requests more often before considering a client offline.
  • You can now use FieldValue.delete() with SetOptions.merge().

Version 4.5.0 - October 30, 2017

  • iOS 7 support in the Firebase iOS, C++, and Unity SDKs is now deprecated and will be dropped in a future release. Upgrade your apps to target iOS 8 or above. To see the breakdown of worldwide iOS versions, go to Apple’s App Store support page.

A/B Testing

  • A/B Testing offers the ability to run experiments from the Firebase console using Remote Config. Learn more about creating experiments with A/B Testing for Remote Config and FCM.

Authentication

  • Resolved open issues with Authentication.

Cloud Firestore

  • Improved validation of nested arrays to allow indirect nesting.

Version 4.4.0 - October 17, 2017

  • Fixed new warnings that appeared in Xcode 9.

Authentication

  • Account creation and last sign-in dates are now provided as user metadata.
  • Invalid users are now automatically signed out earlier.
  • Resolved an issue with ID token listeners not firing in some cases.
  • More descriptive errors for some phone number sign-in error cases.

Realtime Database

  • Resolved warnings for callback types with missing argument specifications in XCode 9.

Cloud Firestore

  • Changed the names for FIRSnapshotMetadata and FIRListenerRegistration to better reflect Swift naming guidelines for the Swift SDK.
  • Fixed retain cycle in FIRDocumentReference getDocumentWithCompletion:.

FCM

  • Improved logging of notification opens, by swizzling additional UNUserNotificationCenterDelegate method.
  • Improved the handling of unimplemented UNUserNotificationCenterDelegate methods, when swizzling is enabled.

Instance ID

  • Improved support for working in shared Keychain environments.

Version 4.3.0 - October 3, 2017

Analytics

  • Resolved open issues with Analytics.

Authentication

  • Resolved a threading issue in phone number auth.

Cloud Firestore

FCM

  • Resolved issues with FCM token associations to APNs device tokens.
  • The FCM direct channel is now properly established on the first start 24 hours after being opened.

Performance Monitoring

  • Added infrastructure to more easily diagnose issues.

Realtime Database

Version 4.2.0 - September 20, 2017

  • Resolved duplicate logging issue in the Xcode console.

AdMob

  • Resolved issue with banner ads loading beyond the viewable area on iOS 11.

Authentication

  • Provided reCAPTCHA as an alternative verification method for phone number auth.

Crash Reporting

  • Optimized power consumption.

Realtime Database

  • Fixed a regression in v4.0.2 that affected the storage location of the offline cache. This caused v4.0.2 to not see data written with previous versions.
  • Fixed a crash in FIRApp deleteApp for apps that did not have active database instances.

Instance ID

  • Resolved a race condition where a token was not being generated on first start when FCM was included and the app didn’t register for remote notifications.

FCM

  • Additional error code logging for errors thrown when creating or opening an internal database file.

Performance Monitoring

  • Resolved symbol collisions with GoogleMobileVision.
  • Resolved crash when also using Crittercism.
  • Now enforcing safety limits on the number of events dispatched over a period of time.

Remote Config

  • Resolved an issue with config values not updating correctly when targeted by a user property condition.

Storage

  • Clear custom FIRStorageMetadata by setting individual properties to 'nil'.

Version 4.1.1 - August 30, 2017

AdMob

Authentication

  • Improved comments on some methods in the header files.

Realtime Database

  • If you try to retrieve a Realtime Database instance for a specific FirebaseApp on an app that was deleted, Realtime Database no longer returns a stale instance.
  • For unindexed queries, the error message now references bandwidth usage.

Instance ID

  • Removed a call that blocked the main thread during app startup.

Cloud Messaging

  • Removed logic that saved the SDK version to NSUserDefaults.

Performance Monitoring

  • Resolved open issues with Performance Monitoring.
  • Increased character name limits for traces and counters from 32 to 100. Traces and counters that exceed the name limit are not created.

Version 4.1.0 - August 14, 2017

  • Incorrectly configured bundle IDs now result in error messages instead of info messages.

Analytics

  • Improved startup time.
  • Resolved an issue with campaign reporting that occurred when apps were opened through deep links on cold starts.

Authentication

  • Apps can now handle deep links natively and set language codes, for example, for password reset emails.
  • Users’ phone numbers now persist properly on clients.
  • Recovery emails are now reported as the correct action code type.
  • Improved app startup time by moving initialization off of the main thread.
  • Improved error for missing emails during new user creation.
  • Improved logging levels for Firebase Authentication to provide consistency across Firebase iOS products.

Crash Reporting

  • Resolved open issues with Firebase Crash Reporting.

Realtime Database

  • Realtime Database now purges the local cache if it can’t be loaded.
  • Removed implicit number-type conversion for some integers that were represented as doubles after round-tripping through the server.
  • Realtime Database no longer crashes when messages are sent to closed WebSocket connections.

Dynamic Links

Instance ID

  • Token and app identifier are now accessible when the device is locked.
  • InstanceID no longer crashes if the bundle identifier is nil.
  • Fixed a small memory leak that occurred when fetching a new token.
  • Improved and simplified both the token storage system and the queuing system for token fetches and deletes.

Cloud Messaging

  • Fixed an issue where setting shouldEstablishDirectChannel in a background thread was triggering a Main Thread Sanitizer warning in Xcode 9.
  • Included additional error logging for method swizzling.

Remote Config

  • Resolved crashes caused when an app’s main bundle ID is missing and added an error notification to alert developers of the issue.

Storage

Version 4.0.4 - July 12, 2017

  • Optimized nanoPB dependency.

Version 4.0.3 - June 29, 2017

  • Resolved warnings in Xcode 9.

AdMob

  • For interstitial ad units served on platforms that opt-out of video ads, the interstitial ads now have an immediate close option, even if an MRAID creative calls the useCustomClose() method.
  • Added text on the debug menu to indicate whether the creative preview or troubleshooting modes are active.

Analytics

  • Fixed issues with automatic screen reporting.

Remote Config

  • A warning now appears if the plist file you set default values from can’t be found.

Version 4.0.2 - June 08, 2017

  • Fixed issues with Analytics and Performance Monitoring.

Version 4.0.1 - June 06, 2017

  • Improved diagnostic messages for the Swift SDK.

Performance Monitoring

  • Removed dependency on farmhash to prevent symbol collisions.
  • If an exception is thrown when you create a Trace, the Trace’s name will now be printed.

Version 4.0.0 - May 17, 2017

  • FIROptions now has a simpler constructor and mutable properties.

AdMob

  • Removed the in-app purchase ad format.
  • Removed support for the ARMv7s architecture.

Analytics

  • Fixed an issue where user_engagement and session_start events were logged when apps were launched in the background. This addresses the related issues with inflated user engagement and session metrics.

Authentication

  • Added Phone Number Authentication. To learn more, see Authenticate with Firebase on iOS using a Phone Number.
  • Added methods that return additional user data from identity providers if available when authenticating users.
  • Improved session management by automatically refreshing tokens when possible and signing out users if the session is invalid, for example, after the user changes their password or deletes their account from another device.
  • Fixed an issue where reauthentication created new user accounts if the user credential is valid but does not match the currently signed-in user.
  • Switched the ERROR_EMAIL_ALREADY_IN_USE notification to ERROR_ACCOUNT_EXISTS_WITH_DIFFERENT_CREDENTIAL when the email account used in the signInWithCredential() method call is already in use by another account.
  • The FIREmailPasswordAuthProvider() method is now deprecated in favor of the FIREmailAuthProvider() method.
  • The getTokenWithCompletion() method is now deprecated in favor of the getIDTokenWithCompletion() method.

Crash Reporting

  • Added the ability to disable the Crash Reporting SDK by setting the crashCollectionEnabled setting to NO in your app's Info.plist file.

Realtime Database

Dynamic Links

  • Improved pending link retrieval process, especially when custom URL schemes are not set up correctly.

Cloud Messaging

  • Introduced an improved interface for Swift 3 developers.
  • Added new properties and methods to simplify FCM token management.
  • Added the APNSToken property to simplify APNs token management.
  • Added new delegate method to be notified of FCM token refreshes.
  • Added new shouldEstablishDirectChannel property to simplify connecting directly to FCM.

Performance Monitoring

Remote Config

  • The error message that was generated when getting the InstanceID has been replaced by a debug message.

Version 3.17.0 - April 25, 2017

Analytics

App Indexing

Invites

Dynamic Links

  • Developers can now create long and short Dynamic Links programmatically with the iOS Builder API.

Version 3.16.0 - April 12, 2017

  • Warnings in Xcode 8.3 no longer appearing (see Analytics).

AdMob

  • Correct ad size is now forwarded to mediation networks for smart banner mediation.

Analytics

  • Compiler warnings about NanoPb in Xcode 8.3 are no longer appearing.

Instance ID

  • Improved token-fetching logic.
  • Improved warnings, error messages, and console logging, including initialization error message.

Invites

  • Improved console logging.

Dynamic Links

  • Improved Xcode warnings.
  • Added description for FIRDynamicLink object.

Cloud Messaging

  • Custom UNNotificationCenterDelegates are swizzled properly when swizzling is enabled.
  • Resolved issue in iOS 8.0 and 8.1 with scheduled notifications.
  • Improved console logging.

Version 3.15.0 - March 16, 2017

  • Removed dependency on C++ libraries for app builds.

AdMob

  • New openInlineBrowser method in google_mobile_app_ads.js opens URLs in SFSafariViewController.
  • New GADAudioVideoManagerDelegate provides notifications on start and pause/stop in audio and video ad playback.

Invites

  • Fixed a bundling issue that caused validation errors during submission to the App Store.

Dynamic Links

  • Resolved issue causing crashes on app launch after installation for subset of users.

Version 3.14.0 - February 23, 2017

AdMob

  • Added play, pause and setMute methods to GADVideoController to control video playback.
  • Added new delegate methods to GADVideoControllerDelegate to start, pause, end, mute and unmute video content.
  • Added support for rewarded video mediation adapters to opt into early initialization before an ad request is made.

Remote Config

  • Remote Config gets config results from the default FIRApp configuration when multiple projects are configured.
  • Existing users no longer receive empty config results.

February 15, 2017

  • Added the mutable_content field to FCM API. When set to true, a notification message can be updated on an iOS 10+ client before it is presented to the user using the Notification Service app extension. The mutable_contentfield in the FCM API corresponds to the mutable-content APNs field.

Version 3.13.0 - February 14, 2017

Analytics

  • Added the ability to log events used to supply referral details of a re-engagement campaign to the FIREventNames header and related parameters to the FIRParameterNames header.
  • Added the ability to get app instance IDs using the +appInstanceID method in the FIRAnalytics class.

Authentication

Realtime Database

  • Added logging when an observeEvent call is rejected due to security rules.

Storage

  • Fixed a crash that occurred when user-provided callbacks had a value of nil.
  • Improved upload performance on devices with intermittent connectivity.

Dynamic Links

  • Long Dynamic Links can now track Google Analytics campaign ("UTM") parameters for Google Analytics for Firebase events, including dynamic_link_first_open and dynamic_link_app_open.

Version 3.12.0 - January 31, 2017

AdMob

Crash Reporting

  • Improvements to the automation of symbol file uploads.
  • Adjusted the verbosity of messages logged to the console.

Dynamic Links

  • Improved the reliability of Dynamic Links when opened on iOS 9 and iOS 10 in Facebook, Facebook Messenger, Twitter, Instagram, and Gmail.

SDK Version 3.11.1 - January 17, 2017

  • Reduced the verbosity of events logged by Firebase when using the Xcode debugger.

Remote Config

  • When activateFetched is called when an app starts, it no longer removes cached fetch results.
  • If an app makes multiple fetch requests without calling activateFetched between requests, fetch requests will now cache recent updates from the Remote Config service.

SDK Version 3.11.0 - December 13, 2016

  • Adds the ability to initialize FIRNetwork objects with either a default or custom reachability host.
  • Adds names to background tasks, so they can be more easily debugged in console logs.
  • Properly terminates background logging tasks when the network is slow or unavailable.

AdMob

  • Added a video controller to DFPBannerView objects.
  • The GADNativeExpressAdView, GADNativeContentAd, GADNativeAppInstallAd and GADNativeCustomTemplateAd video-controller properties are now nonnull.

Authentication

  • Adds four new methods that you can use to handle action codes that were delivered to users by email, such as verifying an email address or resetting a password: applyActionCode, checkActionCode, confirmPasswordReset, and verifyPasswordResetCode.
  • With this update, the Firebase SDK no longer applies the keychain workaround introduced in v3.0.5 for the iOS 10.2 simulator. This workaround is not needed because the underlying issue in the simulator has been fixed.
  • Fixes nullability compilation warnings that were raised when using Swift.
  • Improves reporting for errors caused by a missing password.

SDK Version 3.10.0 - November 21, 2016

AdMob

  • In preparation for App Transport Security changes in 2017, apps should use this version of the SDK when building apps for iOS 10, and include both the NSAllowsArbitraryLoadsInWebContent and NSAllowsArbitraryLoads exceptions.
  • Added the GADMediaView property to the GADNativeContentAd and GADNativeCustomTemplateAd classes.

    Analytics

  • Increased the maximum length of event names and parameter names to 40 characters, and the maximum length of string parameter values to 100 characters.

Crash Reporting

  • Improved the automatic upload of symbol files.

Dynamic Links

Invites

Storage

  • Snapshot data is now always returned from the requested snapshot, instead of the most recent snapshot.
  • Improvements to the ability to pause downloads.

Realtime Database

  • Unified the logging format.

SDK Version 3.9.0 - November 3, 2016

AdMob

  • Changes to the kGADAdSizeFluid constant that determines the width of a banner ad no longer change the frame size of a banner ad.

SDK Version 3.8.0 - October 24, 2016

  • The Firebase SDK for iOS API Reference now includes Swift 3.0 syntax, along with Objective C syntax.

Analytics

  • Added screen tracking support. Each app's current UIViewController is automatically tracked. The current screen is tracked with the firebase_screen_class parameter with every logged event, which provides valuable context. In addition to automatic screen tracking, you can manually track screens using the FIRAnalytics#setScreenName:screenClass method. This adds the firebase_screen parameter to every event logged while those screens are visible to app users.

Realtime Database

  • Reintroduced the persistenceCacheSizeBytes setting (previously available in the 2.x SDK) to control the disk size of the Firebase offline cache.
  • Use of the updateChildValues() method now only cancels transactions that are directly included in the updated paths (not transactions in adjacent paths). For example, an update at /move for a child node walk will cancel transactions at /, /move, and /move/walk and in any child nodes under /move/walk. But, it will no longer cancel transactions at sibling nodes, such as /move/run.

Storage

  • Fixed an issue that was preventing the upload of files with filenames that contain the plus (+) character.
  • Fixed an issue that was causing timeouts for file uploads and downloads to behave incorrectly.

Crash Reporting

  • Added support for Swift 2 and Swift 3.
  • Analytics events are now sent to the Crash Reporting service as part of error reports.

Dynamic Links

  • Fixed a minor issue with IPv6.

Invites

  • Fixed a minor issue with IPv6.

AdMob

SDK Version 3.7.1 - October 6, 2016

Analytics

  • Fixed an issue that causes a crash for some apps that call FirebaseAnalytics. Stack traces show that the crash occurs in -[FIRAAlarm cancel].

SDK Version 3.7.0 - October 3, 2016

Analytics

  • Analytics no longer includes the AdSupport framework. To include this framework in your app, you must add it. Note that user properties such as Age, Gender and Interests require this framework.

App Indexing

  • App Indexing has been deprecated in light of recent changes to the app review guidelines for iOS. To index your app for Google search, implement Universal Links.

AdMob

  • Added the GADNativeAdViewAdOptions method to GoogleMobileAds to specify the location of AdChoices in native ads.
  • Fixed a bug that causes a crash for some apps that call GoogleMobileAds. Stack traces show that the crash occurs in GADStringFromCGFloat.

SDK Version 3.6.0 - September 14, 2016

Analytics

  • Existing users who update to Analytics-enabled versions of an app are no longer included in first_open metrics. This correction could cause a drop in first_open metrics.

  • Conversion events are now uploaded within seconds of being logged.

  • Removed the feature that attributed Ads app conversions using the SFSafariViewController class.

Cloud Messaging

  • Added a new API method, -applicationReceivedRemoteMessage: to allow apps to receive data messages from FCM on devices running iOS 10 and greater.

Authentication

  • Improved the behavior of Firebase Authentication when testing apps using the iOS 10 simulator.
  • Fixed an issue with error reporting when a user provides an invalid email address while signing in with an email address and password.

Realtime Database

  • Fixed an issue that caused transactions to fail when executed before the SDK connects to the Firebase Realtime Database service.
  • Fixed a race condition where performing a transaction or adding an event observer immediately after connecting to the Firebase Realtime Database service could cause completion blocks for other operations to not be executed.
  • Fixed an issue affecting apps that use offline disk persistence where large integer values could lose precision after an app restart.

Remote Config

  • Fixed issues that caused a crash when an app attempts multiple concurrent fetch requests.

Dynamic Links

  • Analytics events are now automatically logged when users open your app, open your app from a Dynamic Link, and open your app for the first time from a Dynamic Link.
  • Dynamic Links no longer use the SFSafariViewController class.
  • Dynamic Links no longer has a dependency on the Core Location framework.

AdMob

  • AdMob no longer has a dependency on the Core Bluetooth, EventKit, and EventKitUI frameworks. Apps no longer need to provide NSBluetoothPeripheralUsageDescription and NSCalendarsUsageDescription keys in their Info.plist file.
  • Removed Mobile Rich-media Ad Interface Definitions (MRAID) 2.0 support for calendars and storing pictures.

SDK Version 3.5.2 - August 26, 2016

AdMob

  • Initial improvements toward fixing a bug that causes a crash for some apps that call GoogleMobileAds. Stack traces show that the crash occurs in GADStringFromCGFloat.

SDK Version 3.5.1 - August 23, 2016

Analytics

  • Added support for Analytics on iOS 10.

  • Added support for attributing AdWords app conversions from search and display web clicks on iOS 10.

  • Added a feature to validate the authenticity of in-app purchase events before they are reported by Google Analytics for Firebase.

Storage

  • Fixed issues with iOS 7 compatibility.
  • Fixed an issue that prevented observeStatus:FIRStorageUploadTask from correctly reporting progress when uploading a file.

App Indexing

  • Added support for App Indexing on iOS 10. App Indexing still requires iOS 9 or higher.

Dynamic Links

  • Added support for Dynamic Links on iOS 10.

AdMob

  • When associating native ads with a view, the view’s userInteractionEnabled property is changed to NO to match the value expected by the SDK.
  • The Google Mobile Ads SDK now has a dependency on MobileCoreServices.
  • Added the -[GADMobileAds isSDKVersionAtLeastMajor:minor:patch:] API method to allow ad networks to determine if a device is running at least a specified minimum version (major.minor.patch) of the Google Mobile Ads SDK.

SDK Version 3.4.0 - August 1, 2016

Authentication

  • Fixed a bug that causes a race condition that could crash an app running on iOS 9 with an exception from NSURLSession.

Cloud Messaging

  • plist files used by FIRMessaging are now stored in an ApplicationSupport directory.

Remote Config

  • Fixed an issue where some attempts to fetch parameter values can cause a crash due to a JSON serialization failure.
  • Added the allKeysWithPrefix: API method to allow developers to find parameter keys based on a key prefix.

Crash Reporting

  • Fixed an error that occurred when building an app that uses a JSON file.
  • Minidumps are now compressed separately to avoid automatically unzipping during processing.
  • Fixed an issue that prevented batch-upload from working with files that contain non-ASCII characters.

App Indexing

  • Bitcode support is now available for the App Indexing SDK for iOS.

Dynamic Links

  • Fixed a bug that caused crashes when the resolveLink() API returns a non-JSON object.

AdMob

  • Enhanced the quality of ad rendering with the addition of framework dependencies for GLKit, OpenGLES, CoreMotion, and CoreVideo.
  • Added the +[GADMobileAds configureWithApplicationID:] method. AdMob publishers should call this method with their application ID to initialize AdMob.
  • Users of DoubleClick for Publishers (DFP) who use SDK mediation will no longer see the following warning: mediated ad type is unknown or invalid

SDK Version 3.3.0 - June 29, 2016

Analytics

  • You can now attribute AdWords app conversions from search and display web clicks on Safari using SFSafariViewController, an iOS API that supports data sharing between apps and the Safari browser on the same device running iOS 9.0 or higher. This lets you measure app installs and in-app actions from app promotion ads on mobile websites. This functionality is included in the Firebase SDK, and is enabled without any changes to your app's source code.

Authentication

  • The bundle ID custom scheme is no longer required to support Google Sign-In.
  • Minor improvements to error handling and error messages.
  • User anonymity is now handled the same way for iOS as it is for other platforms.

Realtime Database

  • Fixed a rare crash in [FSRWebSocket stream:handleEvent:].
  • Improved error messages for some common mistakes configuring FIRApp.
  • Firebase now logs a warning instead of throwing an exception when your database has exceeded its concurrency limit.

Cloud Messaging

  • Cloud Messaging no longer registers for remote notifications on startup.

Storage

The Notifications composer

  • You can now add more than three custom data fields when sending a notification. A notification should not exceed 4KB total, including message text, custom data, and any advanced options.
  • Reduced the refresh interval for app versions and language lists.
  • The conversion event counts in the Notifications composer Google Analytics for Firebase funnel view now show the number of users who have triggered the conversion event at least once. Previously, it showed the raw number of triggered conversion events.

Dynamic Links

  • Google Analytics for Firebase now logs all app open events driven from user clicks on Dynamic Links.
  • Including Dynamic Links in your app now adds less than 70K to your app's .ipa file, a reduction of nearly 2 MB from the previous release.

Send feedback about...

Need help? Visit our support page.