Firebase Apple SDK Release Notes

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

Version 12.2.0 - August 27, 2025

Firebase AI Logic

  • Added support for returning thought summaries, which are synthesized versions of a model's internal reasoning process (#15096).
  • Added support for limited-use tokens with Firebase App Check. These limited-use tokens are required for an upcoming optional feature called replay protection. We recommend enabling the usage of limited-use tokens now so that when replay protection becomes available, you can enable it sooner because more of your users will be on versions of your app that send limited-use tokens. (#15099)

Analytics

  • Fixed a code signing issue by depending on GoogleAdsOnDeviceConversion 2.3.0 (#15052).
  • Fixed another issue that can cause slow launches (#14619).
  • Internal code cleanup and optimizations.

App Check

  • Fixed a missing symbol error for FIRGetLoggerLevel (#12899).

Authentication

  • Added TOTP support for macOS.

Data Connect

  • Starting FDC Tools from Xcode sets up a template Firebase Data Connect project in the Xcode project folder. See the README.md for an updated Getting Started section.

Remote Config

  • Fixed a race condition that could lead to a crash during network session recreation (#15087).

Version 12.1.0 - August 4, 2025

Analytics

  • Improved on-device conversion measurement for first-party data to work with web to app campaigns.
  • Fixed an issue that can cause slow launches (#14619).
  • Internal code cleanup and optimizations.

Authentication

  • Fix a formatting issue with generated TOTP URLs that prevented them from working with the Google Authenticator app (#15128).

Crashlytics

  • Crashlytics no longer logs using raw print in an internal class (#15138).

Data Connect

Cloud Firestore

  • Fixed accidental removal of pod "Firebase/Firestore" for tvOS in 12.0.0.

Firebase In-App Messaging

  • Fixed an Xcode 26 crash caused by a missing NSUserActivityTypeBrowsingWeb symbol. Note that this fix isn't in the 12.1.0 zip and Carthage distributions, but will be included from 12.2.0 onwards (#15159).

FCM

  • Fix Xcode 26 crash from missing NSUserActivityTypeBrowsingWeb symbol. Note that this fix isn't in the 12.1.0 zip and Carthage distributions, but will be included from 12.2.0 onwards (#15159).

Version 12.0.0 - July 15, 2025

  • Breaking change: Firebase's minimum supported versions have updated for the following platforms:
    Platform Firebase 12
    iOS 15.0
    tvOS 15.0
    macOS 10.15
    watchOS 7.0
  • Breaking change: FirebaseDynamicLinks has been removed. See the Dynamic Links Deprecation FAQ for more info.
  • Breaking change: Removed the Options.deepLinkURLScheme property. This API was exclusively used by the Dynamic Links SDK, which has been removed.
  • Breaking change: Removed the following unused API.
    • Options.androidClientID
    • Options.trackingID
  • Breaking change: Firebase's zip and Carthage distributions of the Google Mobile Ads SDK have been removed. Instead, the Google Mobile Ads SDK binary distribution should be accessed from the AdMob website. Note that all pre-existing versions of the Firebase zip or Carthage distributions will continue to be available and functional. Learn more about this change in our FAQ (#14408).
  • Breaking change: The deprecated Vertex AI in Firebase SDK (FirebaseVertexAI) has been removed. It has been replaced by the Firebase AI Logic SDK (FirebaseAI) to accommodate the evolving set of supported features and services. To start using the new SDK, import the FirebaseAI module and use the top-level FirebaseAI class. See details in the migration guide.
  • Breaking change: The Firebase Swift package now requires the Swift 6.0 toolchain (Xcode 16.2+).
  • Update GTMSessionFetcher dependency specifications to enable support for the compatible GTMSessionFetcher 5.x versions.

Firebase AI Logic

  • Added support for Grounding with Google Search (#15014).
  • Breaking Change: Removed CountTokensResponse.totalBillableCharacters which was deprecated in 11.15.0. Use totalTokens instead (#15056).

Analytics

  • Breaking change: The deprecated AdIdSupport and WithoutAdIdSupport subspecs, FirebaseAnalyticsOnDeviceConversion, and GoogleAppMeasurementOnDeviceConversion pods and equivalent Swift Package Manager targets have been removed. See our migration guide.
  • Added support for opting out of On-Device Conversion Measurement (Event Data). To opt-out of this feature, add the key GOOGLE_ADS_ON_DEVICE_CONVERSION_EVENT_DATA_ENABLED with Boolean value NO to your app's Info.plist file.
  • Internal code cleanup and optimizations.

Authentication

  • Breaking Change: Removed the following Dynamic Links related APIs:
    • ActionCodeSettings.dynamicLinkDomain
    • AuthErrorCode.dynamicLinkNotActivated
    • AuthErrorCode.invalidDynamicLinkDomain
  • Breaking Change: Remove deprecated Swift APIs using String-typed productIDs that were in favor of API that leverages the AuthProviderID enum. Note, this only affects Swift clients.
  • Breaking Change: TOTPSecret.openInOTPApp(withQRCodeURL:) is now labeled with @MainActor and requires the await keyword when called off of the main actor or main thread.
  • Simplified completion handler memory management in Auth interop (#14962).

Crashlytics

  • Resolved compiler warnings related to constant definitions (#15059).

Data Connect

  • DataConnectOperationError now includes underlying server error messages in the debug description instead of a generic decoding error #14945.
  • Breaking change: FirebaseDynamicLinks has been removed. See https://firebase.google.com/support/dynamic-links-faq for more info.

Cloud Functions

  • Breaking Change: Mark HTTPSCallable and HTTPSCallableOptions as final classes for Swift clients. This was to achieve Swift 6 checked Sendable support.

Remote Config

  • Improved how the SDK handles real-time requests when a Firebase project has exceeded its available quota for real-time services. Released in anticipation of future quota enforcement, this change is designed to fetch the latest template even when the quota is exhausted.

Version 11.15.0 - June 23, 2025

  • Remove c99 as the required C language standard. (#14950)
  • Deprecated the Options.deepLinkURLScheme property. This property will be removed in a future release. This is related to the overall Firebase Dynamic Links deprecation. For more details, see the Dynamic Links deprecation FAQ.

Firebase AI Logic

  • Fixed Sendable warnings introduced in the Xcode 26 beta. (#14947)
  • Added support for setting title in string, number and array Schema types. (#14971)
  • Added support for configuring the "thinking" budget when using Gemini 2.5 series models. (#14909)
  • Deprecated CountTokensResponse.totalBillableCharacters; use totalTokens instead. Gemini 2.0 series models and newer are always billed by token count. (#14934)

Analytics

  • Fixed an issue that caused high CPU usage (#14891).
  • Fixed an issue that prevented Analytics from being configured with FirebaseApp.configure(options:) (#230).
  • Internal code cleanup and optimizations.

Authentication

  • Fixed Sendable warnings introduced in the Xcode 26 beta. (#14996)

Version 11.14.0 - June 3, 2025

Analytics

  • Improved the structure of the Google Analytics for Firebase SDK, with some components marked as deprecated to be removed in a future release (details).

Authentication

  • Synchronize internal AuthKeychainServices class to prevent crashes from concurrent access (#14835).

FCM

  • Fix a potential SQL injection issue (#14846).

Remote Config

  • Fix build warning from comparison of different enumeration types.

Version 11.13.0 - May 20, 2025

Firebase AI Logic

  • Initial release of the Firebase AI Logic SDK (FirebaseAI). This SDK replaces the previous Vertex AI in Firebase SDK (FirebaseVertexAI) to accommodate the evolving set of supported features and services.
    • The new Firebase AI Logic SDK provides public preview support for the Gemini Developer API, including its free tier offering.
    • Using the Firebase AI Logic SDK with the Vertex AI Gemini API is still generally available (GA).

      To start using the new SDK, import the FirebaseAI module and use the top-level FirebaseAI class. See details in the migration guide.
  • Fixed ModalityTokenCount decoding when the tokenCount field is omitted; this occurs when the count is 0 (#14745).
  • Fixed Candidate decoding when SafetyRating values are missing a category or probability; this may occur when using Gemini for image generation (#14817).

Crashlytics

  • Improved startup time by putting some initialization steps on a background (#13675, #13232).

Analytics

  • Fixed limit of distinctly named events for Google Analytics 360 properties.
  • Internal code cleanup and optimizations.

Remote Config

  • Fix an issue where network requests would fail in the iOS 18.4 simulator due to a URLSession bug introduced in Xcode 16.3 (#14728).

Cloud Storage

  • putFile now works in App Clips. Similarly to app extensions, background session configurations are not used in App Clips (#14794).

Vertex AI in Firebase

  • Renamed: Vertex AI in Firebase (FirebaseVertexAI) has been renamed and replaced by the new Firebase AI SDK (FirebaseAI). Please migrate to the new FirebaseAI module. See the Firebase AI release notes for migration details and new changes.

    Note: Existing Vertex AI in Firebase users may continue to use import FirebaseVertexAI and the VertexAI top-level class, though these will be removed in a future release.
  • Fixed ModalityTokenCount decoding when the tokenCount field is omitted; this occurs when the count is 0 (#14745).

Version 11.12.0 - April 21, 2025

Authentication

  • Fix a fatalError unenrolling from MFA. An invalid user token now throws an invalidUserToken error instead of crashing (#14663).
  • Fix the parameter from "languageCode" to "lang" in ActionCodeURL (#14664).
  • Fix the parameters for requestType in ActionCodeOperation (#14665).

Analytics

  • Internal code cleanup and optimizations.

Data Connect

  • AnyValue type fixes to support decoding values fetched using PostgreSQL jsonb_build_object. AnyValue now internally stores data as a JSON value / dictionary instead of Swift.Data.
  • Firebase Data Connect has exited beta and is now generally available for use.
  • Breaking Change: Refactored the base DataConnectError error type to be a protocol instead of an enum and introduced concrete error types DataConnectInitError, DataConnectCodecError, DataConnectOperationError. Note that if you have code using a switch on the previous error enum, you will need to update that code. See the PR for a usage example and DataConnectError.swift for implementation details.
  • Support for partial errors via the above mentioned DataConnectOperationError.

Cloud Firestore

  • Fixed the null value handling in isNotEqualTo and notIn filters.

Cloud Functions

  • Fix regression from 11.6.0 where HTTPSCallable did not invoke completion block on main thread (#14653).

Vertex AI in Firebase

  • Public Preview: Added support for specifying response modalities in GenerationConfig. This includes public experimental support for image generation using Gemini 2.0 Flash (gemini-2.0-flash-exp) (#14658).

    Note: This feature is in Public Preview and relies on experimental models, which means that it is not subject to any SLA or deprecation policy and could change in backwards-incompatible ways.
  • Added support for more Schema fields: minItems/maxItems (array size limits), title (schema name), minimum/maximum (numeric ranges), anyOf (select from sub-schemas), and propertyOrdering (JSON key order) (#14647).
  • Fixed an issue where network requests would fail in the iOS 18.4 simulator due to a URLSession bug introduced in Xcode 16.3 (#14677).

Version 11.11.0 - March 31, 2025

Analytics

  • Fixed an issue with the Analytics background task running longer than expected (#14541).
  • Fixed an issue with uploading large ecommerce events.
  • Internal code cleanup and optimizations.

Cloud Firestore

  • Fixed a crash in the customized priority queue compare function used in the cache index manager (#14496).

Vertex AI in Firebase

  • VertexAI now emits a warning when attempting to use an incompatible model with GenerativeModel or ImagenModel (#14610).

Version 11.10.0 - March 17, 2025

Analytics

  • Internal changes to improve new customer acquisition measurement.
  • Internal code cleanup and optimizations.

Data Connect

  • Dependency on Firebase iOS SDK changed to 'minimum version required' instead of an 'exact version'. This lets apps use the latest version of the Firebase iOS SDK.

Cloud Functions

  • Streaming callable functions are now supported.

Remote Config

  • Fix intermittent RCNConfigRealtime crash due to incorrect parsing of fragmented JSON (#14518).

Vertex AI in Firebase

  • The Vertex AI SDK no longer requires @preconcurrency when imported in Swift 6.
  • The Vertex AI Sample App now includes an image generation example.
  • The Vertex AI Sample App is now part of the quickstart-ios repo.
  • The role in system instructions is now ignored; no code changes are required. (#14558)

Version 11.9.0 - February 25, 2025

Analytics

  • Fixed an issue with session_start events being reported when the app is launched in the background (#12219, #12347).
  • Fixed unresponsiveness at first startup (#13961).
  • Internal code cleanup and optimizations.

Authentication

  • Using reCAPTCHA Enterprise and Firebase Auth requires reCAPTCHA Enterprise 18.7.0 or later.

Crashlytics

  • Made on-demand fatal recording thread suspension configurable through settings to improve performance and avoid an audio glitch on Unity.

Realtime Database

  • Fix connection failure issue introduced in 10.27.0 by restoring the Socket Rocket implementation instead of NSURLSessionWebSocket. Note that this may expose a Thread Performance Checker Warning (#12883). (#14188, #13877, #13855, #13529)
  • Added Sendable conformance to DataSnapshot (#14369).

Cloud Firestore

  • Fixed memory leak in Query.whereField() (#13978).

Cloud Functions

FCM

  • Migrate FCM codebase to new NSKeyedUnarchiver APIs (#14424).

Remote Config

  • Mark internal fetchSession property as atomic to prevent a concurrency related crash (#14449).

Vertex AI in Firebase

  • Public Preview: Added support for generating images using the Imagen 3 models.

  • Added support for modality-based token count (#14406).

Version 11.8.1 - February 4, 2025

Authentication

  • Suppress deprecation build warning introduced in 11.8.0.

Version 11.8.0 - February 3, 2025

  • The zip and Carthage distributions of the Google Mobile Ads SDK with Firebase are deprecated and will be removed in the next major release. Instead, the Google Mobile Ads SDK binary distribution should be accessed from the AdMob documentation. Note that any existing versions of the Firebase zip or Carthage distributions will continue to be available and functional. Learn more about this change in our FAQ: https://firebase.google.com/support/faq/#admob-which-sdk (#14408).

Authentication

  • Added ActionCodeSettings.linkDomain to customize the Firebase Hosting link domain that is used in out-of-band email action flows.
  • Deprecated ActionCodeSettings.dynamicLinkDomain.

Cloud Firestore

  • Fixed use-after-free bug when internally formatting strings (#14306).

FCM

  • Don't cache FCM registration token operations (#14352).

Remote Config

  • Mark completion handlers as Sendable in the RemoteConfig class. Some completions handlers were missed in the 11.7.0 update (#14257).

Version 11.7.0 - January 13, 2025

Analytics

  • Fixed verification issue with StoreKit 2 in_app_purchase events.
  • Internal code cleanup and optimizations.

Authentication

  • Fix Multi-factor session crash on second Firebase app (#14238).
  • Updated most decoders to be consistent with Firebase 10's behavior for decoding nil values (#14212).
  • Address Xcode 16.2 concurrency compile time issues (#14279).
  • Fix handling of cloud blocking function errors (#14052).
  • Fix phone auth flow to skip RCE verification if appVerificationDisabledForTesting is set (#14242).
  • Avoid over release crash by making concurrently-accessed properties atomic (#14308).

Crashlytics

  • Updated upload-symbols to version 3.20, wait for debug.dylib DWARF content getting generated when build with --build-phase option. Added debug.dylib DWARF content to run script input file list for user who enabled user script sandboxing (#14054).
  • Updated all memory allocation from malloc() to calloc() (#14209).

Cloud Firestore

  • Fixed use-after-free bug when internally formatting strings (#14306).

Remote Config

  • Mark ConfigUpdateListenerRegistration Sendable (#14215).
  • Mark completion handlers as Sendable in RemoteConfig class (#14257).
  • Added support for custom signal targeting in Remote Config. Use setCustomSignals API for setting custom signals and use them to build custom targeting conditions in Remote Config (#13976).

Version 11.6.0 - December 3, 2024

Authentication

  • Added reCAPTCHA Enterprise support for app verification during phone authentication for Firebase Authentication (#14114).
  • Restore Firebase 10 behavior by synchronizing access to the Auth.currentUser API. This resolves some Firebase 11 issues where the current user is unexpectedly nil at startup.
  • Restore Firebase 10 decoding behavior to prevent user provider data from always being decoded as nil . Note that this fix was only needed for cases where Firebase 11 was reading data written by Firebase 10 (#14011.
  • Restore Firebase 10 decoding behavior to prevent user provider data from being decoded as nil when a user has multiple linked providers. Note that this fix was only needed for cases where Firebase 11 was reading data written by Firebase 10. Note that this fix will not be in the 11.6.0 zip and Carthage distributions, but will be included from 11.6.0 onwards (#14011).

Data Connect

  • FriendlyFlix - a comprehensive SwiftUI sample app.
  • Switched to using AppCheckInterop APIs to remove hard dependency on FirebaseAppCheck library.

Cloud Firestore

  • Add conditional Sendable conformance so ServerTimestamp<T> is Sendable if T is Sendable (#14042).

Performance Monitoring

  • Fix a crash related to registering for notifications when the app is between foreground or background states (#13174).

Vertex AI in Firebase

  • The token counts from GenerativeModel.countTokens(...) now include tokens from the schema for JSON output and function calling; reported token counts will now be higher if using these features.

Version 11.5.0 - November 12, 2024

Authentication

  • Restore pre-Firebase 11 decoding behavior to prevent users getting logged out when upgrading from Firebase 8.10.0 or earlier to Firebase 11. Note that this fix will not be in the 11.5.0 zip and Carthage distributions, but will be included from 11.6.0 onwards (#14011).
  • Restore Firebase 10 keychain error handling behavior when retrieving Firebase Auth tokens, potentially causing user sign-out on Firebase 11. Note that this fix will not be in the 11.5.0 zip and Carthage distributions, but will be included from 11.6.0 onwards (#14067).

Crashlytics

  • Updated upload-symbols to version 3.19, removed all methods requiring CFRelease and switched to modern classes (#13420).

Data Connect

  • Support for Swift 6 strict concurrency.
  • Logging within SDKs.
  • SDK will throw errors if partial GraphQL errors are detected during operation execution.

FCM

  • Improve token-fetch failure logging with detailed error info (#13997).

Remote Config

  • Mark two internal properties as atomic to prevent concurrency related crash (#13898).

Performance Monitoring

  • Replaced usage of the deprecated UIApplication.keyWindow property with UIWindow.isKeyWindow; this API is also available on visionOS. Note that this fix will not be in the 11.5.0 zip and Carthage distributions, but will be included from 11.6.0 onwards (#14048).

Vertex AI in Firebase

  • Fixed an issue where VertexAI.vertexAI(app: app1) and VertexAI.vertexAI(app: app2) would return the same instance if their location was the same, including the default us-central1 (#14007).
  • Removed format: "double" in Schema.double() since double-precision accuracy isn't enforced by the model; continue using the Swift Double type when decoding data produced with this schema (#13990).

Version 11.4.2 - October 23, 2024

  • CocoaPods-only release to fix iOS 12 build failure resulting from incomplete implementation in the FirebaseCoreInternal CocoaPod.

Version 11.4.1 - October 22, 2024

  • CocoaPods-only release to revert breaking change in FirebaseCoreExtension SDK (#13942).

Version 11.4.0 - October 21, 2024

  • Fixed an issue building documentation with some Firebase products (#13756).

Analytics

  • Added support for Server-side Tag Manager.
  • Fixed an issue with setDefaultEventParameters API not consistently applying default event parameters to automatic events such as first_open and session_start events.
  • Internal code cleanup and optimizations.

Authentication

  • Restored Firebase 10 behavior by ignoring nil display names used during multi factor enrollment (#13856).
  • Fixed crash when enrolling account with time-based one-time password multifactor auth (#13880).

Crashlytics

  • Updated upload-symbols to version 3.18 with support for uploading multiple DWARF contents in a dSYM bundle (#13543).

Cloud Firestore

  • Prepared Firestore cache to support session token (#13648).

Performance Monitoring

  • Fixed a crash related to thread sanitization on FPRNetworkTrace class (#13581).

Vertex AI in Firebase

  • Vertex AI in Firebase is now Generally Available (GA) and can be used in production apps (#13725).

    Use the Vertex AI in Firebase library to call the Vertex AI Gemini API directly from your app. This client library is built specifically for use with Swift apps, offering security options against unauthorized clients as well as integrations with other Firebase services.

    Note: Vertex AI in Firebase is currently only available in Swift Package Manager and CocoaPods. Stay tuned for the next release for the Zip and Carthage distributions.

  • Breaking Change: The HarmCategory enum is no longer nested inside the SafetySetting struct and the unspecified case has been removed (#13686).
  • Breaking Change: The BlockThreshold enum in SafetySetting has been renamed to HarmBlockThreshold (#13696).
  • Breaking Change: The unspecified case has been removed from the FinishReason, BlockReason and HarmProbability enums; this scenario is now handled by the existing unknown case (#13699).
  • Breaking Change: The property citationSources of CitationMetadata has been renamed to citations (#13702).
  • Breaking Change: The initializer for Schema is now internal; use the new type methods Schema.string(...), Schema.object(...), etc., instead (#13852).
  • Breaking Change: The initializer for FunctionDeclaration now accepts an array of optional parameters instead of a list of required parameters; if a parameter is not listed as optional it is assumed to be required (#13616).
  • Breaking Change: CountTokensResponse.totalBillableCharacters is now optional (Int?); it may be null in cases such as when a GenerateContentRequest contains only images or other non-text content (#13721).
  • Breaking Change: The ImageConversionError enum is no longer public; image conversion errors are still reported as GenerateContentError.promptImageContentError (#13735).
  • Breaking Change: The CountTokensError enum has been removed; errors occurring in GenerativeModel.countTokens(...) are now thrown directly instead of being wrapped in a CountTokensError.internalError (#13736).
  • Breaking Change: The enum ModelContent.Part has been replaced with a protocol named Part to avoid future breaking changes with new part types. The new types TextPart and FunctionCallPart may be received when generating content; additionally the types InlineDataPart, FileDataPart and FunctionResponsePart may be provided as input (#13767).
  • Breaking Change: All initializers for ModelContent now require the label parts: (#13832).
  • Breaking Change: HarmCategory, HarmProbability, and FinishReason are now structs instead of enums types and the unknown cases have been removed; in a switch statement, use the default: case to cover unknown or unhandled values (#13728, #13854, #13860).
  • Breaking Change: The Tool initializer is now internal; use the new type method functionDeclarations(_:) to create a Tool for function calling (#13873).
  • Breaking Change: The FunctionCallingConfig initializer and Mode enum are now internal; use one of the new type methods auto(), any(allowedFunctionNames:), or none() to create a config (#13873).
  • Breaking Change: The CandidateResponse type is now named Candidate. (#13897)
  • Breaking Change: The minimum deployment target for the SDK is now macOS 12.0; all other platform minimums remain the same at iOS 15.0, macCatalyst 15.0, tvOS 15.0, and watchOS 8.0 (#13903).
  • Breaking Change: All of the public properties of GenerationConfig are now internal; they all remain configurable in the initializer (#13904).
  • The default request timeout is now 180 seconds instead of the platform-default value of 60 seconds for a URLRequest; this timeout may still be customized in RequestOptions (#13722).
  • The response from GenerativeModel.countTokens(...) now includes systemInstruction, tools and generationConfig in the totalTokens and totalBillableCharacters counts, where applicable (#13813).
  • Added a new HarmCategory .civicIntegrity for filtering content that may be used to harm civic integrity. (#13728)
  • Added probabilityScore, severity and severityScore in SafetyRating to provide more fine-grained detail on blocked responses (#13875).
  • Added a new HarmBlockThreshold .off, which turns off the safety filter (#13863).
  • Added an optional HarmBlockMethod parameter method in SafetySetting that configures whether responses are blocked based on the probability and/or severity of content being in a HarmCategory (#13876).
  • Added new FinishReason values .blocklist, .prohibitedContent, .spii and .malformedFunctionCall that may be reported (#13860).
  • Added new BlockReason values .blocklist and .prohibitedContent that may be reported when a prompt is blocked (#13861).
  • Added the PromptFeedback property blockReasonMessage that may be provided alongside the blockReason (#13891).
  • Added an optional publicationDate property that may be provided in Citation (#13893).
  • Added presencePenalty and frequencyPenalty parameters to GenerationConfig (#13899).

Version 11.3.0 - September 30, 2024

Analytics

  • Fixed an issue with the Crashlytics integration that prevented automatic screen_view events from being sent as breadcrumb logs.
  • Internal code cleanup and optimizations.

Authentication

  • Restore Firebase 10 behavior by querying with the kSecAttrSynchronizable key when auth state is set to be shared across devices (#13584).
  • Prevent a bad memory access crash by using non-ObjC Swift types in the SDK's networking layer, and moving synchronous work off of the shared Swift concurrency queue (#13650).
  • Restore Firebase 10 behavior by forwarding errors from interrupted reCAPTCHA or OIDC login flows (#13645).

Data Connect

  • Initial public preview release of the SDK. For more information see the Firebase Data Connect documentation.

Cloud Firestore

  • Improve efficiency of memory persistence when processing a large number of writes (#13572).

Version 11.2.0 - September 10, 2024

Authentication

  • Fixed crashes that could occur in Swift continuation blocks running in the Xcode 16 betas (#13480).
  • Fixed Phone Auth using Sandbox APNS tokens that broke in 11.0.0 (#13479).
  • Fixed crash when fetching sign in methods due to unexpected nil. Previously, fetching sign in methods could return both a nil array of sign in methods and a nil error. In such cases, an empty array is instead returned with the nil error (#13550).
  • Fixed user session persistence in multi tenant projects. Introduced in 11.0.0 (#13565).
  • Fixed encoding crash that occurs when using TOTP multi-factor authentication. Note that this fix isn't in the 11.2.0 zip and Carthage distributions, but will be included from 11.3.0 onwards (#13591).

Realtime Database

  • Fix temporary disconnects when the app goes inactive. The issue was introduced in 10.27.0 (#13529).

Cloud Firestore

  • Marked all public classes with only readonly properties as Sendable to address Swift Concurrency Check warning (#12666).

Vertex AI in Firebase

  • Resolved a decoding error for citations without a uri and added support for decoding title fields, which were previously ignored (#13518).
  • Breaking Change: The methods for starting streaming requests (generateContentStream and sendMessageStream) are now throwing and asynchronous and must be called with try await (#13545, #13573).
  • Breaking Change: Creating a chat instance (startChat) is now asynchronous and must be called with await (#13545).
  • Breaking Change: The source image in the ImageConversionError.couldNotConvertToJPEG error case is now an enum value instead of the Any type (#13575).
  • Added support for specifying a JSON responseSchema in GenerationConfig; see control generated output for more details (#13576).

Version 11.1.0 - August 19, 2024

Analytics

  • Fixed an issue related to the enforcement of event parameter value character limits during an app's first open.
  • Internal code cleanup and optimizations.

Authentication

  • Fixed Swift.error conformance for AuthErrorCode (#13430).
  • Added custom provider support to AuthProviderID. Note that this change will be breaking to any code that implemented an exhaustive switch on AuthProviderID in 11.0.0 - the switch will need expansion (#13429).
  • Fix crash introduced in 11.0.0 in phone authentication flow from implicitly unwrapping nil error after a token timeout (#13470).
  • Objective-C only: [OAuthProvider getCredentialWithUIDelegate] was not calling its completion handler in the main thread. Regressed in 11.0.0. The fix is only for CocoaPods and Swift Package Manager. The zip and Carthage fix will roll out in 11.2.0 (firebase/FirebaseUI-iOS#1199).

Cloud Firestore

  • Add VectorValue type support.

Cloud Storage

  • Fix a potential data race in Storage initialization (#13369).

Version 11.0.0 - July 30, 2024

  • Breaking change: Firebase's minimum supported versions have updated for the following platforms:
    • PlatformFirebase 11
      iOS13.0
      tvOS13.0
      macOS10.15
      watchOS7.0
    • FirebaseAnalytics and FirebaseCrashlytics also continue to support iOS 12.0.
  • Breaking change: The deprecated Swift extension SDKs for Analytics, Firestore, Database, Remote Config and In App Messaging have been removed. See our migration guide.
  • Update underlying FIRLogger implementation from asl to os_log.
  • Remove FIRLoggerForceSTDERR configuration option.
  • Move Timestamp class into FirebaseCore. FirebaseFirestore.Timestamp was changed to FirebaseCore.Timestamp (#13221).

Analytics

  • Breaking change: The deprecated FirebaseAnalyticsSwift module has been removed. See our migration guide.
  • Internal code cleanup and optimizations.

Authentication

  • Fixed auth domain matching code to prioritize matching firebaseapp.com over web.app even if the server returns the web.app domain listed first (#7992).
  • Introduced the Swift enum AuthProviderID for the Auth Provider IDs (#9236).
  • Swift APIs using String-typed productIDs have been deprecated in favor of newly added API that leverages the AuthProviderID enum.
  • Breaking change: The email property in ActionCodeInfo is now non-optional.

Realtime Database

  • Breaking change: The deprecated FirebaseDatabaseSwift module has been removed. See our migration guide.
  • Socket Rocket has been removed from the implementation. There should be no impact on functionality (#13100).

Cloud Firestore

  • Breaking change: The deprecated FirebaseFirestoreSwift module has been removed. See our migration guide.
  • Breaking change: LRU Garbage Collector is now the default GC for memory cache, eager GC is now opt-in (via MemoryCacheSettings(garbageCollectorSettings: MemoryEagerGCSettings())) instead of the default one.
  • Move Timestamp class into FirebaseCore. FirebaseFirestore.Timestamp was changed to FirebaseCore.Timestamp (#13221).
  • Update gRPC dependency to 1.65.

Firebase In-App Messaging

  • Breaking change: The deprecated FirebaseInAppMessagingSwift module has been removed. See our migration guide.
  • Breaking Change: The following Swift API have been renamed:
    • FIRInAppMessagingDismissTypeInAppMessagingDismissType
    • FIRInAppMessagingDisplayMessageTypeInAppMessagingDisplayMessageType
    • FIRInAppMessagingDisplayTriggerTypeInAppMessagingDisplayTriggerType
    • FIAMDisplayRenderErrorTypeInAppMessagingDisplayRenderError Note that InAppMessagingDisplayRenderError is now a native Swift error and can be directly caught (instead of catching an NSError and checking the error code).

FCM

  • Completed Messaging's transition to NSSecureCoding (#12343).

Remote Config

  • RemoteConfigValue.stringValue is now nonnull. This may break some builds (#10870).
  • Breaking change: The deprecated FirebaseRemoteConfigSwift module has been removed. See our migration guide.

Cloud Storage

  • Updated error handling to support both Swift error enum handling and NSError error handling. Some of the Swift enums have additional parameters which may be a breaking change. There are additional NSError's for completeness, but nothing related to NSError handling is breaking. (#13071, #10889, #13114)

Version 10.29.0 - July 8, 2024

FCM

  • Renamed "initWithFileName" internal method that was causing submission issues for some users (#13134).
  • Fixed the APS Environment key on visionOS (#13173).

Vertex AI in Firebase

  • Added community support for watchOS (#13215).

Version 10.28.1 - June 24, 2024

Crashlytics

  • Reverted "Add SIGTERM support (#12881)" introduced in version 10.27.0 (#13117).

Version 10.28.0 - June 17, 2024

Analytics

  • Added a new default consent state ("eu_consent_policy") for ad_user_data and ad_personalization consent types.

Crashlytics

  • Created a new queue for rollouts persistence writes and made sure rollouts logging queue is not nil while dispatching (#12913).

Performance Monitoring

  • Fix Crash from InstrumentUploadTaskWithStreamedRequest (#12983).
  • Replace SystemConfiguration with a more recent network monitoring API by Apple (#13079).

Vertex AI in Firebase

  • Removed uses of the gemini-1.5-flash-preview-0514 model in docs and samples. Developers should now use the auto-updated versions, gemini-1.5-pro or gemini-1.5-flash, or a specific stable version; see available model names for more details (#13099).
  • Added community support for tvOS and visionOS (#13090, #13092).

Version 10.27.0 - May 29, 2024

App Check

  • CocoaPods: missing symbol error for FIRGetLoggerLevel (#12899).

Analytics

  • Fixed an issue that prevented manually-logged ad impression events from activating Firebase A/B Testing experiments.
  • Internal code cleanup.

Crashlytics

  • Added support for catching the SIGTERM signal (#12881).
  • Fixed a thread blocking when persisting Remote Config Rollouts to disk (#12913).

Realtime Database

  • Update internal socket implementation to use NSURLSessionWebSocket where available (#12883).

Firebase In-App Messaging

  • Fixed crash at app start that affected CocoaPods users using static frameworks (#12882).

FCM

  • Fixed bug preventing Messaging from working with a custom sqlite3 dependency (#12900).

Vertex AI in Firebase

  • Removed uses of the gemini-1.5-pro-preview-0409 model in docs and samples. Developers should now use gemini-1.5-pro-preview-0514 or gemini-1.5-flash-preview-0514; see available model names for more details (#12979).
  • Logged additional details when required APIs for Vertex AI are not enabled or response payloads when requests fail (#13007, #13009).

Version 10.26.0 - May 13, 2024

This release is available via Swift Package Manager only.

Firebase In-App Messaging

  • Fixed crash at app start that affected SwiftPM users (#12882).

Vertex AI in Firebase

  • Initial release of the Vertex AI in Firebase SDK (public preview). Learn how to get started with the SDK in your app.

Version 10.25.0 - April 30, 2024

  • Firebase now requires at least Xcode 15.2. See Apple's website for more info.
  • [Zip Distribution] Update zip integration instructions with tips for preserving symlinks and protecting code signatures.

Analytics

App Check

  • Removed usages of user defaults API to eliminate required reason impact.

Crashlytics

  • Removed usages of user defaults API from internal Firebase Sessions dependency to eliminate required reason impact.

Realtime Database

  • Removed usages of user defaults API to eliminate required reason impact.

Cloud Firestore

  • Allow blob of data with zero length (#11773, #12620).
  • Passing a non-nil value to the @DocumentID property wrapper's setter no longer logs a warning since it discouraged valid patterns, e.g., updating the document ID after the document is created in Firestore (#12756).

Firebase In-App Messaging

  • Removed usages of user defaults API to eliminate required reason impact.
  • When installing In App Messaging via the zip distribution, its UI resource bundle is now embedded within the In App Messaging framework. Choose Embed & Sign when integrating the framework. See the zip distribution's README.md for more instructions.

Performance Monitoring

  • Removed usages of user defaults API to eliminate required reason impact.

Remote Config

  • Fixed bug preventing Remote Config from working with a custom sqlite3 dependency (#10884).

Version 10.24.0 - April 9, 2024

  • Fixed validation issue for macOS and macCatalyst XCFrameworks related to framework directory structure (#12587).
  • Extend community watchOS support to zip and Carthage distributions. See our platform documentation for more details for the Firebase products included (#8731).
  • Added code signatures to all of Firebase's binary artifacts (#12238).

Analytics

  • Internal code cleanup.

Crashlytics

  • Fixed 'FirebaseCrashlytics/FirebaseCrashlytics-Swift.h' file not found errors (#12611).
  • Removed usages of mach_absolute_time to reduce required reason impact.

Cloud Firestore

  • Enabled queries with range & inequality filters on multiple fields (#12416).

Cloud Storage

  • putFile and putFileAsync now work in app extensions. A background session configuration is not used when uploading from an app extension (#12579).

Version 10.23.1 - March 28, 2024

  • [Swift Package Manager / CocoaPods] Fixed the macOS/Catalyst xcframework structure issue in Firebase Analytics blocking submission via Xcode 15.3.

Analytics

  • Fixed crash in NSString(Bit) isBitEnabledAtIndex (#12614).
  • Fixed missing symbols in GoogleAppMeasurementOnDeviceConversion (regression introduced by 10.22.1).

Version 10.23.0 - March 19, 2024

  • Fixed an app validation issue for macOS and macCatalyst XCFrameworks (#12505).

Analytics

Crashlytics

  • Updated upload-symbols to 13.7 with Vision Pro build phase support (#12306).
  • Added support for Crashlytics to report metadata about Remote Config keys and values.

Cloud Firestore

  • Enable snapshot listener option to retrieve data from local cache only (#12370).
  • Update gRPC dependency to 1.62.* (#12098, #12021).
  • Firestore's binary Swift Package Manager distribution now uses XCFrameworks with code signatures (#12238).

FCM

  • CocoaPods only: Fixed "no rule" warning when running pod install (#12511).

Remote Config

  • Added support for other Firebase products to integrate with Remote Config.

Version 10.22.1 - March 7, 2024

  • Swift Package Manager and CocoaPods only: Fixed app validation issues on Xcode 15.3 for those using the FirebaseAnalyticsOnDeviceConversion SDK. This issue was caused by embedding an incomplete Info.plist from a dependency of the SDK (#12441).

Version 10.22.0 - March 4, 2024

  • Added privacy manifests for Firebase SDKs named in https://developer.apple.com/support/third-party-SDK-requirements/. Review https://firebase.google.com/docs/ios/app-store-data-collection for updated guidance on interpreting Firebase's privacy manifests and completing app Privacy Nutrition Labels (#11490).
  • Revert Firebase 10.20.0 change that removed Info.plist files from static xcframeworks (#12390).
  • Fixed validation issues in Xcode 15.3 that affected binary distributions including Analytics, Firestore (SwiftPM binary distribution), and the Firebase zip distribution (#12441).

Swift Package Manager

  • Firebase now enforces a Swift 5.7.1 minimum version, which is aligned with the Xcode 14.1 minimum (#12350).

Zip Distribution

  • The manual integration instructions found in the Firebase.zip have been updated for Xcode 15 users. The updated instructions call for embedding SDKs dragged in from the Firebase.zip. This will enable Xcode's tooling to detect privacy manifests bundled within the xcframework.
  • Several xcframeworks have been renamed to resolve the Xcode 15.3 validation issues. Ensure that the following renamed xcframeworks are removed from your project when upgrading (#12437, #12447):
    • abseil.xcframework to absl.xcframework
    • BoringSSL-GRPC.xcframework to openssl_grpc.xcframework
    • gRPC-Core.xcframework to grpc.xcframework
    • gRPC-C++.xcframework to grpcpp.xcframework
    • leveldb-library.xcframework to leveldb.xcframework
    • PromisesSwift.xcframework to Promises.xcframework

Analytics

  • Added on-device conversion measurement support for hashed email address or hashed phone numbers with initiateOnDeviceConversionMeasurement(hashedEmailAddress:) and initiateOnDeviceConversionMeasurement(hashedPhoneNumber:) API, respectively.
  • Fixed a memory leak (#11071).

Crashlytics

  • Crashlytics now forces validation or rotation of FIDs for FirebaseSessions.
  • Removed calls to statfs in the Crashlytics SDK to comply with Apple Privacy Manifests. This change removes support for collecting Disk Space Free in Crashlytics reports.
  • Fixed FirebaseSessions crash on startup that occurs in release mode in Xcode 15.3 and other build configurations (#11403).

Cloud Firestore

  • Fixed flaky offline behavior when using arrayRemove on Map objects (#12378).

Firebase In-App Messaging

  • Fixed an objc_retain crash (#12393).

Version 10.21.0 - February 6, 2024

Firebase now requires at least CocoaPods version 1.12.0 to enable privacy manifest support.

Analytics

  • Internal code cleanup.

Authentication

  • Fixed multifactor resolver to use the correct Auth instance instead of always using the default (#12265).

Cloud Firestore

  • Added an error when trying to build Firestore's binary SPM distribution for visionOS (#12279). See Firestore's 10.12.0 release note for a supported workaround.

Version 10.20.0 - January 16, 2024

The following change only applies to those using a binary distribution of a Firebase SDK(s): In preparation for supporting Privacy Manifests, each platform framework directory within a static xcframework no longer contains an Info.plist file (#12243).

Analytics

  • Increased parameter value character limit for Google Analytics 360 properties.
  • Updated module map of GoogleAppMeasurementOnDeviceConversion.

FCM

  • Fixed a 10.19.0 regression where the FCM registration token was nil at first app start after update from 10.19.0 or earlier (#12245).

Version 10.19.1 - December 13, 2023

This release is available via Swift Package Manager only. Changes in this version of Firebase will be available in future releases across all distribution channels.

App Check

  • Fixed a bug in apps using both AppCheck and ARCore where AppCheck unnecessarily tried to create tokens for the ARCore SDK, resulting in noisy logs containing harmless attestation errors.

Version 10.19.0 - December 5, 2023

Authentication

  • Deprecate updateEmail(to email: String) and fetchSignInMethods(forEmail email: String) (#12081).

Cloud Firestore

  • Made an optimization to the synchronization logic for resumed queries to only re-download locally-cached documents that are known to be out-of-sync. (#12044).

FCM

  • Adopt NSSecureCoding for internal classes (#12075).

Version 10.18.0 - November 14, 2023

App Check

  • Extracted core FirebaseAppCheck functionality into a new AppCheckCore dependency. (#12067)

Authentication

  • Fix a bug where anonymous account can't be linked with email password credential (#11911).

Cloud Firestore

  • Fix Firestore build for visionOS on Xcode 15.1 (#12023).

Performance Monitoring

  • Fix an Xcode 15.1 build warning (#12027).

Version 10.17.0 - October 30, 2023

Analytics

  • Updated the consent management API to include new consent signals.
  • Added support for StoreKit 2.
  • The FirebaseAnalytics module now contains Analytics's Swift-only APIs that were previously only available via the FirebaseAnalyticsSwift extension SDK. See the FirebaseAnalyticsSwift release note from this release for more details.

Swift Extensions

  • All of the public API from FirebaseAnalyticsSwift can now be accessed through the FirebaseAnalytics module. Therefore, FirebaseAnalyticsSwift has been deprecated, and will be removed in a future release. See the migration guide for migration instructions.

App Check

  • Added invalid key error handling in App Attest key attestation. (#11986)
  • Replaced semantic imports (@import FirebaseAppCheckInterop) with umbrella header imports (#import <FirebaseAppCheckInterop/FirebaseAppCheckInterop.h>) for ObjC++ compatibility (#11916).

Realtime Database

  • The FirebaseDatabase module now contains Firebase Database's Swift-only APIs that were previously only available via the FirebaseDatabaseSwift extension SDK. See the FirebaseDatabaseSwift release note from this release for more details.

Swift Extensions

  • All of the public API from FirebaseDatabaseSwift can now be accessed through the FirebaseDatabase module. Therefore, FirebaseDatabaseSwift has been deprecated, and will be removed in a future release. See the migration guide for migration instructions.

Cloud Firestore

  • Add support for sum and average aggregate queries.
  • The FirebaseFirestore module now contains Firebase Firestore's Swift-only APIs that were previously only available via the FirebaseFirestoreSwift extension SDK. See the FirebaseFirestoreSwift release note from this release for more details.

Swift Extensions

  • All of the public API from FirebaseFirestoreSwift can now be accessed through the FirebaseFirestore module. Therefore, FirebaseFirestoreSwift has been deprecated, and will be removed in a future release. See the migration guide for migration instructions.

Firebase In-App Messaging

  • The FirebaseInAppMessaging module now contains Firebase In-App Messaging's Swift-only APIs that were previously only available via the FirebaseInAppMessagingSwift extension SDK. See the FirebaseInAppMessagingSwift release note from this release for more details.

Swift Extensions

  • All of the public API from FirebaseInAppMessagingSwift can now be accessed through the FirebaseInAppMessaging module. Therefore, FirebaseInAppMessagingSwift has been deprecated, and will be removed in a future release. See the migration guide for migration instructions.

Performance Monitoring

  • Fix a second Xcode 15 runtime warning (#11821).

Remote Config

  • The FirebaseRemoteConfig module now contains Firebase Remote Config's Swift-only APIs that were previously only available via the FirebaseRemoteConfigSwift extension SDK. See the FirebaseRemoteConfigSwift release note from this release for more details.

Swift Extensions

  • All of the public API from FirebaseRemoteConfigSwift can now be accessed through the FirebaseRemoteConfig module. Therefore, FirebaseRemoteConfigSwift has been deprecated, and will be removed in a future release. See the migration guide for migration instructions.

Version 10.16.0 - October 3, 2023

A/B Testing

  • Fix crash caused by empty experiment payload (#11873).

Analytics

  • Fixed crash in FIRAnalyticsConnector (#11761).
  • Disabled Search Ad reporter on simulator to prevent potential unresponsiveness when calling AAAttribution.attributionToken() (#11770).

Authentication

  • Added custom auth domain support in recaptcha v2 authentication flows (#7553).

Crashlytics

  • Fixed a memory leak regression when generating session events (#11725).

Cloud Firestore

  • Fixed an issue where Firestore's binary SwiftPM distribution would not link properly when building a target for testing. This issue affected Xcode 15 Beta 5 and later (#11656).
  • Downgrade the CocoaPods grpc dependency back to 1.44.0 (from 1.50.1) to fix a crash on iOS 12 devices that was introduced in the Firebase Apple SDK 10.10.0 when the grpc dependency was upgraded (#11509).

Performance Monitoring

  • Fixed a memory leak regression when generating session events (#11725).
  • Fix Xcode 15 runtime warning (#11821).

Version 10.15.0 - September 12, 2023

Cloud Firestore

  • Add the option to allow the SDK to create cache indexes automatically to improve query execution locally (#11596).

Version 10.14.0 - August 22, 2023

For developers building for visionOS, Xcode 15 beta 6 or later is required.

A/B Testing

  • Fix crash caused by mutating array during iteration (#11669).

Authentication

  • Added reCAPTCHA verification support in email authentication flows (#11231).

Version 10.13.0 - August 1, 2023

For developers building for visionOS, Xcode 15 beta 5 or later is required.

Analytics

  • Added on-device conversion measurement support for phone numbers with initiateOnDeviceConversionMeasurement(phoneNumber:) API.
  • Fixed hang if initiateOnDeviceConversionMeasurement(emailAddress:) API was called before FirebaseApp.configure().
  • Fixed heap buffer overflow error (#11421).

Authentication

  • Fixed a compilation error regression introduced in 10.12.0 building iOS App Extensions (#11537).

Firebase In-App Messaging

  • Fixed the Firebase tvOS podspec dependency for In App Messaging not working (#11569).

Version 10.12.0 - July 11, 2023

For developers building for visionOS, using products that use the Keychain (e.g. FirebaseAuth) may fail to access the keychain on the visionOS simulator. To work around this, add the Keychain Sharing capability to the visionOS target and explicitly add a keychain group (e.g. the bundle ID).

Firebase's Swift Package Manager distribution does not support Xcode 15 Beta 1. Please use Xcode 15 Beta 2 or later.

Authentication

  • Added support to Firebase Auth to enroll and sign in a user with TOTP second factor (#11261).

Analytics

  • Added support for SKAdNetwork Conversion Value setting.
  • Added support for SHA-256 hashes to ensure that the on-device receipt validation is compatible with upcoming App Store receipt signing certificate changes (TN3138).

Crashlytics

  • Updated upload-symbols to version 3.16 with support for new default build settings in Xcode 15 (#11463).
  • Re-enabled dSYM uploads for Flutter apps building with --obfuscate and updated instructions for de-obfuscating Dart stacktraces.
  • upload-symbols / run now support apps with User Script Sandboxing set to YES when all input files are present in the build phase. Please see the pull request for the full list of input files (#11463).
  • upload-symbols / run no longer read from the app's Info.plist and support apps with Generate Info.plist File set to NO (#11463).
  • Added a CrashlyticsInputFiles.xcfilelist. Instead of using "Input Files", developers can specify the path to this file in the Build Phase's "Input File Lists" section of your Crashlytics run / upload-symbols script to keep it up to date (#11428).

Cloud Firestore

  • Implemented an optimization in the local cache synchronization logic that reduces the number of billed document reads when documents were deleted on the server while the client was not actively listening to the query (e.g. while the client was offline) (#11457).
  • Developers using Firestore on visionOS must use a source Firestore distribution rather than the default binary distribution. To do this, quit Xcode and open the desired project from the command line with the FIREBASE_SOURCE_FIRESTORE environment variable. open --env FIREBASE_SOURCE_FIRESTORE /path/to/project.xcodeproj To go back to using the binary distribution of Firestore, quit Xcode and open Xcode like normal, without the environment variable (#11492).

Swift Extensions

  • Added support for animations on the @FirestoreQuery property wrapper.

FCM

  • Messaging now removes scoped tokens set by old FIAM SDK(s) from keychain if they exist.

Performance Monitoring

  • Make Firebase Performance Monitoring compatible with Xcode 15.
  • Removed the capability to access carrier information of the device since that API is deprecated by Apple.

Remote Config

  • Fixed issue of real-time listeners not being properly removed (#11458).
  • Fixed real-time fetches not being able to fetch the latest template due to an in-progress fetch (#11465).
  • Internal improvements to support Remote Config real-time updates (#11485).

Version 10.11.0 - June 13, 2023

  • Improved error reporting for misnamed configuration plist files (#11317).

A/B Testing

  • Fix crash caused by mutating array during iteration (#11378).

Analytics

  • Fixed missing screen parameters on session_start events triggered at app launch.
  • Fixed limit of audience definitions during first open.

Crashlytics

  • Fixed a threading-related hang during initialization in urgent mode (#11216).

Cloud Firestore

  • Exposed MultiDb API for public preview (#10465).
  • Fixed a compilation warning related to integer casting (#11332).
  • Firestore now allows initializing LocalCacheSettings with unlimited size (#11405).

Firebase In-App Messaging

  • In-App Messaging now correctly removes scoped tokens set by old SDK versions from keychain.

Performance Monitoring

  • Fixed a bug to disable data collection if the data collection was disabled before Firebase application was configured.

Cloud Storage

  • Add progress tracking capability for putDataAsync, putFileAsync, and writeAsync (#10574).

Version 10.10.0 - May 23, 2023

  • Firebase now requires at least Xcode 14.1.

Analytics

  • Fixed implicit type conversion of integer or numeric string parameters to double when modifying or creating events from the Google Analytics interface.
  • Internal code cleanup.

Crashlytics

  • Removed references to deprecated CTCarrier API in FirebaseSessions (#11144).
  • Fix Xcode 14.3 Analyzer issue (#11228).

Cloud Functions

  • Fixed potential memory leak of Functions instances (#11248).
  • Callable functions can now opt in to using limited-use App Check tokens (#11270).

Firebase In-App Messaging

  • Fixed a crash on in-app message presentation when a CarPlay scene is active (#9376).

Cloud Storage

  • Fixed potential memory leak of Storage instances (#11248).

Version 10.9.0 - April 25, 2023

Analytics

  • Internal code cleanup.

App Check

  • Added limitedUseToken(completion:) for obtaining limited-use tokens for protecting non-Firebase backends (#11086).

Crashlytics

  • Updated upload-symbols to 3.15. Disabled dSYM uploads for Flutter apps building with --obfuscate and added instructions for uploading through the Crashlytics dashboard (#11136).
  • Fixed a memory leak when generating session events (#11027).

Cloud Firestore

  • Add new cache config API to customize SDK cache settings.
  • Add LRU garbage collector as an option to memory cache.

Swift Extensions

  • The async CollectionReference.addDocument(data:) API now returns a discardable result (#10640).

Performance Monitoring

  • Fixed a memory leak when generating session events (#11027).

Version 10.8.1 - April 13, 2023

This release is available via Swift Package Manager only.

Cloud Firestore

  • Fixed an issue where Firestore was incorrectly unavailable on Mac Catalyst via Swift Package Manager (#11119).

Version 10.8.0 - April 11, 2023

  • Fixed new build warnings introduced by Xcode 14.3 (#11059).
  • The Firebase Swift package now requires the Swift 5.6 toolchain (Xcode 13.3) to build.

Analytics

  • Updated a warning message to a debug message (#10940).
  • Internal code cleanup.

Authentication

  • Added Firebase App Check support to Firebase Auth (#11056).
  • Added sign-in with Apple token revocation support (#9906).

Cloud Firestore

  • Change Firestore's Swift Package Manager distribution from source to binary to reduce the time it takes to add the Firebase package and to build the Firestore SDK (#6564).

  • Fixed SSL symbol collision issue affecting SwiftPM users (#6869).

Version 10.7.0 - March 21, 2023

Authentication

  • Added an API for developers to pass the fullName from the Sign in with Apple credential to Firebase (#10068).

Crashlytics

  • Updated upload-symbols to 3.14 with an improvement to upload all dSYM files for Flutter apps.

Cloud Firestore

  • Added support for disjunctions in queries (OR queries).
  • Fixed stack overflow caused by deeply nested server timestamps.

Remote Config

Cloud Storage

  • When applicable, Storage now provides underlying server errors via NSUnderlyingErrorKey.

Version 10.6.0 - February 28, 2023

Analytics

  • Added support for logging item-scoped custom parameters on ecommerce events.
  • Added Salesforce user id measurement to improve Google Analytics 4's integration with Salesforce Marketing Cloud.
  • Added support for Apple AdServices to measure Apple Search Ads campaign when the framework is integrated (#7860).
  • Removed deprecated Apple iAd integration.

App Distribution

  • Fixed bug where testers were sent to the wrong URL when signing in (#10772).

Authentication

  • Fixed a bug where user is created in a specific tenant although tenantID was not specified (#10748).
  • Fixed a bug where the resolver exposed in MFA is not associated to the correct app (#10690).

Crashlytics

  • Integrated with Firebase sessions library to enable upcoming features related to session-based crash metrics. If your app uses the Crashlytics SDK, review Firebase's data disclosure page to make sure that your app's privacy details in the App Store are accurate and complete.

Cloud Firestore

  • Fix a potential high memory usage issue.

FCM

  • The configure flow now validates existence of an APNs token before fetching an FCM token (#10742). This also addresses the scenario mentioned in the issue comment.

Performance Monitoring

  • Integrated with Firebase sessions library and replaced the session information associated with performance metrics with session details provided by the Firebase sessions library. If your app uses the Performance Monitoring SDK, review Firebase's data disclosure page to make sure that your app's privacy details in the App Store are accurate and complete.
  • Changed definition of sessions, as Performance Monitoring now depends on the new Firebase sessions library.

Version 10.5.0 - February 7, 2023

Authentication

  • Use team player ID, game player ID and fetchItems for signature verification (#10441).
  • Prevent keychain pop-up when accessing Firebase Auth keychain in a Mac app. Note that using Auth in a Mac app requires that the app is signed with a provisioning profile that has the Keychain Sharing capability enabled (see Firebase 9.6.0 release notes) (#10582).

Cloud Firestore

  • Added @discardableResult to the addDocument API for easy handling of unused return values (#10640).

FCM

  • Fixed a crash for strongSelf dereference (#10707).

Cloud Storage

  • Added Storage API to limit upload chunk size (#10137).
  • Run pod update or File -> Packages -> Update to latest Packages to update the GTMSessionFetcher dependency to at least version 3.1.0. This fixes an issue where it infinitely retries when FirebaseStorage returns a 500 response.

Version 10.4.0 - January 17, 2023

  • Deprecate androidClientID and trackingID from FirebaseOptions (#10520).

Analytics

  • Fixed crash in scheduleSynchronizeToDisk (#10495).
  • Fixed printing of the items array parameter in the console logs while in debug mode.

Authentication

  • Fix secure coding bugs in MFA (#10632).
  • Added handling of error returned from a blocking cloud function (#10628).

Crashlytics

  • Updated Crashlytics to include the Firebase Installation ID for consistency with other products. For apps that didn't previously account for the Firebase installations SDK in their data disclosure, review the data disclosure documentation. (#10645).

Cloud Firestore

  • Fix an issue that stops some performance optimization from being applied (#10579).

FCM

  • On app startup, an APNs Token must be provided to FCM SDK before retrieving an FCM Token, otherwise an error will be returned as part of the completion.

Version 10.3.0 - December 5, 2022

  • Fixed an issue where utmParametersDictionary / minimumAppVersion were not provided and their values were set to [NSNull null] instead of nil.

Cloud Firestore

  • Added multi-database support.
  • Fixed a crash when there were nested data structures inside IN filters (#10507).

FCM

Cloud Storage

  • Use dedicated serial queue for Storage uploads and downloads instead of a (concurrent) global queue. Fixes regression introduced in 10.0.0 (#10487).

Version 10.2.0 - November 15, 2022

  • Updated GTMSessionFetcher dependency specifications to enable support for the compatible GTMSessionFetcher 3.x versions.

App Distribution

  • Added a public application(_:openURL:options:) method so users with swizzling disabled can still use App Distribution (#10418).

Authentication

  • Fixed a bug where certain linking/reauth flow errors were not caught (#10267).
  • Phone auth in simulators now force recaptcha verification instead of using a silent push notification (#10426).
  • Fixes utm parameters not being returned to dynamic links when using universal links (#10341).

Cloud Firestore

  • Fix FAILED_PRECONDITION when writing to a deleted document in a transaction (#10431).
  • Fixed data race in credentials provider (#10393).
  • Fix Firestore failing to raise initial snapshot from empty local cache result (#10437).

Cloud Storage

  • Fixed an issue where using Storage with more than one FirebaseApp instance caused non-default Storage instances to deadlock (#10463).
  • Fixed a race condition where a download size could exceed the value of the maxSize parameter (#10358).

Version 10.1.0 - October 27, 2022

  • Bitcode is no longer included in Firebase binary distributions. Xcode 14 does not support bitcode. tvOS apps using a Firebase binary distribution will now need to use Xcode 14 (#10372).

Analytics

  • Removed bitcode.
  • Added recommended hotel parameters in the purchase event documentation.

App Distribution

  • Fixed inconsistent sign in prompts in single scene apps (#8096).

Authentication

  • Fix a bug where multi factor phone number returns NULL (#10296).

FCM

  • The app bundle identifier is no longer incorrectly shortened for watchOS apps created on Xcode 14 (#10147).

Remote Config

Swift Extensions

  • Fixed the previous CocoaPods release incorrectly missing the RemoteConfigProperty feature (#10371).

Cloud Storage

  • Fixed a 10.0.0 regression where metadata passed to putFile was not properly initialized (#10353).
  • Fixed a 10.0.0 regression handling an empty JSON metadata field from the emulator (#10370).

Version 10.0.0 - October 10, 2022

  • Breaking change: Minimum supported versions have updated for the following platforms:
    • If using CocoaPods:
      Platform Firebase 9 Firebase 10
      iOS 10.0 11.0
      tvOS 10.0 12.0
      macOS 10.12 10.13
      watchOS 6.0 6.0
    • If using Swift Package Manager:
      Platform Firebase 9 Firebase 10
      iOS 11.0 11.0
      tvOS 12.0 12.0
      macOS 10.12 10.13
      watchOS 7.0 7.0
    • If using Carthage or the Zip distribution:
      Platform Firebase 9 Firebase 10
      iOS 11.0 11.0
      tvOS 11.0 12.0
      macOS 10.13 10.13
      watchOS N/A N/A
  • Breaking change: Updated dependency specification for GTMSessionFetcher to allow all versions that are >= 2.1 and < 3.0 (#10131).

Analytics

  • Fixed hang on main thread (#10151).

Realtime Database

  • Deprecated FirebaseDatabase on watchOS 9 and above. watchOS users should instead use the Database REST API directly (#10272).
  • Removed bare initializer from DynamicLink (#10000).
  • Added missing app.google (1p domain) support in FDL SDK.

Cloud Firestore

  • Added Query.count(), which fetches the number of documents in the result set without actually downloading the documents (#10246).
  • Fixed compiler warning about @param comparator (#10226).

Swift Extensions

  • Breaking Change: Made the @DocumentID property wrapper value setter internal to clarify that the value is ignored during writes (#9368).
  • Initializing a @DocumentID property wrapper with a non-nil value or using the @DocumentID property wrapper value setter will log a warning. This is because the set value will be ignored (#9368).
  • Firestore.Encoder and Firestore.Decoder now wraps the shared FirebaseDataEncoder and FirebaseDataDecoder types, which provides new customization options for encoding and decoding data to and from Firestore into Codables - similar to the options present on JSONEncoder and JSONDecoder from Foundation.
  • Added a FirebaseDataEncoder.DateEncodingStrategy for Timestamps.

Cloud Functions

  • Removed unnecessary and unused encoder and decoder parameters from public func call(_ data: Request) async throws -> Response API (#9891).

Firebase In-App Messaging

  • Removed foo constant from Swift InAppMessagingPreviewHelpers API (#10222).
  • Changed internal dataChanged symbol that triggered App Store warnings (#10276).

Remote Config

Swift Extensions

  • Added a new dynamic property wrapper API that enables developers to configure UI components to automatically update when new configs are activated. (#10155)

Cloud Storage

  • Firebase Storage is now completely implemented in Swift. Swift-specific API improvements are planned for subsequent releases (#9963).
  • Added new API open func reference(for url: URL) throws -> StorageReference equivalent to open func reference(forURL url: String) -> StorageReference, except it throws instead of erroring (#6974).
  • The FirebaseStorageInternal CocoaPod has been discontinued.
  • Deprecated the storageReference property of StorageMetadata. It had never been implemented and always returned nil.
  • Storage APIs that previously threw an Objective-C exception now generate a Swift fatalError.
  • Storage now requires at least version 2.1 of its GTMSessionFetcher dependency.
  • The localized description for unknown errors is now more descriptive.

Version 9.6.0 - September 13, 2022

  • Mac apps using Firebase products that store SDK data in the keychain will no longer prompt the user for permission to access the keychain. This requires that Mac apps using Firebase be signed with a provisioning profile that has the Keychain Sharing capability enabled (#9392). See the troubleshooting FAQ for more details.
  • Fixed Array.Index-related compile time errors when building with older Swift versions (#10171).
  • Update dependency specification for GTMSessionFetcher to allow all 2.x versions (#10131).

Analytics

  • Added support for returning the current session ID with sessionID().
  • Added support for simulating a match for on-device conversion measurement in debug mode.
  • Updated documentation in FIRAnalytics+AppDelegate.h to account for UIScene and SwiftUI lifecycles.
  • Fixed Swift Package Manager issue with GoogleAppMeasurementOnDeviceConversion (#10126).
  • Fixed keychain issue on macOS (#9392).

Realtime Database

  • Fix priority inversion issue exposed by Xcode 14 (#10130).

Cloud Firestore

  • Expose client side indexing feature with FIRFirestore.setIndexConfigurationFromJSON and FIRFirestore.setIndexConfigurationFromStream (#10090).
  • Fixed high CPU usage whenever Firestore was in use (#10168).

Version 9.5.0 - August 23, 2022

  • Fixed a zip distribution issue where the Promises module caused linking to fail (#10071).
  • Limited dependency on GTMSessionFetcher version to < 2.1.0 to avoid a new deprecation warning (#10123).

App Check

  • DeviceCheck and App Attest providers are supported by watchOS 9.0+ (#10094, #10098).
  • App Attest provider availability updated to support tvOS 15.0+ (#10093).

Authentication

  • Fixed a bug where phone multi-factor ids were not correctly retrieved (#10061).

Cloud Firestore

  • Fixed an intermittent crash if ListenerRegistration::Remove() was invoked concurrently (#10065).
  • Fixed a crash if multiple large write batches with overlapping documents were executed where at least one batch performed a delete operation (#9965).

Remote Config

Swift Extensions

  • Fixed Codable implementation to handle arrays and dictionaries from plist defaults (#9980).

Version 9.4.1 - August 8, 2022

  • Swift Package Manager only release to fix a 9.4.0 tagging issue impacting some users (#10083).

Version 9.4.0 - August 2, 2022

  • Fixed rare crash on launch due to out-of-bounds exception in FirebaseCore (#10025).

Cloud Firestore

Version 9.3.0 - July 12, 2022

  • Remove GoogleSignInSwiftSupport from Zip and Carthage distributions due to infeasibility. The GoogleSignIn distribution continues (#9937).

Analytics

  • Improved session measurement with User ID.
  • Internal code cleanup.

Realtime Database

  • Fix reference(withPath:) race condition crash (#7885).

Cloud Functions

  • Fixed error code generation for HTTP 409 - "already exists" (#9942).

Performance Monitoring

  • Update the console logging URL to troubleshooting page.

Remote Config

  • Arrays and Dictionaries are now supported when initializing defaults from a plist (#8306).
  • Activate calls will only update experiment data for firebase namespace to ensure correct experiment exposures (#9972).

Version 9.2.0 - June 21, 2022

  • Zip and Carthage distributions now include GoogleSignInSwiftSupport (#9900).

Authentication

  • Catch keychain errors instead of using the isProtectedDataAvailable API for handling prewarming issue (#9869).

Cloud Firestore

  • Added TransactionOptions to control how many times a transaction will retry commits before failing (#9838).

Cloud Functions

  • Fixed regressions in error code processing introduced in 9.0.0 (#9855).
  • Importing FirebaseFunctions no longer exposes internal FirebaseCore APIs (#9884).

Firebase In-App Messaging

  • Replaced unarchiveObjectWithFile with unarchivedObjectOfClass to conform to secure coding practices, and implemented NSSecureCoding (#9816).

Cloud Storage

  • Importing FirebaseStorage no longer exposes internal FirebaseCore APIs (#9884).

Version 9.1.0 - May 24, 2022

Analytics

  • Fixed a reachability check to avoid unnecessary DNS resolutions.
  • Fixed a data race issue caught by the sanitizer.
  • Internal code cleanup.

Version 9.0.0 - May 3, 2022

  • Firebase now requires at least Xcode 13.3.1.
  • Usage of the Firebase pod, the Firebase module (import Firebase), and Firebase.h is deprecated. Use the specific Firebase product instead, for example pod 'FirebaseMessaging' and import FirebaseMessaging.

CocoaPods Users

  • Breaking change: Podfiles must include use_frameworks! or use_frameworks! :linkage => :static.
  • Breaking change: C++/Objective-C++ clients should use #import <FirebaseFunctions/FirebaseFunctions-Swift.h> and #import <FirebaseStorage/FirebaseStorage-Swift.h> to access Functions and Storage APIs, respectively.
  • Breaking change: Beta Swift pods (except FirebaseInAppMessagingSwift-Beta) have exited beta and are now generally available. The -beta version suffix is no longer required. These should be removed from your Podfile, and any import statements should be changed accordingly.
  • Breaking change: The FirebaseStorageSwift and FirebaseFunctionsSwift modules have been merged into FirebaseStorage and FirebaseFunctions respectively and should be removed from your Podfile.
  • Objective-C only apps using use_frameworks! :linkage => :static may need to add a dummy Swift file to their project to avoid linker issues.

Swift Package Manager Users

  • Breaking change: import Firebase will no longer implicitly import Firebase Storage and Firebase Functions APIs. Use import FirebaseStorage and import FirebaseFunctions, respectively. C++/Objective-C++ clients should find alternative workarounds at https://forums.swift.org/t/importing-swift-libraries-from-objective-c/56730.
  • Breaking change: The FirebaseStorageSwift-Beta and FirebaseFunctionsSwift-Beta libraries have been merged into FirebaseStorage and FirebaseFunctions respectively and should be removed from your project following the instructions above.
  • Beta Swift libraries (except FirebaseInAppMessagingSwift-Beta) have exited beta and are now generally available. When upgrading a project that includes one or more of these libraries, an error like Missing package product 'FirebaseSwift-Beta' will appear. In your project's settings, go to "General" and scroll down to Frameworks, Libraries, and Embedded Content. Select the missing package, and remove it. Then, click the + button to add the assocciated library without the -Beta suffix. Any import statements in your project should be changed accordingly.

Zip and Carthage Users

  • Breaking change: Updated the minimum supported versions for the zip and Carthage distributions to iOS 11.0, tvOS 11.0 and macOS 10.13. (#9633)
  • The zip and Carthage distributions now include the Swift extension frameworks (#7819).
  • Zip file installation instructions have changed. Please see the README embedded in the zip file for updated instructions.

Analytics

  • Breaking change: Bumped the minimum iOS version from 9.0 to 10.0.
  • Breaking change: Removed deprecated ecommerce constants. See guidance on how to measure ecommerce with Google Analytics 4.
  • Added on-device conversion measurement with initiateOnDeviceConversionMeasurement(emailAddress:) API.

Swift Extensions

  • Breaking change: FirebaseAnalyticsSwift has exited beta and is now generally available for use.

App Check

  • Breaking change: FirebaseAppCheck has exited beta and is now generally available for use.

App Distribution

  • Marked releaseNotes as nullable as they don't always exist (#8602).
  • Breaking change: Fixed an ObjC-to-Swift API conversion error wherecheckForUpdate() returned a non-optional type. This change is breaking for Swift users only (#9604).

Authentication

  • Breaking change: Fixed an ObjC-to-Swift API conversion error where getStoredUser(forAccessGroup:) returned a non-optional type. This change is breaking for Swift users only (#8599).
  • Fixed an iOS 15 keychain access issue related to prewarming (#8695).

Realtime Database

  • Breaking change: Marked getData() snapshot as nullable to fix Swift API (#9655).

Swift Extensions

  • Breaking change: FirebaseDatabaseSwift has exited beta and is now generally available for use.
  • Fixed async/await crash when retrieving a dynamic link from a universal link fails (#9612).

Cloud Firestore

  • Breaking change: Fixed an issue where returning nil from the update closure when running a transaction caused a crash in Swift by removing the auto-generated async throwing method from the FirebaseFirestore module. In order to use the async throwing transaction method, add the FirebaseFirestoreSwift module dependency to your build target (#9426).

Swift Extensions

  • Breaking change: FirebaseFirestoreSwift has exited beta and is now generally available for use.

Cloud Functions

  • The FirebaseFunctionsSwift library has been removed. All of its APIs are now included in the FirebaseFunctions library. Please remove references to FirebaseFunctionsSwift from Podfiles and Swift Package Manager configurations. import FirebaseFunctionsSwift should be replaced with import FirebaseFunctions.
  • Backported Callable async/await APIs to iOS 13, etc. (#9483).
  • The global variables FunctionsErrorDomain and FunctionsErrorDetailsKey are restored for Swift only.
  • Added a new method httpsCallable(url:) to create callables with URLs other than cloudfunctions.net.

Installations

  • Swift-only: Updated symbol name kFirebaseInstallationsErrorDomain to InstallationsErrorDomain (#9275).

Remote Config

  • The remoteConfig() singleton now throws an exception when called before FirebaseApp.configure() (#8640).

Swift Extensions

  • Breaking change: FirebaseRemoteConfigSwift has exited beta and is now generally available for use.

Cloud Storage

  • The FirebaseStorageSwift library has been removed. All of its APIs are now included in the FirebaseStorage library. Please remove references to FirebaseStorageSwift from Podfiles and Swift Package Manager configurations. import FirebaseStorageSwift should be replaced with import FirebaseStorage.
  • Backported StorageReference async/await APIs to iOS 13, etc. (#9483).
  • The global variable StorageErrorDomain is restored for Swift only.

Version 8.15.0 - April 12, 2022

Analytics

  • Updated Analytics public header documentation to reference Swift names.
  • Fixed custom domain long URL validation logic (#6978).

Cloud Firestore

  • Potentially fixed a crash during application exit caused by an assertion about ordering documents by missing fields (#9258).
  • Add more details to the assertion failure in Query::Comparator() to help with future debugging (#9258).

Cloud Functions

  • The global variables FIRFunctionsErrorDomain and FIRFunctionsErrorDetailsKey are deprecated and will be removed in v9.0.0 (#9569).

Performance Monitoring

  • Removed unused code for pre-warming detection.

Cloud Storage

  • The global variable FIRStorageErrorDomain is deprecated and will be removed in a future release (#9569).

Version 8.14.0 - March 22, 2022

Analytics

  • Added Merchant Center results measurement to improve ecommerce reporting.
  • Added support for data collection customization.
  • Fixed threading issue where accessing identifiers potentially blocked the main thread (#6392).

Authentication

  • Started to collect the Firebase user agent for Firebase Auth (#9066).

Cloud Firestore

  • Fixed compiler warnings in local_serializer.cc about "implicit conversion loses integer precision" that were introduced in 8.13.0 (#9430).

Performance Monitoring

  • Record the request payload size for POST/PUT requests.

Version 8.13.0 - March 8, 2022

Crashlytics

  • Updated upload-symbols to 3.11 and added logic to process Flutter project information (#9379).
  • Added native support for ARM/M1 Macs in upload-symbols (#8965).
  • Fixed an issue where passing nil as a value for a custom key or user ID did not clear the stored value as expected.

Cloud Firestore

Swift Extensions

  • Added support for explicit typing to DocumentReference.getDocument(as:) and DocumentSnapshot.data(as:) to simplify mapping documents (#9101).
  • DocumentSnapshot.data(as:) will decode the document to the type provided. If you expect that a document might not exist, use an optional type (e.g. Book?.self) to account for this. See the documentation and this blog post for an in-depth discussion.

Performance Monitoring

  • Make pre-warming identification more reliable by moving the pre-warm check to the earliest phase of app start.

Version 8.12.1 - February 10, 2022

Analytics

  • Added support for parsing new campaign parameters utm_id, utm_source_platform, utm_creative_format, and utm_marketing_tactic for traffic source dimensions.
  • Fixed an issue with session_start events being logged during app prewarming on iOS 15+ (#6161).

App Check

  • Fixed watchOS build failures with Swift Package Manager (#9191).

Authentication

  • Added documentation note and error logging to getStoredUser(forAccessGroup:) regarding tvOS keychain sharing issues (#8878).
  • Partial fix for expired ID token issue (#6521).

Cloud Firestore

  • Add more details to the assertion failure in OrderBy::Compare() to help with future debugging (#9258).

Swift Extensions

  • Added async wrapper for CollectionReference.addDocument() and Firestore.loadBundle().

Firebase In-App Messaging

  • Includes a client-side fix for an issue where test messages incorrectly do not include appData. The issue will be fully resolved once the backend is also updated (#9126).

FCM

  • Improved reporting for SQLite errors when failing to open a local database (#8699).

Performance Monitoring

  • Attempted to fix an issue where app start trace durations are not reliable on iOS 15. App start measurements are now made only for cold app starts (without pre-warming) (#9026).

Remote Config

Swift Extensions

  • Initial public beta release with Codable support. See example usage on GitHub here and here (#6883). To use the Swift extension library, add pod 'FirebaseRemoteConfigSwift' to your Podfile.

Version 8.11.0 - January 18, 2022

Swift Extensions

  • Introduced shared Codable implementation. Initially used by Firebase Functions and Firebase Realtime Database (#9091).

Authentication

  • Added a X-Firebase-GMPID header to network requests (#9046).
  • Added multi-tenancy support to generic OAuth providers (#7990).
  • Fixed macOS Extension access to Shared Keychain by adding kSecUseDataProtectionKeychain recommended key (#6876).

Realtime Database

  • Race condition crash in FUtilities.m (#9096).
  • FNextPushId 'successor' crash (#8790).

Swift Extensions

  • Refactored Codable implementation to share common source with Firebase Functions. This should be generally transparent with the exception of custom decoder use cases, which may need to be updated (#8854).

Cloud Firestore

  • Fixed an issue that can result in incomplete Query snapshots when an app is backgrounded during query execution.

Cloud Functions

Swift Extensions

  • Initial public beta release with Codable support. See example usage in https://github.com/firebase/firebase-ios-sdk/blob/master/FirebaseFunctionsSwift/Tests/IntegrationTests.swift. (#8854)

Firebase In-App Messaging

  • Fixed an issue where an in-app message was shown every new session (#8907).
  • Fixed an issue where duplicate messages could occur when two campaigns were triggered by different events (#9070).

FCM

  • Fixed an issue where the FCM token was not correctly associated with the APNs token during app start (#8738).

Version 8.10.0 - December 1, 2021

  • Fixed platform availability checks in Swift Package Manager that may prevent code completion for Analytics APIs on macOS and tvOS (#9032).
  • Firebase now includes community supported Combine publishers. More details can be found here (#7295).

Realtime Database

  • Fixed an URL handling bug for hosts that also contain the path element (#8874).

Performance Monitoring

  • Fixed a crash related to FPRSessionDetails (#8691).
  • Fixed heap-buffer overflow when encoding sessions (#8849).

Remote Config

  • Fixed cached config not loading if device is locked (#8807).

Version 8.9.1 - November 2, 2021

Analytics

  • Fixed an issue in 8.9.0 where app_instance_id is reset, default event parameters get cleared, and a new session start event gets logged on every app launch despite the session not actually timing out.

Cloud Firestore

  • Fixed a bug in the AppCheck integration that caused the SDK to respond to unrelated notifications (#8895).

Version 8.9.0 - October 28, 2021

  • Firebase introduces beta support for tvOS, macOS, and Catalyst. watchOS continues to be available with community support. Individual product details are available here (#583).
  • The minimum supported tvOS version is now 12.0.
  • Forced GoogleUtilities and GoogleDataTransport CocoaPods dependencies to be updated to latest minor versions (#8733).

Analytics

  • Added beta support for tvOS, macOS, and Catalyst.

App Check

  • Improved error handling logic by minimizing amount of requests that are unlikely to succeed (#8798).

Authentication

  • Improved error logging (#8704).
  • Added MFA support for email link sign-in (#8705).

Crashlytics

  • Fixed an issue where exceptions with nil reasons weren't properly recorded (#8671).
  • Fixed Shortlink regression involving underscores and dashes introduced in 8.8.0 (#8786).
  • Reduce memory stress on WebKit API (#8847).
  • Fixed regression introduced in 8.8.0 that failed to accept link query params after the FDL domain prefix (#8866).

Cloud Firestore

  • Added SDK support for Firebase App Check.
  • Fix a crash if Transaction.getDocument(_:) was called after Firestore.terminate(_:) (#8760).
  • Fixed a performance issue due to repeated schema migrations at app startup (#8791).

Swift Extensions

  • Added @FirestoreQuery property wrapper for querying data from a Firestore collection.
  • FirebaseFirestoreSwift now requires a minimum iOS version of 11 for all distributions.

Cloud Functions

  • Added watchOS support for Swift Package Manager (#8864).

Version 8.8.1 - October 1, 2021

  • Swift Package Manager exclusive release to force GoogleUtilities and GoogleDataTransport to be updated to latest bug-fix versions (#8728).

Version 8.8.0 - September 28, 2021

Analytics

  • Increased minimum required CocoaPods version to 1.10.2 to refactor AdSupport-related code out of GoogleAppMeasurement.xcframework to an optional GoogleAppMeasurementIdentitySupport.xcframework dependency.
  • GoogleAppMeasurement/WithoutAdIdSupport subspec now ships GoogleAppMeasurement.xcframework. GoogleAppMeasurement/AdIdSupport subspec ships both GoogleAppMeasurement.xcframework and GoogleAppMeasurementIdentitySupport.xcframework.
  • Added debug message to signal that GOOGLE_ANALYTICS_IDFV_COLLECTION_ENABLED was set correctly (#7467).

App Check

  • Add support for bundle ID-based API key restrictions (#8678).

Authentication

  • Auth now falls back to reCAPTCHA for phone auth app verification if the push notification is not received before the timeout (#8653).

Crashlytics

  • Internal SDK updates to test potential future MetricKit support.
  • Firebase dynamic links with custom domains will now only work if the custom domain has a trailing '/' (#7087).
  • Fixed device-only build warning for unused processIsTranslated function (#8694).

Cloud Firestore

  • Internal refactor to improve serialization performance.
  • DocumentSnapshot objects consider the document's key and data for equality comparison, but ignore the internal state and internal version.

Performance Monitoring

  • Create a random delay for remote config fetch during app starts.
  • Fixed log spam when Performance is disabled (#8423, #8577).
  • Fixed heap-buffer overflow when decoding strings (#8628).

Version 8.7.0 - September 8, 2021

Analytics

  • Fixed an issue where screen view events weren’t getting logged while a system prompt was being presented (#7577).

Realtime Database

  • Fixed Firebase App Check token periodic refresh (#8544).

Cloud Functions

  • Add watchOS support (#8499).
  • Functions no longer sets the App Check header in the case of an error (#8558).

Version 8.6.1 - August 27, 2021

Performance Monitoring

  • Fix an issue where performance traces and other events were not logged correctly, causing them to be dropped after two days (#8581).

Version 8.6.0 - August 17, 2021

App Check

  • Documented unsupported platforms (#8493). App Check is available on all Apple platforms except watchOS.

Authentication

  • Annotated platform-level availability using API_UNAVAILABLE instead of conditionally compiling certain methods with #if directives (#8451).
  • Refactored and added helper class (#8432).

Firebase In-App Messaging

  • Replaced conditionally-compiled APIs with API_UNAVAILABLE annotations on unsupported platforms (#8480).

FCM

  • Removed iOS version check from FIRMessagingExtensionHelper.h (#8492).
  • Added new API FIRMessagingExtensionHelper exportDeliveryMetricsToBigQuery that allows developers to enable notification delivery metrics that are exportable to BigQuery (#6181).
  • Fixed an issue that delete token no longer works (#8491).

Performance Monitoring

  • Add Firebase Performance Monitoring support for Swift Package Manager (#6528).
  • Fix a crash due to a race condition (#8485).

Version 8.5.0 - August 03, 2021

App Check

  • App Check SDK available for all supported platforms/OS versions, but App Attest and DeviceCheck providers availability changed to match underlying platform API availability (#8388).

Authentication

  • Fixed an analyze issue introduced in Xcode 12.5 (#8411).

Realtime Database

  • FirebaseDatabase getData() callbacks are now called on the main thread (#8247).
  • Fixed build issues introduced in Xcode 13 beta 3 (#8401).
  • Fixed build failures for extension targets (#6548).

Cloud Firestore

  • Internal refactor to improve serialization performance.

Firebase In-App Messaging

  • Added support for unit testing with in-app message data objects (#8351).
  • Added support for prototyping custom in-app message views in SwiftUI (#8351).

Cloud Storage

  • Fixed an issue where Storage could not connect to local emulators using http (#8389).

Swift Extensions

  • Added four APIs to augment automatically generated async/await APIs. See details via Xcode completion and at the source. Feedback appreciated about Firebase and async/await (#8289).

Version 8.4.0 - July 20, 2021

App Check

  • Fixed build issues introduced in Xcode 13 beta 3 (#8401).
  • Bump Promises dependency (#8365).

Crashlytics

  • Bump Promises dependency (#8365).
  • Fixed build issues introduced in Xcode 13 beta 3 (#8401).
  • Fixed build failures for extension targets (#6548).

Cloud Firestore

  • Fixed handling of Unicode characters in log and assertion messages (#8372).

Firebase In-App Messaging

  • Fixed build issues introduced in Xcode 13 beta 3 (#8401).

Installations

  • Bump Promises dependency (#8365).

Version 8.3.1 - July 12, 2021

  • Swift Package Manager only release to fix an 8.3.0 tagging issue impacting some users (#8367).

Version 8.3.0 - July 8, 2021

Analytics

  • Added support needed for event modification and creation, allowing developers to remotely modify and/or create events and parameters from existing events.
  • Internal code cleanup.

App Check

  • Added token API for 3P use (#8266).

App Distribution

  • App Distribution now signs out the tester when the call to fetch releases fails with an unauthorized error (#8270).

Crashlytics

  • Add missing dependency that could cause missing symbol build failures (#8137).

Cloud Storage

  • Removed usage of a deprecated GTMSessionFetcher method (#8294).

Version 8.2.0 - June 23, 2021

  • Stop flooding Swift Package Manager projects with Firebase test schemes (#8167).
  • Removed "Invalid Exclude" warnings for Swift Package Manager using Xcode 13 beta 1.

A/B Testing

  • Fixed an analyzer issue introduced in Xcode 12.5 (#8209).

App Check

  • Apple's App Attest attestation provider support (#8133).
  • Token auto-refresh optimizations (#8232).

Authentication

  • Fixed analyzer issues exposed by Xcode 12.5 (#8210).
  • Fixed a bug in the account linking with email link, Game Center, and phone auth flows (#8196).

Crashlytics

  • Incorporated code quality changes around integer overflow, potential race conditions, and reinstalling signal handlers.
  • Fixed an issue where iOS-only apps running on iPads would report iOS as their OS Name.
  • Fixed depcrecation warning for projects with minimum deployment version iOS 13 and up.
  • Fixed analyzer issue exposed by Xcode 12.5 (#8208).

Cloud Firestore

  • Passing in an empty document ID, collection group ID, or collection path will now result in a more readable error (#8218).

Cloud Functions

  • Fixed an issue where factory class methods returned a new instance on every invocation, causing emulator settings to not persist between invocations (#7783).

Firebase In-App Messaging

  • Fixed missing constraints warnings in default UI storyboard (#8205).

FCM

  • Fixed an issue where local scheduled notifications were not set correctly due to sound type (#8172).

Performance Monitoring

  • Updated log messages with proper log levels.
  • Fixed empty values in network_info.request_completed_time_us field from the data schema.
  • Fixed a crash on FPRSessionDetails (#8139).

Version 8.1.1 - June 11, 2021

Analytics

  • Fixed an issue where apps were getting rejected in App Store review for formerly-public method names removed in iOS 15 (#8222).

Version 8.1.0 - June 1, 2021

Crashlytics

  • Added a warning to upload-symbols when it detects a dSYM with hidden symbols.

Realtime Database

Swift Extensions

  • Initial public beta release for Codable support in the new FirebaseDatabaseSwift-Beta product for Swift Package Manager.

Firebase In-App Messaging

  • Fixed bug where image-only messages had the wrong message type in message callbacks (#8081).

FCM

  • Fixed an issue where notification open was not logged to Analytics correctly when the app is in a terminated state. (#7707, #8128).

Performance Monitoring

  • Firebase Performance logs now contain URLs to see the performance data on the Firebase console.

Version 8.0.0 - May 17, 2021

The 8.0.0 release is now available via Carthage 0.38.0. See here for usage instructions.

Version 8.0.0 - May 11, 2021

  • Breaking change: The deprecated Firebase InstanceID has been removed. Use Firebase Installations to manage app instance and use Firebase Messaging to manage FCM registration token instead (#7970).
  • The experimental Carthage distribution is temporarily discontinued pending integration with the Carthage 0.38.0 release with support for binary xcframeworks. In the meantime, a mix of 7.4.0 and 7.11.0 will be the latest Carthage distribution. Use the zip distribution as an alternative way to get the latest 8.x binary distribution.
  • Build warnings will no longer be generated to warn about missing capabilities resulting from not including FirebaseAnalytics in the app. See the Firebase docs instead (#7487).
  • Breaking change: The Firebase/AdMob CocoaPods subspec has been removed. Use the Google-Mobile-Ads-SDK CocoaPod instead (#7833).
  • Breaking change: The Firebase/MLModelInterpreter CocoaPods subspec has been removed. Use the Firebase/MLModelDownloader and TensorFlowLiteSwift (or TensorFlowLiteObjC) specs instead.
  • Breaking change: The Firebase/MLVision CocoaPods subspec has been removed. For alternatives, see the Text Recognition, Image Labeling, and Landmark Recognition docs.
  • The Swift Package Manager distribution has exited beta and is now generally available for use.
  • The Swift Package Manager distribution now requires at least iOS 11.0. The CocoaPods distribution continues to support iOS 10.0.
  • The Swift Package Manager distribution now requires at least watchOS 7.0 for products that support watchOS. The CocoaPods distribution continues to support watchOS 6.0 with the exception of FirebaseDatabase.
  • Migrated transform: callsites and introduced breaking version of GoogleDataTransport (9.0) (#7899). No changes are required to your app to upgrade to GoogleDataTransport 9 unless you were using GoogleDataTransport APIs directly.

Analytics

  • Removed deprecated setScreenName(_:screenClass:) API.

App Check

Authentication

  • Fixed a crash that occurred when assigning auth settings (#7670).

Crashlytics

  • Added a warning to upload-symbols when it detects a dSYM with hidden symbols.

Realtime Database

  • Fixed crashes on simulators targeting iOS versions below iOS 14 on Apple Silicon (#7989).

Cloud Functions

  • Added abuse reduction features (#7928).

FCM

  • Removed the Instance ID dependency from FCM. This is a breaking change for FCM users who use the deprecated Firebase Instance ID API to manage registration tokens. Users should migrate to FCM's token APIs by following the migration guide (#7836).

Remote Config

  • Fixed throttling issue when fetch fails due to no network (#6628).
  • Fixed issue where sometimes the local config returned is empty (#7424).

Cloud Storage

  • Added FirebaseStorage.useEmulator(), which allows the Storage SDK to connect to the Cloud Storage for Firebase emulator.
  • Added abuse reduction features (#7928).

Version 7.11.0 - April 20, 2021

Analytics

  • Added Firebase/AnalyticsWithoutAdIdSupport subspec for developers of apps that aren’t using AdSupport or subject to AppTrackingTransparency.

FCM

  • Removed internal Messaging dependencies on InstanceID (though both libraries can still co-exist in one app). The InstanceID dependency will be removed in the next major version of Firebase (#7814).

Firebase In-App Messaging

  • Fixed SPM resource inclusion for in-app messages (#7715).

Version 7.10.0 - April 6, 2021

  • Updated nanopb to version 0.3.9.8 to fix a security vulnerability (#7787).

Crashlytics

  • Added a warning to upload-symbols when it detects a dSYM without any symbols.

Remote Config

  • Throw exception if projectID is missing from FirebaseOptions (#7725).

Version 7.9.1 - March 24, 2021

This version is available via Swift Package Manager only.

  • Fixed an issue where Swift Package Manager tags were unresolvable in 7.9.0 (#7777).

Version 7.9.0 - March 23, 2021

Analytics

Swift Extensions

  • Initial public beta release. Introduces new SwiftUI-friendly APIs for screen tracking. To use, add pod 'FirebaseAnalyticsSwift', '~> 7.9-beta' to the Podfile or add the FirebaseAnalyticsSwift-Beta framework in Swift Package Manager, then add import FirebaseAnalyticsSwift to the source. Please provide feedback about these new APIs and suggestions about other potential Swift extensions to the Firebase iOS SDK issue tracker.

Crashlytics

  • Updated Firebase pod to allow iOS 9 installation via pod 'Firebase/Crashlytics'.

Realtime Database

  • Added community support for watchOS (#4556).

Cloud Firestore

  • Added support for Firestore Bundles via FIRFirestore.loadBundle, FIRFirestore.loadBundleStream and FIRFirestore.getQueryNamed. Bundles contain pre-packaged data produced with the Server SDKs and can be used to populate Firestore's cache without reading documents from the backend.

Firebase In-App Messaging

  • Added support for building custom in-app messages with SwiftUI (#7496).

Remote Config

  • Enabled community supported watchOS build in Swift Package Manager (#7696).
  • Remote Config no longer generates a missing Analytics warning on Catalyst (#7693).

Version 7.8.1 - March 12, 2021

Analytics

  • Fixed an issue where references to retrieveAdTrackingConsentStatus caused kids' apps to be rejected during App Store review (#7652).

Version 7.8.0 - March 9, 2021

Analytics

  • Removed reference to NSUserTrackingUsageDescription (#7652).
  • Internal code cleanup.

Authentication

  • Fixed auth state sharing during first app launch (#7472).

Crashlytics

  • Added a new API checkAndUpdateUnsentReportsWithCompletion for updating the crash report from the previous run of the app if, for example, the developer wants to implement a feedback dialog to ask end-users for more information. Unsent Crashlytics Reports have familiar methods like setting custom keys and logs (#7503).
  • Added a limit to the number of unsent reports on disk to prevent disk filling up when automatic data collection is off. Developers can ensure this limit is never reached by calling send/deleteUnsentReports every run (#7619).

Performance Monitoring

  • Deprecated Clearcut (internal-only change).
  • Enabled dynamic framework support (#7569).
  • Removed the warning to include Analytics as Perf does not depend on Analytics (#7487).
  • Fixed a crash due to a race condition (#7535).

Remote Config

  • Remote Config now stores fetch metadata per namespace to address activation issues (#7179).
  • Fixed an issue where experiment exposures were sometimes incorrect by only updating experiment data forfirebase-namespaced fetch requests (#7604).

Version 7.7.0 - February 23, 2021

  • Deprecated FirebaseMLModelInterpreter and FirebaseMLVision.
  • Introduced FirebaseMLModelDownloader.
  • Fixed missing doc comment in FirebaseVersion() (#7506).
  • Minimum required Xcode version for Zip and Carthage distributions changed to 12.2 (was 12.0).
  • The zip distribution now includes Catalyst arm64 simulator slices (#7007).

A/B Testing

  • Added community support for watchOS. A/B Testing can now build on watchOS, but some functions might not work yet (#7481).

Crashlytics

  • Added a new API to allow for bulk logging of custom keys and values (#7302).

Realtime Database

  • Fix variable length array diagnostics warning (#7460).
  • Added utmParametersDictionary property to DynamicLink (#6730).

Cloud Firestore

  • Fixed a crash that could happen when the App object is being deleted and there's an active listener (#6909).
  • Fixed a bug where local cache inconsistencies were being unnecessarily resolved (#7455).

Swift Extensions

  • Added support for specifying ServerTimestampBehavior when decoding a DocumentSnapshot.

Cloud Functions

  • Fixed missing "http://" prefix when using Functions with the emulator (#7537, #7538).

Firebase In-App Messaging

  • Fixed accessibility experience for in-app messages (#7445).
  • Fixed conversion tracking for in-app messages with a conversion event but not a button / action URL (#7306).

FCM

  • Fixed an issue in which, when checking storage size before writing to disk, the client was checking document folders that were no longer used (#7480).

Performance Monitoring

  • Add community-supported tvOS.

Remote Config

  • Added community support for watchOS (#7481).

Version 7.6.0 - February 9, 2021

  • Fixed build warnings introduced with Xcode 12.5 (#7431).

Authentication

  • Auth emulator now works across the local network (#7350).
  • Fixed incorrect import for watchOS (#7425).

Crashlytics

  • Improved start-up performance by moving some initialization work to a background thread (#7332).
  • Updated upload-symbols to a version that is notarized to avoid macOS security alerts (#7323).
  • Deleting unsent reports with deleteUnsentReports no longer happens on the main thread (#7298).
  • Fixed an issue where some developers experienced a race condition involving binary image operations (#7459).

Realtime Database

  • Fixed variable length array diagnostics warning (#7460).
  • Fixed build warnings introduced with Xcode 12.5 (#7434).

Cloud Firestore

  • A write to a document that contains FieldValue transforms is no longer split up into two separate operations. This reduces the number of writes the backend performs and allows each WriteBatch to hold 500 writes regardless of how many FieldValue transformations are attached.
  • Fixed an issue where using FieldValue.arrayRemove() would only delete the first occurrence of an element in an array in a latency compensated snapshots.

Firebase In-App Messaging

  • Fixed accessibility experience for in-app messages (#7445).
  • Fixed conversion tracking for in-app messages with a conversion event but not a button / action URL (#7306).

FCM

  • Fixed build warnings introduced with Xcode 12.5 (#7433).

Performance Monitoring

  • Fixed build warnings introduced with Xcode 12.5 (#7435).

Remote Config

  • Fixed build warnings introduced with Xcode 12.5. (#7432)

Version 7.5.1 - January 28, 2021

This release is available via Swift Package Manager only.

  • Fixed a bug introduced in 7.5.0 where GoogleUtilities' Reachability Swift package name could collide with other Swift packages named 'Reachability' (#7405).

Version 7.5.0 - January 27, 2021

  • Fixed potential deadlock with objc_copyImageNames call (#7310).

Analytics

  • Consolidated pods to distribute binaries as xcframeworks built with Xcode 12.
  • CocoaPods ARM Mac users no longer need to use the M1 tagged pods or add the -ObjC linker flag.
  • Updated collection of some click identifiers to be contingent on when the advertising identifier is available.

Crashlytics

  • Improve start-up performance by moving some initialization work to a background thread (#7332).
  • Updated upload-symbols to a version that is notarized to avoid macOS security alerts (#7323).
  • Deleting unsent reports with deleteUnsentReports no longer happens on the main thread (#7298).

Realtime Database

  • Added DatabaseQuery.queryStartingAfterValue(_:) and DatabaseQuery.queryEndingBeforeValue(_:) for query pagination.
  • Added DatabaseQuery.getData() which returns data from the server when the cache is stale (#7110).
  • Inadvertently introduced an issue in DatabaseQuery.getData() that causes data to be returned which doesn't match the query filters. To work around this issue, use observeSingleEvent(of:with:) instead. We are working on providing a fix (#7403).

Cloud Firestore

  • A write to a document that contains FieldValue transforms is no longer split up into two separate operations. This reduces the number of writes the backend performs and allows each WriteBatch to hold 500 writes regardless of how many FieldValue transformations are attached.
  • Fixed an issue where using FieldValue.arrayRemove() would only delete the first occurrence of an element in an array in latency-compensated snapshots.

Firebase In-App Messaging

  • Fixed failed assertion causing app to crash during test on device flow (#7299).

Remote Config

  • Fixed bug that was incorrectly flagging ABT experiment payloads as invalid (#7184).
  • Standardize support for Firebase products that integrate with Remote Config (#7094).

Version 7.4.0 - January 12, 2021

  • Patch update to nanopb 0.3.9.7 that fixes a memory leak and other issues (#7090).
  • Zip distribution now includes community supported macOS and tvOS libraries. Product support detailed here.

Analytics

  • Updated nanopb dependency.

Authentication

  • Check if the reverse client ID is configured as a custom URL scheme before setting it as the callback scheme (#7211).
  • Add ability to sync auth state across devices (#6924).
  • Add multi-tenancy support for email link sign-in (#7246).

Crashlytics

  • Removed obsolete crash reporting mechanism from the SDK (#7076).

Firebase In-App Messaging

  • Fixed default display bug in apps that don't use UISceneDelegate (#6803).

InstanceID

  • Added a check on whether the default token has been changed by Messaging before writing to the InstanceID keychain storage (#7223).

Performance Monitoring

  • Open-sourced Firebase Performance.
  • Removed GoogleToolboxForMac and GTMSessionFetcher dependencies.

Cloud Storage

  • Prevent second listAll callback (#7197).

Version 7.3.1 - December 15, 2020

This release is available via CocoaPods and Swift Package Manager only.

  • Fixed a regression where a callback could occur off of the main thread.

Version 7.3.0 - December 9, 2020

  • Added FirebaseAppDistribution-Beta product to Swift Package Manager (#7045).

Analytics

  • Added missing header to FirebaseAnalytics.h (#7114).

App Distribution

  • App Distribution now signs out the tester when the call to fetch releases fails with an unauthenticated error.
  • Crash caused by trying to parse response as JSON when response is nil (#6996).

Authentication

  • Fixed a Catalyst browser issue with verifyPhoneNumber API (#7049).

Crashlytics

  • Added Crashlytics support for x86 apps running on Apple Silicon via Rosetta 2.
  • Decreased Crashlytics CocoaPods minimum deployment target from iOS 10 to iOS 9.
  • Removed obsolete API calls from upload-symbols.
  • Removed obsolete onboarding calls from the SDK.
  • Manually created dynamic links are now subject to allowed/blocked checks defined in Firebase Console (#5853).

Cloud Firestore

  • Fixed a crash that could happen when the SDK encountered invalid data during garbage collection (#6721).

Firebase In-App Messaging

  • Fixed default display bug in apps that don't use UISceneDelegate (#6803).

Cloud Storage

  • Verify block is still alive before calling it in task callbacks (#7051).

Performance Monitoring

  • Added an experimental event dispatch mechanism to enable faster performance reporting.
  • Added a blocklist for GoogleDataTransport upload URLs to avoid cyclic generation of network performance events.
  • Performance Monitoring v7.3.0 is not available via Carthage. Use 7.1.0 as a workaround.

Version 7.2.0 - December 2, 2020

  • Reduced FirebaseApp.configure() and +[FIRApp registerInternalLibrary:withName:] impact on app launch time (#6902).
  • Added arm64 simulator support to support new Apple silicon Macs. See here for more details.
  • Due to the new arm64 simulator support, Xcode 12 is now required for any binary products (Analytics, Performance, zip file, and Carthage distributions).

Analytics

  • Distributed binaries as xcframeworks in order to support the arm64 simulator slice.
  • Moved expensive read operations out of +initialize (#6936).
  • Increased minimum required CocoaPods version to 1.10 for only the Apple silicon distribution in order to add xcframework binary support. See here for more details.

Realtime Database

  • Made emulator connection API consistent between Auth, Database, Firestore, and Functions (#5916).

Cloud Firestore

  • Made emulator connection API consistent between Auth, Database, Firestore, and Functions (#5916).

Cloud Functions

  • Made emulator connection API consistent between Auth, Database, Firestore, and Functions (#5916).

Performance Monitoring

  • Add Xcode simulator support for new Apple silicon based Macs (SDK is compatible only with Xcode 12 and above).
  • Increased minimum required CocoaPods version to 1.10 in order to add xcframework binary support. See here for more details.

Version 7.1.0 - November 10, 2020

Authentication

  • Fixed a crash on iOS 14 when multiple app delegate completion methods were called (#6863).

Crashlytics

  • Fixed an issue where symbol uploads would fail when there are spaces in the project path, particularly in Unity builds (#6789).
  • Added additional logging when settings requests fail with a 404 status to help customers debug onboarding issues (#6847).

Cloud Firestore

  • Added the original query data to error messages for queries that cannot be deserizialized.
  • Remove explicit MobileCoreServices library linkage from podspec (#6850).
  • Removed excess validation of null and NaN values in query filters. This more closely aligns the SDK with the Firestore backend, which has always accepted null and NaN for all operators, even though this isn't necessarily useful.

Cloud Functions

  • Added a constructor to set a custom domain (#6787).

FCM

  • Fixed a crash on iOS 14 when multiple app delegate completion methods were called (#6863).

Remote Config

  • Add support for other Firebase products to integrate with Remote Config (#6692).

Version 7.0.0 Patch Release - November 4, 2020

This patch release is available via CocoaPods only.

Performance Monitoring

  • Fixed a crash that occurred when recording network requests (#6734).

Version 7.0.0 - October 26, 2020

This release contains several breaking changes, and thus constitutes a major version update.

  • Breaking change: Updated minimum iOS version to iOS 10 except for Analytics which is now iOS 9 (#4847).
  • Breaking change: Updated minimum macOS version to 10.12.
  • Breaking change: The pods developed in this repo are no longer hard coded to be built as static frameworks. Instead, their linkage will be controlled by the Podfile. Use the Podfile option use_frameworks! :linkage => :static to get the Firebase 6.x linkage behavior. See this linking guide for mode details (#2022).
  • Breaking change: The version must now be specified for the two Swift-only Firebase CocoaPods in the Podfile like pod 'FirebaseFirestoreSwift', '~> 7.0-beta'.
  • Firebase now requires a minimum CocoaPods version of 1.9.0.
  • Added Swift Package Manager support for Firebase Messaging (#5641).
  • Added Swift Package Manager support for Auth, Crashlytics, Messaging, and Storage watchOS targets (#6584).
  • Firebase no longer uses the CocoaPods private_headers feature to expose internal APIs (#6572).
  • Removed broken FirebaseOptions() initializer. Use init(contentsOfFile:) or init(googleAppID:gcmSenderID:) instead (#6633).
  • All Firebase pods now have the same version (#6295).
  • In CocoaPods, Firebase betas are now indicated in the version tag. In Swift Package Manager, beta is appended to the product name.
  • Added global function FirebaseVersion() (or FIRFirebaseVersion() for ObjC users) to access the Firebase installation version.

A/B Testing

  • Removed FIRExperimentController.updateExperiments(serviceOrigin:events:policy:lastStartTime:payloads:), which was deprecated (#6543).

App Distribution

  • Updated error log for non-200 API service calls.

Analytics

  • Added support for consent mode.
  • Updated minimum iOS version to 9.0.
  • Marked Analytics.init() as unavailable.
  • Marked Analytics.appInstanceID() as nullable.
  • Added the following event names as reserved:
    • ad_reward
    • app_background
    • app_exception
    • app_store_refund
    • app_store_subscription_cancel
    • app_store_subscription_convert
    • app_store_subscription_renew
    • app_upgrade
    • dynamic_link_app_open
    • dynamic_link_app_update
    • dynamic_link_first_open
    • first_visit
    • session_start_with_rollout
  • The following event names are no longer reserved:
    • app_uninstall
    • screen_view

Authentication

  • Removed deprecated APIs dataForKey,fetchProvidersForEmail:completion, signInAndRetrieveDataWithCredential:completion, reauthenticateAndRetrieveDataWithCredential:completion, linkAndRetrieveDataWithCredential:completion (#6607).
  • Added emulator support (#6624).
  • Removed global variables FirebaseAuthVersionNum and FirebaseAuthVersionStr. FirebaseVersion() or FIRFirebaseVersion() should be used instead.

Crashlytics

  • Improved upload-symbols conversion speed. Customers with large dSYMs should see a significant improvement in the time it takes to upload Crashlytics symbols.
  • Fixed watchOS crash related to sigaction (#6434).

Realtime Database

  • Disabled a deprecation warning (#6502).
  • Updated dependencies to maintain compatibility with Firebase 7.

Cloud Firestore

  • Breaking change: Removed the areTimestampsInSnapshotsEnabled setting. Timestamp fields that read from a FIRDocumentSnapshot now always return FIRTimestamp objects. Use FIRTimestamp.dateValue to convert to NSDate if required.
  • Fixed a memory leak introduced in 1.18.0 that may manifest when serializing queries containing equality or non-equality comparisons.

Swift Extensions

  • Added conditional conformance to the Hashable protocol for the @DocumentID, @ExplicitNull, and @ServerTimestamp property wrappers.

  • Removed support for wrapping NSDate in a @ServerTimestamp property wrapper. This never actually worked because NSDate is not Codable.

  • Fixed the minimum supported Swift version to be 4.1. This was already effectively the case because the code made use of Swift 4.1 features without documenting this requirement.

Firebase In-App Messaging

  • Removed deprecated elements of In-App Messaging API.

Installations

  • Removed global variable FIRInstallationsVersionStr. FirebaseVersion() or FIRFirebaseVersion() should be used instead.
  • Installations now throws an exception if FIROptions.projectID is missing or FIROptions.APIKey has an incorrect format to catch critical configuration issues earlier (#4692).
  • Removed the FIR prefix from FIRInstallationIDDidChange and renamed kFIRInstallationIDDidChangeNotificationAppNameKey to InstallationIDDidChangeAppNameKey in Swift.
  • API docs updated to use term "installation auth token" consistently (#6014).

InstanceID

  • Deprecated private -[FIRInstanceID appInstanceID:] method was removed (#4486).
  • Fixed an issue where the APNs token was not sent in the token request when iOS APNs token fetch was delayed (#6553).

FCM

  • Removed the deprecated FCM direct channel API and Upstream send API (#6430).
  • The messaging:didReceiveRegistrationToken: is able to return a null token. Updated the API parameter fcmToken to be nullable (#5339).
  • Fixed an issue that downloading an image failed when there's no extension in the file name but MIME type is set (#6590).

Firebase ML

  • Updated dependencies to maintain compatibility with Firebase 7.

Performance Monitoring

  • Fixed issue related to crashes on specific kind of network requests #6713.
  • Fixed issue related to race condition on Firebase Remote Config initialization #6287.

Remote Config

  • Updated lastFetchTime field to readonly (#6567).
  • Functionally neutral change to stop using a deprecated method in the A/B Testing API (#6543).
  • Updated numberValue to be nonnull to align with current behavior (#6623).
  • Removed deprecated APIs isDeveloperModeEnabled, initWithDeveloperModeEnabled:developerModeEnabled, activateWithCompletionHandler:completionHandler, activateFetched, configValueForKey:namespace, configValueForKey:namespace:source, allKeysFromSource:namespace, keysWithPrefix:namespace, setDefaults:namespace, setDefaultsFromPlistFileName:namespace, defaultValueForKey:namespace (#6637).
  • Completion handler for fetchAndActivateWithCompletionHandler is now run on the main thread (#5897).
  • Fixed database creation on tvOS (#6612).
  • Updated public API documentation to no longer reference removed APIs (#6641).
  • Updated activateWithCompletion: to use completion handler for experiment updates (#3687).

Cloud Storage

  • Removed global variable FIRStorageVersionString. FirebaseVersion() or FIRFirebaseVersion() should be used instead.
  • Fixed an issue with the List API that prevented listing of locations that contain the "+" character.
  • Renamed list(withMaxResults:) to list(maxResults:) in the Swift API.
  • Fixed an issue that caused longer than expected timeouts for users that specified custom timeouts.

Version 6.34.0 Patch Release - October 23, 2020

This release is available via CocoaPods only. Changes in this release will be present in subsequent non-patch releases for all non-CocoaPods distributions.

Performance Monitoring

  • Fixed a crash that occurred when recording network requests. This release is identical to v3.3.0. Run pod update to install FirebasePerformance 3.3.2.
  • Reverted the fix for a bug where URLSharedSession-based network requests were not automatically monitored in iOS 14.

Version 6.34.0 Patch Release - October 8, 2020

This release is available via CocoaPods only. Changes in this release will be present in subsequent non-patch releases for all non-CocoaPods distributions.

  • Fixed deprecation warnings in GoogleDataTransport when targeting iOS 12 or higher. The fix is available in GoogleDataTransport v7.5.1 (#6682).

Version 6.34.0 - October 6, 2020

  • Removed warning related to missing Analytics framework for non-iOS builds since the framework isn't available on those platforms (#6500).

Analytics

  • Added support for manually logging ad impressions with logEvent(_:parameters:).

Crashlytics

  • Improved upload-symbols conversion speed. Customers with large dSYMs should see a significant improvement in the time it takes to upload Crashlytics symbols.
  • Fixed Apple Watch crash related to sigaction (#6434).

Cloud Firestore

  • Internal improvements for future C++ and Unity support. Includes a breaking change for the Firestore C++ Alpha SDK, but does not affect Objective-C or Swift users.
  • Added new internal HTTP headers to the gRPC connection.

Installations

  • Added additional FIRInstallationsItem validation to catch potential storage issues (#6570).

InstanceID

  • Deprecated InstanceID. For app instance identity handling, use FirebaseInstallations. For FCM registration token handling, use FirebaseMessaging (#6585).

FCM

  • Added macro to suppress InstanceID deprecation warning (#6585).

Performance Monitoring

  • Fixed an issue where URLSharedSession based network requests were not automatically monitored in iOS14.

Remote Config

  • Fixed an attempt to insert nil object crash in fetchWithExpirationDuration: (#6522).

Cloud Storage

  • Fixed typo in doc comments (#6485).

Version 6.33.0 - September 22, 2020

  • Swift Package Manager - Define system framework and system library dependencies. This resolves undefined symbol issues for system dependencies (#6408, #6413).
  • Swift Package Manager - Fixed build warnings related to minimum iOS version (#6449).
  • Enable Firebase pod support for Auth and Crashlytics watchOS platform (#4558).
  • Carthage - Some frameworks were missing Info.plist files (#5562).

Analytics

  • Fixed unintentional network request when Analytics collection is disabled (#5837).

App Distribution

  • Updated error log for non-200 API Service calls.

Authentication

  • Fixed internal source documentation (#6371).

Crashlytics

  • Fixed Apple Watch crash related to sigaction (#6434).
  • Changed client ID usage in API calls and respective checks in the code.
  • Fixed attempts to connect to invalid IPv6 domain by updating IPv4 and IPv6 to use a single, valid endpoint (#5032).

Cloud Firestore

  • Added whereField(_:notIn:) and whereField(_:isNotEqualTo:) query operators. whereField(_:notIn:) finds documents where a specified field’s value is not in a specified array. whereField(_:isNotEqualTo:) finds documents where a specified field's value does not equal the specified value. Neither query operator will match documents where the specified field is not present.

Cloud Functions

  • Weak dependency on Instance ID replaced by Firebase Messaging (#6395).

InstanceID

  • Added a new notification for listening for token refresh from Messaging and updated the token cache in InstanceID (#6286).
  • Fixed an issue where the token refresh notification was not triggered when using tokenWithAuthorizedEntity:scope:options:handler to fetch the token (#6286).

FCM

  • Added new token APIs to get and delete the default FCM registration token asynchronously. Also added new Messaging.deleteToken(completion:) and Messaging.token(completion:) methods for managing registration tokens and checkin data. Existing FCM users should replace their InstanceID calls with the new methods to prepare for the coming deprecation of InstanceID. (#6313).

Version 6.32.2 - September 14, 2020

Analytics

  • Updated access to IDFA based on Apple announcement on effective date of AppTrackingTransparency policy.

Version 6.32.0 - September 8, 2020

  • Swift Package Manager - It's no longer necessary to select the Firebase or FirebaseCore products. Their build targets are implicitly selected when choosing any other Firebase product. If migrating from 6.31-spm-beta, you may need to remove those targets from the Frameworks, Libraries, and Embedded Content Build Setting on the General tab.

Analytics

  • Resolved potential issues in usage of CFPreferences API.
  • Internal code cleanup.

App Distribution

  • The App Distribution fastlane plugin version 0.2.0 no longer relies on the Firebase CLI to authenticate users and requests. For more information, visit Distribute an app with fastlane.

Authentication

  • Updated internal source documentation (#6371).

Crashlytics

  • Added stackFrameWithAddress API for recording custom errors that are symbolicated on the backend (#5975).
  • Fixed comment typos (#6363).
  • Remove device information from binary image data crash info entries (#6382).

Realtime Database

  • The SDK can now infer a default database URL if none is provided in the config.

Cloud Firestore

  • Fix gRPC documentation warning surfaced in Xcode (#6340).

Version 6.31.1 - August 31, 2020

This release is available via CocoaPods only. Changes listed in this section will be present in subsequent binary releases.

  • Fixed sporadic missing FirebaseApp symbol build issue introduced in Firebase 6.28.0 (#6341).

Version 6.31.0 Patch Release - August 27, 2020

This release is available via CocoaPods only. Changes listed in this section will be present in subsequent binary releases.

App Distribution

  • Updated header comments (#6321).
  • Fixed a bug where customers with restricted API keys were unable to fetch releases (#6346).

Version 6.31.0 - August 25, 2020

  • Beta release of Swift Package Manager. Details here. (#3136)
  • Firebase's dependencies on nanopb are updated from version 0.3.9.5 to version 0.3.9.6 (1.30906.0 in CocoaPods).

Analytics

  • Added support for measuring first_open conversions for users who accept Apple's iOS 14 app tracking prompt.

App Distribution

  • The App Distribution iOS SDK is now available in beta. You can now add the SDK to enable and customize in-app new build alerts for your testers. For more details, visit Set up in-app alerts.

Authentication

  • Added support for multi-tenancy (#6142).
  • Added basic watchOS support (#4621).
  • Improved Xcode completion of public API completion handlers in Swift (#6283).

Crashlytics

  • Fixed a compiler warning and removed unused networking code (#6210).
  • Fixed a crash that occurred rarely when trying to restart a URL session task without a valid request (#5984).
  • Introduced watchOS support (#6262).
  • Functionally neutral public header refactor to enable Swift Package Manager support.

Cloud Firestore

  • Internal improvements for future C++ and Unity support.

Firebase In-App Messaging

  • Functionally neutral import and header refactor to enable Swift Package Manager support.

Installations

  • Use ephemeral NSURLSession to prevent caching of request/response (#6226).
  • Backoff added for some error to prevent unnecessary API requests (#6232).

InstanceID

  • Added a new notification for listening for FCM token refresh and updating the token cache in InstanceID (#6286).
  • Fixed an issue where token refresh notification would not be triggered when using tokenWithAuthorizedEntity:scope:options:handler to fetch the token (#6286).

FCM

  • Fixed an issue where topic subscription did not work in watchOS (#6160).
  • Improved Xcode completion of public API completion handlers in Swift (#6278).

Version 6.30.0 - August 11, 2020

  • Functionally neutral public header refactor in preparation for Swift Package Manager support. Applies to FirebaseCore, FirebaseABTesting, FirebaseAuth, FirebaseCrashlytics, FirebaseDatabase, FirebaseFirestore, FirebaseFunctions, FirebaseInstallations, FirebaseRemoteConfig, FirebaseStorage, and GoogleDataTransport.

Analytics

  • Fixed an issue where the log level set by FirebaseConfiguration is overwritten (#5704).
  • Internal code cleanup.

A/B Testing

  • Functionally neutral source reorganization for preliminary Swift Package Manager support (#6016).

Authentication

  • Fix bug where multiple keychain entries would result in user persistence failure (#5906).
  • Added support for using GOOGLE_APP_ID in generic IDP and phone auth reCAPTCHA fallback flows (#6121).

Crashlytics

  • Fixed a segmentation fault that could occur when writing crash contexts to disk (#6048).

Realtime Database

  • Functionally neutral source reorganization (#5861).
  • Guard check logic in check for pending dynamic link.

Cloud Firestore

  • Rearranged public headers for future Swift Package Manager support. This should have no impact on existing users of CocoaPods, Carthage, or zip file distributions.

Cloud Functions

  • Functionally neutral source reorganization (#5858).

Installations

  • Functionally neutral source reorganization (#5861).

Firebase ML

  • Updated the TensorflowLiteObjC dependency to 2.3.0 in FirebaseMLModelInterpreter. Resolves (#5746).

Remote Config

  • Fixed FirebaseApp.delete()-related crash in config fetch (#6123).

Performance Monitoring

  • Rolled forward previous changes from in-house event log dispatch mechanism to GoogleDataTransport after fixing client timestamp issue.
  • Updated the Logging message for 'Trace' and 'Network Requests' (see Public Docs).
  • Resolved a long standing issue which stopped network request trace from being dispatched on Simulator.

Cloud Storage

  • Functionally neutral source reorganization (#5861).

Version 6.29.0 - July 28, 2020

A/B Testing

  • Functionally neutral source reorganization for preliminary Swift Package Manager support (#6016).

Analytics

  • Added support for manually logging screen views with logEvent(_:parameters:). The setScreenName(_:screenClass:) API will be deprecated and removed in a future major release.
  • Added setDefaultEventParameters API to support setting parameters that will be logged on all events.
  • [SKAdNetwork registerAppForAdNetworkAttribution] is now automatically called on first open by default. To opt-out of this default behavior, add the key GOOGLE_ANALYTICS_REGISTRATION_WITH_AD_NETWORK_ENABLED with Boolean value NO to your app’s Info.plist file.

Authentication

  • Fixed a multithreaded memory access issue (#5979).

Crashlytics

  • Fixed a segmentation fault that could occur when writing crash contexts to disk (#6048).

Cloud Firestore

  • Internal improvements for future C++ and Unity support.

Firebase In-App Messaging

  • Fixed an inaccurate doc comment in InAppMessagingDisplay (#5972).
  • Functionally neutral source reorganization for preliminary Swift Package Manager support (#6013).

InstanceID

  • Remove FIRInstanceIDURLQueryItem in favor of NSURLQueryItem (#5835).

FCM

  • Remove logic that was executed for iOS 7 and below (#5835).

Remote Config

  • Functionally neutral source reorganization for preliminary Swift Package Manager support (#6013).

Version 6.28.2 - July 21, 2020

Zip file released containing FirebasePerformance 3.2.1.

Version 6.28.1-hotfix - July 20, 2020

CocoaPods users can access this release by running pod update to install the fix in FirebasePerformance 3.2.1. Zip file users can access the fix with version 6.28.2.

Performance Monitoring

  • Fixed an issue that caused the majority of events to not be processed. This release is identical to v3.1.11.

Version 6.28.1 - July 14, 2020

Cloud Firestore

  • Fixed a configuration issue where listeners were no longer being called back on the main thread by default.

Version 6.28.0 - July 14, 2020

  • Building with Firebase now requires Xcode 11.3 or higher. Note that Xcode 11.4 should not be used for apps that still support 32-bit devices.
  • Added thread safety to [FIROptions defaultOptions] method (#5915).
  • Updated GoogleUtilities and GoogleDataTransport imports. The GoogleDataTransportCCTSupport dependency should no longer be linked along with Firebase (#5824).

A/B Testing

  • Removed Protobuf dependency (#5890).

Authentication

  • Functionally neutral source reorganization for preliminary Swift Package Manager support (#5856).

Crashlytics

  • Add dispatch_once for opening sdk log file (#5904).
  • Functionally neutral updated import references for dependencies (#5902).

Realtime Database

  • Functionally neutral source reorganization (#5861).
  • Fixed crashes that occur when a dynamic link is opened for the second time while an app is in the foreground (#5880).
  • Added plist property FirebaseDeepLinkPasteboardRetrievalEnabled to enable/disable fetching dynamic links from Pasteboard.
  • Reduce frequency of iOS14 pasteboard notifications by only reading from it when it contains URL(s) (#5905).
  • Functionally neutral updated import references for dependencies (#5824).

Cloud Firestore

  • Removed a delay that may have prevented Firestore from immediately establishing a network connection if a connectivity change occurred while the app was in the background (#5783).
  • Fixed a rare crash that could happen if the garbage collection process for old documents in the cache happened to run during a LevelDB compaction (#5881).

Cloud Functions

  • Functionally neutral source reorganization (#5858).

Firebase In-App Messaging

  • Fixed an inaccurate doc comment in InAppMessagingDisplay (#5972).

Installations

  • Functionally neutral source reorganization (#5832).

InstanceID

  • Functionally neutral updated import references for dependencies (#5824).

FCM

  • Fix documentation warning exposed by Xcode 12 (#5876).
  • Functionally neutral updated import references for dependencies (#5824).

ML Kit for Firebase

  • Marked all on-device APIs as deprecated. See the migration guide at https://developers.google.com/ml-kit/migration.
  • Migrated from FirebaseInstanceID (IID) to FirebaseInstallations (FIS).

Performance Monitoring

  • Migrated from in-house event log dispatch mechanism to GoogleDataTransport.
  • Updated the Logging message for 'Trace' and 'Network Requests' (see Public Docs).

Remote Config

  • Functionally neutral updated import references for dependencies (#5824).
  • Updated Remote Config to consume the Protobuf-less A/B Testing SDK (#5890).

Cloud Storage

  • Add error for attempt to upload directory (#5750).
  • Functionally neutral source reorganization (#5851).

Version 6.27.1 - July 6, 2020

Analytics

  • Updated symbols to not conflict with those defined in AdSupport.framework (#5153).
  • Internal code cleanup.

Version 6.27.0 - June 16, 2020

  • Functionally neutral refactor to simplify FirebaseCore's header usage and replace Interop pods with headers only. This change is the reason most of the Firebase pods have a minor version update and why there may not be another specific release note.

Analytics

  • Fixed detection of duplicate subscription renewals.

Authentication

  • Standardize FirebaseCore import headers (#5758).

Crashlytics

  • Standardize FirebaseCore import headers (#5758).

Realtime Database

  • Standardize FirebaseCore import headers (#5758).
  • Fixed unwanted pending dynamic links checks on subsequent app restarts (#5665).

Cloud Firestore

  • Fixed an issue that may have prevented the client from connecting to the backend immediately after a user signed in.

Firebase In-App Messaging

  • Standardize FirebaseCore import headers (#5758).

Installations

  • Standardize FirebaseCore import headers (#5758).

InstanceID

  • Standardize FirebaseCore import headers (#5758).

FCM

  • Use UNNotificationRequest to schedule local notification for local timezone notification for iOS 10 and above. This should also fix an issue where '%' was not properly shown in title and body (#5667).
  • Fixed Maltese language key for language targeting (#5702).

Remote Config

  • Removed typedefs from public API method signatures to improve Swift API usage from Xcode (#5748).

Cloud Storage

  • Fixed a crash when listAll() was called at the root location (#5772).
  • Added a check to FIRStorageUploadTask's putFile: to check if the passed-in fileURL is a directory, and provides a clear error if it is (#5750).

Version 6.26.0 - June 2, 2020

  • Fixed FirebaseApp's bundleID verification, allowing exact bundleID matches for extensions (#5126).

Analytics

  • Added support for the increased product limits that are available in the 360 version of Google Analytics.
  • Internal code cleanup.

Crashlytics

  • Fixed a crash that could occur if certain plist fields necessary to create Crashlytics records were missing at runtime. Also added some diagnostic logging to make the issue cause more explicit (#5565).

Cloud Firestore

  • Internal improvements for future C++ and Unity support. Includes a breaking change for the Firestore C++ Alpha SDK, but does not affect Objective-C or Swift users.

Firebase In-App Messaging

  • Fixed log message for in-app messaging test on device flow (#5680).

Installations

  • macOS Keychain storage now uses a unique (per app) Keychain Service name to isolate Keychain items for different macOS applications. Note: Installation identifiers created by previous versions will be reset on macOS which can affect, for example, A/B Testing variants or debug device targeting for Firebase Messaging. iOS, tvOS and watchOS Installation Identifiers will not be affected (#5603).
  • More readable server error console messages (#5654).
  • Auth Token auto fetch disabled (#5656).

ML Kit for Firebase

  • Added getLatestModelFilePath(_:completion:) API to ModelManager for getting the absolute file path on the device for a downloaded custom remote model.

Remote Config

  • Updated fetchAndActivateWithCompletionHandler: implementation to activate asynchronously (#5617).
  • Remove undefined class via removing unused proto generated source files (#4334).
  • Add an URLSession partial mock to enable testing without a backend (#5633).
  • Added activate API that returns a callback with an additional bool parameter indicating if the config has changed or not. The new API does not error if the console is unchanged. The old activate API with only an error parameter is deprecated and will be removed at the next major release (#3586).

Version 6.25.0 - May 19, 2020

  • Fixed FirebaseApp's bundleID verification, allowing exact bundleID matches for extensions (#5126).

Analytics

Cloud Firestore

  • Internal improvements for future C++ and Unity support. Includes a breaking change for the Firestore C++ Alpha SDK, but does not affect Objective-C or Swift users.

Swift Extensions

  • Renamed the misspelled FirestoreDecodingError.fieldNameConfict to fieldNameConflict (#5520).

Firebase In-App Messaging

  • Fixed an issue where clicks were counted for messages with no action URL (#5564).

FCM

  • Updated an error case with a failure reason to give more details on the error (#5511).

Remote Config

  • Fixed a bug where settings updates weren't applied before fetches (#4740).
  • Updated public API documentation for 4.4.10 change from FirebaseInstanceID to FirebaseInstallations (#5561).

Version 6.24.0 - May 5, 2020

Analytics

Authentication

  • Remove unused mfa request field mfa_provider (#5397).
  • Suppressed deprecation warnings when targeting iOS versions up to iOS 13 (#5437).

Crashlytics

  • Fixed unchecked mallocs in Crashlytics (#5428).
  • Fixed an instance of undefined behavior when loading files from disk (#5454).

Realtime Database

Cloud Firestore

  • Firestore now limits the number of concurrent document lookups it will perform when resolving inconsistencies in the local cache (firebase/firebase-js-sdk#2683).
  • Upgraded gRPC-C++ to 1.28.0 (#4994).
  • Firestore will now send Auth credentials to the Firestore Emulator (#5072).

Firebase In-App Messaging

  • Fixed an issue where GoogleUtilities wasn't explicitly listed as a dependency (#5282).

FCM

  • Changed the location of source under FirebaseMessaging folder to fit the current repository organization (#5476).

Remote Config

  • Dropped dependency on InstanceID. Remote Config now depends directly on Installations (#5096).
  • Remote Config now includes both CFBundleString and CFBundleShortVersionString in the outgoing fetch requests.

Version 6.23.0 - April 21, 2020

  • Fixed Carthage installation failures involving Protobuf.framework. Protobuf.framework is now separately installable by adding FirebaseProtobufBinary.json to the Cartfile. Full details in the Carthage usage instructions (#5276).

Analytics

  • Fixed backward compatibility issue.
  • Internal code cleanup.

Authentication

  • Handle calls to useUserAccessGroup soon after configure (#4175).

Crashlytics

  • The Firebase Crashlytics SDK is now generally available.

Realtime Database

  • Added ServerValue.increment() to support atomic field value increments without transactions.

Cloud Firestore

  • Internal improvements for future C++ and Unity support.

Firebase In-App Messaging

  • Fixed an issue where GoogleUtilities wasn't explicitly listed as a dependency (#5282).

Installations

  • Keychain key-value storage refactored to GoogleUtilities (#5329).

InstanceID

  • Internal cleanup and remove repetitive local notification (#5339).

FCM

  • Fixed an issue that when a token is deleted, the token refresh notification and delegate is not triggered (#5338).

Cloud Storage

  • Fix a rare case where a StorageTask would call its completion callbacks more than once (#5245).

Version 6.22.0 - April 8, 2020

  • Fixed unincluded umbrella header warnings in Carthage and zip distributions introduced in Firebase 6.21.0 (#5209).

Analytics

  • Fixed session_start event timestamp on warm start.
  • Fixed issue where some automatic events stopped logging after calling resetAnalyticsData.

Crashlytics

  • Increased network timeout for symbol uploads to improve reliability on limited internet connections (#5228).

Cloud Firestore

  • Internal changes.

Firebase In-App Messaging

  • Internal fixes for test apps (#5171).

InstanceID

  • Fixed provisioning profile location for catalyst (#5048).
  • Fixed crash when passing a nil handler to deleteToken request (#5247).
  • Remove obsolete logic to improve performance and reduce keychain operations (#5211, #5237).

Cloud Storage

Swift Extensions

  • Initial public beta release. Extends the Storage Reference API with the Swift Result type for all APIs that return an optional value and optional Error. To use, add pod 'FirebaseStorageSwift' to the Podfile and import FirebaseStorageSwift to the source. Please provide feedback about these new APIs and suggestions about other potential Swift extensions to the Firebase iOS SDK issue tracker.

Version 6.21.0 - March 24, 2020

  • The zip distribution is now comprised of xcframeworks instead of frameworks. This provides a binary distribution for the community supported Firebase for Catalyst. See the zip's README for additional details.

  • The FirebaseCoreDiagnostic.framework in the Carthage distribution now includes an Info.plist (#4917).

  • The arm64e slice is no longer included in the zip distribution's xcframeworks. The slice will be removed from the remaining frameworks in a subsequent release. We will restore it once arm64e is officially supported by Apple.

Analytics

Authentication

  • Internal changes (#5097).
  • Multi-factor authentication is now available in the zip file and Carthage distributions.

Crashlytics

  • Added a new API to record custom exception models and stacktraces to Crashlytics. This is a replacement for the recordCustomException API that existed in the Fabric Crashlytics SDK (#5055)
  • Fixed an issue with the sendUnsentReports API where reports wouldn't be uploaded until the method was called twice in specific instances (#5060)
  • Changed Crashlytics to use GoogleDataTransport to upload crashes (#4989)
  • Changed the origin that Crashlytics uses to register crash events for crash-free users. Ensure you have installed the Firebase SDK for Analytics version 6.3.1 or above (#5030)
  • Fixed Catalyst build - removed deprecated unused Apple framework dependencies (#5139).

Firebase In-App Messaging

  • Fixed display issue with banner messages on iPad Pro 11" (#4714).
  • Fixed 400 errors from backend due to a bug in the Instance ID SDK (#3887).
  • Internal change in in-app message A/B test flow (#5078).

Installations

  • Accessing GULHeartbeatDateStorage moved out of main thread (#5098).

Performance Monitoring

  • Added direct dependency to Firebase Installations and removed the dependency on Firebase InstanceID.

Version 6.20.0 - March 12, 2020

This release is only available on CocoaPods. New changes in this release will be available across all distribution channels in Firebase versions 6.21.0 and higher.

Authentication

  • Added support for Multi-factor Authentication (#4823). Note: Multi-factor authentication is currently only available on Google Cloud Identity Platform. Please follow this tutorial to use it in your Firebase projects.

Cloud Firestore

  • Fixed the FirebaseFirestore podspec to properly declare its dependency on the UIKit framework on iOS and tvOS.

Version 6.19.0 - March 10, 2020

  • Added an Apple platform flag (ios/macos/watchos/etc.) to firebaseUserAgent. The information will be used to support product decisions related to Apple platforms, e.g. prioritizing watchOS support, etc. (#4939)

A/B Testing

  • Added completion handler for FIRExperimentController's updateExperimentsWithServiceOrigin method.
  • Deprecated FIRExperimentController.updateExperiments(serviceOrigin:events:policy:lastStartTime:payloads:).
  • Added FIRExperimentController.validateRunningExperiments(serviceOrigin:runningExperimentPayloads:), allowing callers to expire experiments that are no longer running.
  • Added FIRExperimentController.activateExperiment(experimentPayload:origin:), allowing callers to directly activates an experiment.

Analytics

  • Added a warning when logging events with parameters containing Swift values not bridgeable to Objective-C Foundation types.
  • Fixed an issue where Analytics would crash at configuration on iOS 8 if a plist key was missing (#4957).

Crashlytics

  • Changed two endpoints in the Firebase Crashlytics SDK with no expected end-user impact (#4953, #4988).

Cloud Firestore

  • Firestore should now recover its connection to the server more quickly after returning from the background (#4905).

Firebase In-App Messaging

  • Added SDK support for A/B testing in-app messages.

Remote Config

  • Internal code changes (#4934).

Version 6.18.0 - February 25, 2020

  • Fix Zip Builder module map generation that could cause linker missing symbol errors in the 6.14.0 through 6.16.0 binary release distributions (#4819).

Analytics

  • Firebase InstanceID SDK dependency replaced by Firebase Installations SDK.
  • Fixed value type in keychain (#4742).
  • Fixed race conditions in accessing app instance ID after reset.
  • Retry resetting Analytics data if it does not complete before app termination.
  • Fixed a misuse of dispatch_once.

Cloud Firestore

  • Improved performance of queries with large result sets.

Firebase In-App Messaging

  • Added support for data bundles for in-app messages. Data bundles are additional key-value pairs that can be sent along with an in-app message (#4922).

InstanceID

  • Removed unused files (#4881).

FCM

  • Deprecated FCM direct channel messaging via shouldEstablishDirectChannel. Instead, use APNs for downstream message delivery. Add content_available key to your payload if you want to continue use legacy APIs, but we strongly recommend HTTP v1 API as it provides full APNs support. The deprecated API will be removed in Firebase 7 (#4710).
  • Deprecated upstream messaging API. For realtime updates, use Cloud Firestore, Realtime Database, or other services. The deprecated API will be removed in Firebase 7 (#4710).
  • Use secure coding for Messaging's pending topics (#3686).

Remote Config

  • Fixed a bug (#4677, #4734) where Remote Config does not work after a restore of a previous backup of the device. (#4896).

Version 6.17.0 - February 11, 2020

Crashlytics

  • Fixed symbol collisions with the legacy Fabric Crashlytics SDK and added a warning not to include both (#4753, #4755).
  • Added crash prevention checks (#4661).

Cloud Firestore

  • Internal improvements.

InstanceID

  • Instance ID no longer collects logging IDs (#4444).

FCM

  • The pod Firebase/Messaging subspec now supports watchOS (#4807).
  • Fixed FIRMessagingExtensionHelper crashing in unit tests (#4689).
  • Fixed FIRMessagingRmqManager crashing on devices with corrupted messaging database files (#4771).

Remote Config

  • Fixed a crash that could occur when attempting a remote config fetch before a valid Instance ID was available (#4622).
  • Fixed an issue where config fetch would sometimes fail with a duplicate fetch error when no other fetches were in progress (#3802).
  • Fetch calls will now fail if a valid instance ID is not obtained by the Remote Config SDK.

Performance Monitoring

  • Fixed a crash related to fetching cached config values from Remote Config (#4400, #4399).

Version 6.16.0 - January 28, 2020

  • Minimum required Xcode version changed to 10.3 (was 10.1).

Analytics

  • Resolved a database issue on iOS 12+ if linked with sqlite library versions older than 3.20.0.
  • Improved startup latency.

Crashlytics

  • Fixed VeraCode scanner issues for unchecked error conditions (#4669).

Cloud Firestore

  • Firestore previously required that every document read in a transaction must also be written. This requirement has been removed, and you can now read a document in a transaction without writing to it.
  • Improved the performance of repeatedly executed queries when persistence is enabled. Recently executed queries should see dramatic improvements. This benefit is reduced if changes accumulate while the query is inactive. Queries that use the limit() API may not always benefit, depending on the accumulated changes.
  • Changed the location of Firestore's locally stored data from the Documents folder to Library/Application Support, hiding it from users of apps that share their files with the iOS Files app. Important: After a user's data is migrated, downgrading to an older version of the SDK will cause the user to appear to lose data, since older versions of the SDK can't read data from the new location (#843).

Firebase In-App Messaging

  • Consolidated backend and UI SDKs under FirebaseInAppMessaging. Developers should remove pod Firebase/InAppMessagingDisplay and only use pod Firebase/InAppMessaging in their Podfile.
  • FIRIAMDefaultDisplayImpl is no longer public.
  • FirebaseInAppMessagingDisplay is now deprecated and should be removed from developers' Podfiles.
  • Minimum iOS version is now 9.0.

Version 6.15.1 Patch Release - January 16, 2020

Firebase installations service

  • Throw an exception when there are missing required FirebaseOptions parameters (APIKey, googleAppID, and projectID). Please make sure your GoogleServices-Info.plist (or FirebaseOptions if you configure Firebase in code) is up to date. The file and settings can be downloaded from the Firebase Console (#4683).

Version 6.15.0 - January 14, 2020

  • Reorganized directory structure.
  • The following SDKs introduce a new transitive dependency on the Firebase installations API:
    • Analytics
    • Cloud Messaging
    • Remote Config
    • In-App Messaging
    • A/B Testing
    • Performance Monitoring
    • ML Kit
    • Instance ID

The Firebase installations SDK introduces the Firebase installations API. Developers that use API key restrictions may experience blocked requests (https://stackoverflow.com/questions/58495985/). A solution is available here. (#4533)

Analytics

  • Updated log messages to be less verbose.
  • Fixed issues due to reference to self in async blocks.

Authentication

  • Added support of UISceneDelegate for URL redirect. (#4380)
  • Fixed rawNonce in encoder. (#4337)

Crashlytics

This Firebase Crashlytics version includes the initial beta release of the Firebase Crashlytics SDK:

  • The SDK is now open-sourced. Take a look in our GitHub repository.
  • Added support for Catalyst (note that Crashlytics still supports tvOS and macOS).
  • Added new APIs that are more consistent with other Firebase SDKs and more intuitive to use. The new APIs also give your users more control over how you collect their data.
  • Removed the Fabric API Key. Now, Crashlytics uses the GoogleService-Info.plist file to associate your app with your project. If you linked your app from Fabric and want to upgrade to the new SDK, remove the Fabric API key from your run and upload-symbols scripts. We also recommend removing the Fabric section from your app's Info.plist (when you upgrade, Crashlytics uses the new configuration you set up in Firebase).

Cloud Firestore

  • Added a limit(toLast:) query operator, which returns the last matching documents up to the given limit.

Firebase In-App Messaging

  • Issues with nullability in card message (#4435).
  • Unit test failure with OCMock 3.5.0 (#4420).
  • Crash in test on device error flow (#4446).

InstanceID

  • Added watchOS support for InstanceID (#4016)
  • Added a new dependency on the Firebase Installations SDK. The Firebase Installations SDK introduces the Firebase Installations API. Developers that use API-restrictions for their API-Keys may experience blocked requests (https://stackoverflow.com/questions/58495985/). A solution is available here. (#4533)

Firebase installations service

  • Firebase installations service is an infrastructure service for Firebase services that creates unique identifiers and authentication tokens for Firebase clients (called "Firebase installations") enabling Firebase Targeting, i.e. interoperation between Firebase services.
  • The Firebase installations SDK introduces the Firebase installations API. Developers that use API key restrictions may experience blocked requests (https://stackoverflow.com/questions/58495985/). This problem can be mitigated by following the instructions found here.

FCM

  • Added watchOS community support for Firebase Messaging. This enables FCM push notification function on watch only app or independent watch app. (#4016)
  • Added a new transitive dependency on the Firebase Installations SDK. The Firebase Installations SDK introduces the Firebase Installations API. Developers that use API-restrictions for their API-Keys may experience blocked requests (https://stackoverflow.com/questions/58495985/). A solution is available here.

Performance Monitoring

  • Update to the newer version of FirebaseInstanceId SDK that uses FirebaseInstallationService.

Realtime Database

  • Addressed a performance regression introduced in 6.1.3.

Cloud Storage

  • Reorganized directory structure (#4573).

Version 6.14.0 - December 17, 2019

  • Updated the binary distributions to include arm64e slices. See Apple's documentation for more details. Support for the open source libraries is now included in the zip and Carthage distributions. All libraries now support building for arm64e except the MLKit ones, for which support is TBD (#4110).
  • The directory structure of the zip distribution has changed to include the full name of each Firebase pod in the directory structure. For example, the former Storage directory is now FirebaseStorage.\
  • Speed up initialization by lazily registering for the user agent (#1306).
  • Added a Swift usage flag to firebaseUserAgent. The information will be used to support product decisions related to Swift, e.g. adding a Swift-specific API, SDKs, etc. (#4448).

Analytics

  • Fixed issue with custom app events not being passed to FirebaseInAppMessaging when GoogleTagManager is also present (#4305).

Authentication

  • Added support of UISceneDelegate for URL redirect (#4380).
  • Fixed rawNonce in encoder (#4337).

Realtime Database

  • Internal improvements.
  • Fix component startup time (#4137).
  • Fix crash due to object deallocation on app launch (#4308).

Cloud Firestore

  • Internal improvements.

Firebase In-App Messaging

  • Issues with nullability in card message (#4435).
  • Unit test failure with OCMock 3.5.0 (#4420).
  • Crash in test on device error flow (#4446).

InstanceID

  • Added heartbeat support for InstanceID (#4323).
  • Fixed the documentations on a few random generation and hash methods to clarify its use case to avoid confusions. (#4469, #4444, #4326).

FCM

  • Fix component startup time (#4137).

Performance Monitoring

  • Fixed issue related to app start trace being insanely long. #934
  • Fixed issues related to monitoring NSURLSession based network requests where some of the requests were not monitored after iOS 13.

Remote Config

  • Fix the return status code when app is offline (#4100).
  • Internal code cleanup (#4297, #4403, #4379).

Version 6.13.0 Patch Release - November 19, 2019

This release does not include updates to the zip file or Carthage distributions.

Cloud Firestore

  • Firestore no longer loads its TLS certificates from a bundle, which fixes crashes at startup when the bundle can't be loaded. This fixes a specific case where the bundle couldn't be loaded due to non-ASCII characters in the application name. If you're manually tracking dependencies, you can now remove gRPCCertificates-Cpp.bundle from your build (#3951).

Version 6.13.0 - November 14, 2019

  • Updated the Firebase Core minor version to prepare for an upcoming Firebase pod open source.

Analytics

  • Fixed crash after completed in-app purchase (#4176).

Authentication

  • Added support for Sign-in with Apple (#4183).

Cloud Firestore

  • Removed Firestore's dependency on the Protobuf CocoaPod. If you're manually tracking dependencies, you may be able to remove it from your build (note, however, that other Firebase components may still require it).
  • Added a dependency on the abseil CocoaPod. If you're manually tracking dependencies, you need to add it to your build.

FCM

  • Moved message queue delete operation to a serial queue to avoid race conditions in unit tests (#4236).

Performance Monitoring

Remote Config

  • Remote Config no longer re-activates the current config on fetch if it receives no changes from the backend. (#4260)

Cloud Storage

  • Fixed a -Wunused-property-ivar violation (#4281).

Version 6.12.0 - November 5, 2019

  • The zip file distributions are now built with Xcode 11.0. The zip file distribution no longer support Xcode 10.3 and below. The Carthage distribution is still built with Xcode 10.1 and is planned to update to Xcode 11.0 in the next release. As a workaround for (#3791), Carthage users can integrate GoogleSignIn.framework from the (zip distribution).

Analytics

  • Updated podspec to depend on exact nanopb version.

Realtime Database

  • Addressed an issue with NSDecimalNumber case that prevented decimals with high precision to be stored correctly in our persistence layer (#4108).

Cloud Firestore

  • Added whereField(_:in:) and whereField(_:arrayContainsAny:) query operators. whereField(_:in:) finds documents where a specified field’s value is IN a specified array. whereField(_:arrayContainsAny:) finds documents where a specified field is an array and contains ANY element of a specified array.
  • Firestore SDK now uses Nanopb rather than the Objective-C Protobuf library for parsing protos. This change does not affect visible behavior of the SDK in any way. While we don't anticipate any issues, please report any issues with network behavior or persistence that you experience.

InstanceID

  • Fixed a crash in checkTokenRefreshPolicyWithIID: and ensure tokenWithAuthorizedEntity:scope:options:handler method is refreshing token if token is stale (#4167).
  • Updated deprecated keychain access level (#4172).

FCM

  • Moved reliable message queue database operation off main thread (#4053).

Remote Config

  • Minor internal project structure changes.

Performance Monitoring

  • Internal SDK enhancements.

Version 6.11.0 - October 22, 2019

  • Fix container instantiation timing, IID startup (#4030).
  • Open-sourced Firebase pod. This enables import Firebase module support for tvOS and macOS (#4021).

Authentication

  • Removed usage of a deprecated property on iOS 13 (#4066).

Cloud Firestore

  • Fix a race condition that could cause a segmentation fault during client initialization (#4091).

Swift Extensions

  • Initial public release.

InstanceID

  • Fixed InstanceID initialization timing issue (#4030).
  • Added check to see if token and IID are inconsistent (#4025).
  • Removed migration logic from document folder to application folder (#4033).

FCM

  • Fixed IID and Messaging container instantiation timing issue (#4030).
  • Internal cleanup and remove migration logic from document folder to application folder (#4033, #4045).

Remote Config

  • Removed existing usage of an internal deprecated API (#3993).

Version 6.10.0 - October 8, 2019

  • Transitive GoogleDataTransport dependency incremented to v2.0.0 (#3729).
  • Fixed "expiclitlySet" typo (#3853).

A/B Testing

  • Fixed an Analyzer issue (#3622).

Analytics

  • Fixed potential crash due to debug assertion when Analytics starts.
  • Fixed race condition that prevented upload from completing while app was in the background.

Authentication

  • Added methods allowing developers to link and reauthenticate with federated providers. (#3971)

Realtime Database

  • Fixed an iOS 13 crash that occurred in our WebSocket error handling. (#3950)

Cloud Firestore

  • Added an addSnapshotsInSyncListener() method to FIRFirestore that notifies you when all your snapshot listeners are in sync with each other.

Firebase In-App Messaging

  • Added support for UIScene-based application lifecycle (#3927).
  • Fixed storyboard layout error in Xcode 11 (#3748).

FCM

  • Updated Protobuf version to fix warnings in Xcode.

ML Kit for Firebase

  • An enhanced version of barcode scanner with better speed and accuracy.
  • Breaking change: Updated ModelManager with the following API changes:
    • Added modelManager(app:) for a custom Firebase app. Note that download management for custom Firebase apps is currently only supported for the Translate SDK.
    • Removed the RemoteModel and LocalModel registration APIs. You no longer need to register models before using them.
    • Added a model download conditions parameter in the download(_:conditions) API to make it easier to tie the conditions to specific download requests. You can fully control when to download a model for the first time and when to check for model updates via this API.
    • Updated isRemoteModelDownloaded(_:) to isModelDownloaded(_:).
    • Added deleteDownloadedModel(_:completion:) to delete downloaded models to provide you with more flexibility for managing disk space on your user's devices.
    • Removed deleteDownloadedTranslateModel(_:completion)
    • Updated the availableTranslateModelsWithApp(app:) method to a downloadedTranslateModels property.
  • Breaking change: RemoteModel and LocalModel initializers have been disabled. New subclasses have been added for AutoML, Custom, and Translate SDKs. Use the initializers for those subclasses to create instances of remote and local models. initialConditions and updateConditions are no longer needed for initializing a remote model. You can specify the download condition when calling download(_:conditions:) of the ModelManager.
  • Added CustomRemoteModel and CustomLocalModel as instantiable subclasses of RemoteModel and LocalModel classes, respectively.
  • Breaking change: Updated the initializers for ModelInterpreter and removed the ModelOptions class. The ModelInterpreter can be initialized with either a CustomRemoteModel or CustomLocalModel, but not both.
  • Breaking change: Implicit model downloading is no longer available through the ModelInterpreter. You must invoke the ModelManager's download(_:conditions:) API to download CustomRemoteModels. Please see the Model Interpreter QuickStart app for an example of how to download CustomRemoteModels.
  • Added AutoMLRemoteModel and AutoMLLocalModel as instantiable subclasses of RemoteModel and LocalModel classes, respectively.
  • Breaking change: Updated the initializers for VisionOnDeviceAutoMLImageLabelerOptions. The VisionOnDeviceAutoMLImageLabelerOptions can be initialized with either an AutoMLRemoteModel or AutoMLLocalModel, but not both.
  • Breaking change: Implicit model downloading is no longer available through the VisionOnDeviceAutoMLImageLabeler. You must invoke the ModelManager's download(_:conditions:) API to download AutoMLRemoteModels. Please see the Vision QuickStart app for an example of how to download AutoMLRemoteModels.
  • Breaking change: Updated the initializers for TranslateRemoteModel. A TranslateRemoteModel can only be initialized with a TranslateLanguage. Download conditions are now passed to ModelManager's download(_:conditions:) API, and custom Firebase apps are supported through ModelManager's modelManager(app:) API.
  • Breaking change: On-device text recognition API for iOS no longer supports i386 architecture, but continues to support x86_64, arm64, and armv7 architectures.

Performance Monitoring

  • Fixed issue related to crash when app starts on iOS 13 devices. (#3929)
  • Internal SDK enhancements.

Remote Config

  • Fixed issue for outdated values for deleted config keys. (#3745).

Version 6.9.0 - September 23, 2019

  • Transitive GoogleDataTransport dependency incremented to v2.0.0 (#3729).
  • Fixed "expiclitlySet" typo (#3853).

Analytics

  • Fixed crash when updating identifiers from multiple threads (#2575).

Cloud Firestore

  • Fixed a memory access error discovered using the sanitizers in Xcode 11.

FCM

  • Mute FCM deprecated warnings with Xcode 11 and min iOS >= 10 (#3857).

ML Kit for Firebase

  • Fixed an incompatibility issue between Translate and FirebaseMLCommon.

Remote Config

  • Fixed docs issue (#3846).

Version 6.8.1 - September 10, 2019

  • Removed references to UIWebViewDelegate to comply with App Store Submission warning (#3722).

InstanceID

  • Fix private header imports (#3621).

Performance Monitoring

  • Enable app start time measurements for ios 12.4.

Cloud Storage

  • Fix crash in FIRStorageUploadTask (#3750).

Version 6.8.0 - September 5, 2019

A/B Testing

  • Fixed an Analyzer issue (#3622).
  • Removed references to UIWebView to comply with App Store Submission warning (#3722).

Cloud Firestore

  • Transactions now perform exponential backoff before retrying. This means transactions on highly contended documents are more likely to succeed.
  • Added a waitForPendingWrites() method to FIRFirestore class which allows users to wait on a promise that resolves when all pending writes are acknowledged by the Firestore backend.
  • Added a terminate() method to FIRFirestore which terminates the instance, releasing any held resources. Once it completes, you can optionally call clearPersistence() to wipe persisted Firestore data from disk.

Firebase In-App Messaging

  • Undeprecated initializer for FIRInAppMessagingAction so it can be used going forward in custom UI display (#3545).

InstanceID

  • Moved two headers from internal to private for Remote Config open sourcing (#3621).

FCM

  • Fixed notification open event is not logged when scheduling a local timezone message (#3670, #3638).
  • Fixed FirebaseApp.delete() results in unusable Messaging singleton (#3411).

ML Kit for Firebase

  • Updated the TensorFlow Lite dependency from TensorFlowLite 1.13.1 to TensorFlowLiteObjC 1.14.0 for Custom and AutoML SDKs.

Performance Monitoring

  • Updated the dependency on Firebase Remote Config.

Remote Config

  • Initial Open Source (