CINXE.COM
Firebase iOS Release Notes
<!doctype html> <html lang="en" dir="ltr"> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://firebase.google.com/support/release-notes/ios","20210128081714","https://web.archive.org/","web","/_static/", "1611821834"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email"> <meta property="og:site_name" content="Firebase"> <meta property="og:type" content="website"> <meta name="theme-color" content="#039be5"> <meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/web/20210128081714/https://firebase.google.com/_pwa/firebase/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//web.archive.org/web/20210128081714/https://www.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210128081714/https://fonts.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210128081714/https://fonts.googleapis.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210128081714/https://apis.google.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210128081714/https://www.google-analytics.com/" crossorigin> <link rel="stylesheet" href="//web.archive.org/web/20210128081714cs_/https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700|Material+Icons"> <link rel="stylesheet" href="https://web.archive.org/web/20210128081714cs_/https://www.gstatic.com/devrel-devsite/prod/vc5f5097f7e98f45082257ed44f785e23f8176f944afb30dfad7aee218957f132/firebase/css/app.css"> <noscript> </noscript> <link rel="shortcut icon" href="https://web.archive.org/web/20210128081714im_/https://www.gstatic.com/devrel-devsite/prod/vc5f5097f7e98f45082257ed44f785e23f8176f944afb30dfad7aee218957f132/firebase/images/favicon.png"> <link rel="apple-touch-icon" href="https://web.archive.org/web/20210128081714im_/https://www.gstatic.com/devrel-devsite/prod/vc5f5097f7e98f45082257ed44f785e23f8176f944afb30dfad7aee218957f132/firebase/images/touchicon-180.png"><link rel="canonical" href="https://web.archive.org/web/20210128081714/https://firebase.google.com/support/release-notes/ios"><link rel="search" type="application/opensearchdescription+xml" title="Firebase" href="https://web.archive.org/web/20210128081714/https://firebase.google.com/s/opensearch.xml"> <title>Firebase iOS Release Notes</title> <meta property="og:title" content="Firebase iOS Release Notes"> <meta property="og:url" content="https://web.archive.org/web/20210128081714/https://firebase.google.com/support/release-notes/ios"> <meta property="og:locale" content="en"> <meta name="gtm_var" data-key="docType" data-value="changelog"> </head> <body type="article" theme="firebase-theme" class="firebase-support-release-page" layout="docs" pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"><devsite-header> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="/web/20210128081714/https://firebase.google.com/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="firebase" track-metadata-position="nav" track-metadata-eventdetail="nav"> <img src="https://web.archive.org/web/20210128081714im_/https://www.gstatic.com/devrel-devsite/prod/vc5f5097f7e98f45082257ed44f785e23f8176f944afb30dfad7aee218957f132/firebase/images/lockup.png" class="devsite-site-logo" alt="Firebase"> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item "> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <devsite-tabs class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab dropdown> <a href="https://web.archive.org/web/20210128081714/https://firebase.google.com/products-build" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="products" aria-haspopup="true" aria-expanded="false" data-category="Site-Wide Custom Events" data-label="Tab: Products"> Products </a> <a href="#" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu" role="button" track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="products" data-category="Site-Wide Custom Events" data-label="Tab: Products" tabindex="-1" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu"> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210128081714/https://firebase.google.com/products-build" track-type="navMenu" track-name="Build" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/products-build" tooltip> <div class="devsite-nav-item-title"> Build </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210128081714/https://firebase.google.com/products-release" track-type="navMenu" track-name="Release & Monitor" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/products-release" tooltip> <div class="devsite-nav-item-title"> Release & Monitor </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210128081714/https://firebase.google.com/products-engage" track-type="navMenu" track-name="Engage" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/products-engage" tooltip> <div class="devsite-nav-item-title"> Engage </div> </a> </li> </ul> </div> </div> </div> </tab> <tab> <a href="https://web.archive.org/web/20210128081714/https://firebase.google.com/use-cases" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="useCases" data-category="Site-Wide Custom Events" data-label="Tab: Use Cases"> Use Cases </a> </tab> <tab> <a href="https://web.archive.org/web/20210128081714/https://firebase.google.com/pricing" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="pricing" data-category="Site-Wide Custom Events" data-label="Tab: Pricing"> Pricing </a> </tab> <tab> <a href="https://web.archive.org/web/20210128081714/https://firebase.google.com/docs" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="docs" data-category="Site-Wide Custom Events" data-label="Tab: Docs"> Docs </a> </tab> <tab> <a href="https://web.archive.org/web/20210128081714/https://firebase.google.com/community" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="community" data-category="Site-Wide Custom Events" data-label="Tab: Community"> Community </a> </tab> <tab active> <a href="https://web.archive.org/web/20210128081714/https://firebase.google.com/support" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="support" aria-label="Support, selected" data-category="Site-Wide Custom Events" data-label="Tab: Support"> Support </a> </tab> </nav> </devsite-tabs> </div> <devsite-search aria-expanded="false" aria-haspopup="listbox" enable-signin enable-search enable-suggestions enable-query-completion project-name="Firebase" tenant-name="Firebase" role="combobox"> <form class="devsite-search-form" action="https://web.archive.org/web/20210128081714/https://firebase.google.com/s/results" method="GET"> <div class="devsite-search-container"> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-haspopup="false" aria-multiline="false" aria-label="Search box" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" type="text" value=""> <div class="devsite-search-image material-icons" aria-hidden="true"></div> </div> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <devsite-select class="devsite-language-selector-menu"> <select aria-label="Select your language preference." class="devsite-language-selector-select" name="language" track-name="click" track-type="languageSelector"> <option>Language</option> <option value="en" lang="en" track-metadata-original-language="en" track-metadata-selected-language="en" track-name="changed" track-type="languageSelector"> English </option> <option value="id" lang="id" track-metadata-original-language="en" track-metadata-selected-language="id" track-name="changed" track-type="languageSelector"> Bahasa Indonesia </option> <option value="es_419" lang="es_419" track-metadata-original-language="en" track-metadata-selected-language="es_419" track-name="changed" track-type="languageSelector"> Español – América Latina </option> <option value="pt_br" lang="pt_br" track-metadata-original-language="en" track-metadata-selected-language="pt_br" track-name="changed" track-type="languageSelector"> Português – Brasil </option> <option value="zh_cn" lang="zh_cn" track-metadata-original-language="en" track-metadata-selected-language="zh_cn" track-name="changed" track-type="languageSelector"> 中文 – 简体 </option> <option value="ja" lang="ja" track-metadata-original-language="en" track-metadata-selected-language="ja" track-name="changed" track-type="languageSelector"> 日本語 </option> <option value="ko" lang="ko" track-metadata-original-language="en" track-metadata-selected-language="ko" track-name="changed" track-type="languageSelector"> 한국어 </option> </select> </devsite-select> </devsite-language-selector> <a class="devsite-header-link devsite-top-button button gc-analytics-event" href="//web.archive.org/web/20210128081714/https://console.firebase.google.com/" data-category="Site-Wide Custom Events" data-label="Site header link"> Go to console </a> <devsite-user enable-profiles fp-auth id="devsite-user"></devsite-user> </div> </div> </div> <div class="devsite-collapsible-section devsite-header-no-lower-tabs "> <div class="devsite-header-background"> <div class="devsite-product-id-row"> <div class="devsite-product-description-row"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item "> <a href="https://web.archive.org/web/20210128081714/https://firebase.google.com/support" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail=""> Support </a> </li> </ul> </div> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="/web/20210128081714/https://firebase.google.com/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="firebase" track-metadata-position="nav" track-metadata-eventdetail="nav"> <img src="https://web.archive.org/web/20210128081714im_/https://www.gstatic.com/devrel-devsite/prod/vc5f5097f7e98f45082257ed44f785e23f8176f944afb30dfad7aee218957f132/firebase/images/lockup.png" class="devsite-site-logo" alt="Firebase"> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item "> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/web/20210128081714/https://firebase.google.com/products-build" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Products" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="products"> <span class="devsite-nav-text" tooltip> Products </span> <span class="devsite-nav-icon material-icons" data-icon="forward"> </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip menu="Products"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Products"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/web/20210128081714/https://firebase.google.com/use-cases" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Use Cases" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="useCases"> <span class="devsite-nav-text" tooltip> Use Cases </span> <span class="devsite-nav-icon material-icons" data-icon="forward"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210128081714/https://firebase.google.com/pricing" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Pricing" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="pricing"> <span class="devsite-nav-text" tooltip> Pricing </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210128081714/https://firebase.google.com/docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Docs" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="docs"> <span class="devsite-nav-text" tooltip> Docs </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210128081714/https://firebase.google.com/community" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Community" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="community"> <span class="devsite-nav-text" tooltip> Community </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210128081714/https://firebase.google.com/support" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Support" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="support"> <span class="devsite-nav-text" tooltip> Support </span> <span class="devsite-nav-icon material-icons" data-icon="forward"> </span> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20210128081714/https://console.firebase.google.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Go to console" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="goToConsole"> <span class="devsite-nav-text" tooltip> Go to console </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom" role="navigation"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Developer Support</span></div></li> <li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Contact Support</span></a></li> <li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/scope" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Scope of free support</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Support Guides</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/guides" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/faq" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>FAQ</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/guides/security-checklist" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Security checklist</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/guides/launch-checklist" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Launch checklist</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/guides/service-accounts" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Firebase service accounts</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/guides/analytics-adsupport" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Enable the AdSupport framework</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/guides/url-shortener" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Migrate from Google URL Shortener</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Migrate from Parse</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/guides/parse-android" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/guides/parse-ios" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>iOS</span></a></li></ul></li></ul></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Cloud Audit Logs</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/guides/cloud-audit-logging/firebase-management" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Firebase Management</span></a></li></ul></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Recent Changes and Updates</span></div></li> <li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/releases" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/release-notes/ios" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>iOS Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/release-notes/android" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Android Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/release-notes/js" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>JavaScript Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/release-notes/cpp-relnotes" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>C++ Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/release-notes/unity" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Unity Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/release-notes/admin/node" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Admin Node.js Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/release-notes/admin/java" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Admin Java Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/release-notes/admin/python" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Admin Python Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/release-notes/admin/go" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Admin Go Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/release-notes/admin/dotnet" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Admin .NET Release Notes</span></a></li> <li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/release-notes/security-rules" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Security Rules Release Notes</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Legal Information</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/terms" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Terms of Service</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/terms/billing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Paid Services Terms</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/terms/data-processing-terms" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Data Processing and Security Terms</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/terms/firebase-mcc" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Firebase DPST: Model Contract Clauses</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/terms/service-level-agreement" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Service Level Agreement for Hosting and Realtime Database</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/terms/service-level-agreement/cloud-storage" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Cloud Storage for Firebase Service Level Agreement</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/terms/analytics" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Google Analytics for Firebase Terms</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/policies/analytics" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Google Analytics for Firebase Use Policy</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/policies/app-indexing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Firebase App Indexing User Data Policy</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/terms/crashlytics" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Crashlytics and App Distribution Terms</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/terms/crashlytics-app-distribution-data-processing-terms" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Crashlytics and App Distribution Data Processing Terms</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/terms/crashlytics-app-distribution-mcc" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Crashlytics and App Distributions DPST: Model Contract Clauses</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/terms/subprocessors" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Firebase Subprocessors</span></a></li></ul></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Privacy and Security Information</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/privacy" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Privacy and Security in Firebase</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/privacy/dpo_and_eu_rep" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Designate Data Protection Officers and EU Representatives</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/privacy/dpo" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Firebase Data Privacy Inquiries</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/privacy/manage-iids" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Manage Instance ID data</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/privacy/clear-export-data" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Clear and export users' data</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/privacy/storing-privacy-settings" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Storing privacy settings with Firebase</span></a></li><li class="devsite-nav-item"><a href="/web/20210128081714/https://firebase.google.com/support/privacy/init-options" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Troubleshoot initialization options</span></a></li></ul></li> </ul> <ul class="devsite-nav-list" menu="Products" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/web/20210128081714/https://firebase.google.com/products-build" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Build" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="build"> <span class="devsite-nav-text" tooltip> Build </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210128081714/https://firebase.google.com/products-release" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Release & Monitor" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="release&Monitor"> <span class="devsite-nav-text" tooltip> Release & Monitor </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210128081714/https://firebase.google.com/products-engage" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Engage" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="engage"> <span class="devsite-nav-text" tooltip> Engage </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content" has-book-nav has-toc> <devsite-toc class="devsite-nav"></devsite-toc> <devsite-content> <article class="devsite-article"><style> /* Styles inlined from /styles/docs.css */ .center { text-align: center } /* Used in AdMob code examples */ .oldcode { opacity: .40; /* IE 8 */ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40); /* IE <= 7 */ filter:alpha(opacity=40); } .newcode { font-weight: bold; } /* Device Screenshots */ .deviceshot { max-width: 700px; max-height: 400px; } /* Start Changelog styles */ .badge { position: relative; top: -3px; border-radius: 16px; display: inline-block; width: 90px; height: 32px; line-height: 32px; margin-right: 10px; text-transform: uppercase; font-size: 13px; font-weight: 700; text-align: center; } /* Colours for each type of changelog entry. */ /* TODO: Change the colours to match the site colour scheme */ .badge-changed { background-color: #F4B400; color: #fff; } .badge-fixed { background-color: #4285F4; color: #fff; } .badge-important { background-color: #DB4437; color: #fff; } .badge-feature { background-color: #0F9D58; color: #fff; } .badge-deprecated { background-color: #DB4437; color: #fff; } .badge-issue { background-color: #DB4437; color: #fff; } .changelog > ul { padding-left: 0; } .changelog > ul > li { list-style-type: none; margin-bottom: 22px; } .firebase-support-release-page .changelog > ul { list-style-type: none; padding-left: 110px; } .release-changed::before, .release-feature::before, .release-fixed::before, .release-issue::before, .release-deprecated::before, .release-removed::before, .release-unchanged::before, .release-rules::before, .release-android::before, .release-android-bom::before, .release-ios::before, .release-admin::before, .release-cpp::before, .release-unity::before, .release-functions::before, .release-javascript::before { display: block; float: left; color: white; width: 100px; height: 32px; margin-left: -110px; margin-right: 10px; margin-top: -5px; padding-top: 4px; text-transform: uppercase; font-size: 13px; font-weight: 700; text-align: center; border-radius: 16px; } .release-changed::before { content: "changed"; background-color: #F4B400; } .release-feature::before { content: "feature"; background-color: #0F9D58; } .release-fixed::before { content: "fixed"; background-color: #4285F4; } .release-issue::before { content: "issue"; background-color: #DB4437; } .release-deprecated::before { content: "deprecated"; background-color: #E65100; } .release-removed::before { content: "removed"; background-color: #546E7A; } .release-unchanged::before { content: "no change"; background-color: #CCCCCC; } .release-android::before { content: "android"; background-color: #A4C639; } .release-android-bom::before { content: "android bom"; background-color: #A4C639; } .release-ios::before { text-transform: none; content: "iOS"; background-color: #007aff; } .release-admin::before { content: "admin"; background-color: #039BE5; } .release-cpp::before { content: "c++"; background-color: #FF8A65; } .release-unity::before { content: "unity"; background-color: #00cccc; } .release-functions::before { content: "functions"; background-color: #2C384A; } .release-javascript::before { content: "javascript"; background-color: #7e57c2; } .release-rules::before { content: "rules"; background-color: #1B3A57; } /* End Changelog styles */ /* Docs Overview page styles */ .docs-android, .docs-ios, .docs-web, .docs-cpp, .docs-unity { height: 64px; width: 64px; margin: 10px 16px 0 -16px; } .firebase-docs-overview .devsite-landing-row h2 { margin: 80px 0 -40px; } .devsite-landing-row-3-up .docs-landing-row-item { width: calc((100% - 80px)/2); display: inline-block; } .docs-landing-icon { font-size: 48px; height: 48px; margin: 11px; width: 48px; } .firebase-reference-list { display: -ms-flex; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; list-style: none; margin: 0 0 40px; padding: 0; } .firebase-reference-list-item { -ms-flex: 0 0 50%; flex: 0 0 50%; margin: 40px 0 0; padding: 0; } .firebase-reference-list-item > a { -ms-flex-align: center; align-items: center; display: -ms-flex; display: flex; } .firebase-reference-list-item > a:not(:hover) h3 { color: #424242; } .firebase-reference-list-item > a:not(:hover) li, .firebase-reference-list-item > a:not(:hover) p { color: #757575; } .firebase-reference-list-item .docs-landing-icon { -ms-flex-align: center; align-items: center; background-color: #f5f5f5; border-radius: 50%; -ms-flex: 0 0 88px; flex: 0 0 88px; height: 88px; -ms-justify-content: center; justify-content: center; margin: 0 16px 0 0; padding: 20px; } .firebase-reference-list-item h3 { -ms-flex: 0 0 auto; flex: 0 0 auto; font-size: 18px; line-height: 28px; margin: 0; } .firebase-reference-list-item ul { list-style: none; padding: 0; } .docs-android, .docs-ios, .docs-web, .docs-cpp, .docs-unity { height: 88px; width: auto; } .firebase-reference-list-item.docs-android .docs-landing-icon { color: #00bfa5; } .firebase-reference-list-item.docs-cpp .docs-landing-icon { color: #fd8c09; } .firebase-reference-list-item.docs-ios .docs-landing-icon { color: #16aaca; } .firebase-reference-list-item.docs-unity .docs-landing-icon { color: #000000; } .firebase-reference-list-item.docs-web .docs-landing-icon { color: #c52062; } .firebase-reference-list-item.docs-http .docs-landing-icon { color: #3F51B5; } @media (max-width: 1000px) { .firebase-reference-list { -ms-flex-direction: column; flex-direction: column; } } /* end Docs Overview page styles */ /* Full-page platform selector for Crashlytics docs */ /* Note: h3 in selector content must include hide-from-toc */ .full-page-selector, .full-page-selector-content { border: none; font-size: inherit; } .full-page-selector > .kd-buttonbar { margin: 32px 0px; } .full-page-selector > section { display: none; } .full-page-selector-content > .selected { padding: 0; font-size: inherit; } .full-page-selector-content > .kd-buttonbar { display: none; } .select-page { display: none; } .select-page + .ds-selector-tabs, .after-selection ~ .ds-selector-tabs { border: none; font-size: inherit; } .select-page + .ds-selector-tabs > .kd-buttonbar { margin: 32px 0px; } .select-page + .ds-selector-tabs > section { display: none; } .after-selection ~ .ds-selector-tabs > .selected { padding: 0; font-size: inherit; } .after-selection ~ .ds-selector-tabs > section p { line-height: 24px; } .after-selection ~ .ds-selector-tabs > .kd-buttonbar { display: none; } /* End full-page platform selector */ /* Custom beta and alpha indicators (v1 format, followed by v2 format) */ .devsite-nav-alpha .devsite-nav-icon::before, .devsite-nav-icon[data-icon="alpha"]::before { content: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTMuMjA2IDE1YTU0LjIxNCA1NC4yMTQgMCAwIDEtLjkyLTIuNTc4bC0uMTQtLjQxNGE4MS43NiA4MS43NiAwIDAgMC0uMTM2LS40MDJDMTAuODUgMTMuNjcyIDkuNTYyIDE0LjUgNy41IDE0LjUgNC44MSAxNC41IDMgMTIuNjE2IDMgOXMxLjgxLTUuNSA0LjUtNS41YzIuMDYyIDAgMy4zNS44MjggNC41MSAyLjg5NGwuMTM3LS40MDIuMTM5LS40MTRjLjM4LTEuMTI3LjY1My0xLjkwMi45Mi0yLjU3OGgyLjE2NmMtLjM2NC44My0uNjcyIDEuNjgtMS4xOSAzLjIxN2wtLjE0LjQxM0E1Ny45OSA1Ny45OSAwIDAgMSAxMy4xOTQgOWMuMjc1LjcxLjU1NCAxLjQ5OC44NDggMi4zN2wuMTQuNDEzYy41MTggMS41MzguODI2IDIuMzg3IDEuMTkgMy4yMTdoLTIuMTY2ek03LjUgNS41QzUuOTMyIDUuNSA1IDYuNDcgNSA5YzAgMi41My45MzIgMy41IDIuNSAzLjUgMS40OTcgMCAyLjQ0NC0uOTE3IDMuNTM1LTMuNUM5Ljk0NCA2LjQxNyA4Ljk5NyA1LjUgNy41IDUuNXoiIGZpbGw9InJnYmEoMCwwLDAsLjM4KSIgZmlsbC1ydWxlPSJub256ZXJvIi8+PC9zdmc+'); } .devsite-nav-beta .devsite-nav-icon::before, .devsite-nav-icon[data-icon="beta"]::before { content: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTIuMjM2IDcuNjgzQTQgNCAwIDAgMSAxMCAxNUg3djJINVY0YTIgMiAwIDAgMSAyLTJoMi41YTMuNSAzLjUgMCAwIDEgMi43MzYgNS42ODN6TTcgMTNoM2EyIDIgMCAxIDAgMC00SDd2NHptMC02aDIuNWExLjUgMS41IDAgMCAwIDAtM0g3djN6IiBmaWxsPSJyZ2JhKDAsMCwwLC4zOCkiIGZpbGwtcnVsZT0ibm9uemVybyIvPjwvc3ZnPg=='); } .firebase-platform-label { font: 500 12px/24px Roboto,sans-serif; } /* Full-page platform selector dropdown */ /* Note: use menu variables in _elements.html file */ .full-page-selector-dropdown { border: none; position: relative; float: left; display: inline-block; } .full-page-selector-dropdown > .ds-selector-tabs { display: none; position: absolute; min-width: 160px; z-index: 1; } .full-page-selector-dropdown:hover .ds-selector-tabs { display: block; margin: 0; } .full-page-selector-dropdown:hover .kd-tabbutton { display: block; border: none; height: inherit; text-align: left; } .full-page-selector-dropdown:hover .kd-buttonbar { border: none; height: inherit; } .full-page-selector-dropdown h3:hover { color: white; background-color: #039be5; } .full-page-selector-dropdown:hover .devsite-overflow-menu-button { display: none; } </style> <div class="devsite-banner devsite-banner-announcement"> <div class="devsite-banner-message"> <div class="devsite-banner-message-text"> <style> .devsite-banner-announcement:not(.devsite-banner-tenant) { background: #202124; color: white; font-weight: 500; } .devsite-banner-announcement a { color: white; font-weight: 700; } .devsite-banner-announcement a:link, .devsite-banner-announcement a:visited { background: 0; } .devsite-banner-announcement a:hover, .devsite-banner-announcement a:focus { text-decoration: none; } .devsite-banner-announcement .devsite-banner-message-text { margin: 0 auto; } </style> Google is committed to advancing racial equity for Black communities. <a href="https://web.archive.org/web/20210128081714/https://google.com/racialequity" class="gc-analytics-event" data-category="Announcement" data-label="Racial Equity">See how.</a> </div> </div> </div> <div class="devsite-article-meta" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://web.archive.org/web/20210128081714/https://firebase.google.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Firebase"> Firebase </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://web.archive.org/web/20210128081714/https://firebase.google.com/support" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail=""> Support </a> </li> </ul> <devsite-page-rating position="header" selected-rating="0" hover-rating-star="0"> </devsite-page-rating> </div> <devsite-feedback position="header" project-name="Firebase" product-id="719752" bucket="" context="" version="t-devsite-webserver-20210121-r02-rc00.432632345079321188" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="header" project-feedback-url="https://firebase.google.com/support/contact/bugs-features/" project-icon="https://firebase.google.com/_static/firebase/images/logo.png" project-support-url="https://firebase.google.com/support/" feedback-type="star-rating"> <button> Send feedback </button> </devsite-feedback> <h1 class="devsite-page-title">Firebase iOS Release Notes</h1> <devsite-toc class="devsite-nav" devsite-toc-embedded> </devsite-toc> <div class="devsite-article-body clearfix "> <div class="changelog"> <p>To review release notes for the Firebase console and for other Firebase platforms and related SDKs, refer to the <a href="/web/20210128081714/https://firebase.google.com/support/releases">Firebase Release Notes</a>.</p> <h2 id="version_750_-_january_27_2021" data-text="Version 7.5.0 - January 27, 2021"><a name="7.5.0">Version 7.5.0 - January 27, 2021</a></h2> <ul> <li><span class="release-fixed"></span> Fixed potential deadlock with <code translate="no" dir="ltr">objc_copyImageNames</code> call (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/7310">#7310</a>).</li> </ul> <h3 id="analytics" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-changed"></span> Consolidated pods to distribute binaries as xcframeworks built with Xcode 12.</li> <li><span class="release-changed"></span> CocoaPods ARM Mac users no longer need to use the <code translate="no" dir="ltr">M1</code> tagged pods or add the <code translate="no" dir="ltr">-ObjC</code> linker flag.</li> <li><span class="release-changed"></span> Updated collection of some click identifiers to be contingent on when the advertising identifier is available.</li> </ul> <h3 id="crashlytics" data-text="Crashlytics">Crashlytics</h3> <ul> <li><span class="release-changed"></span> Improve start-up performance by moving some initialization work to a background thread (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/7332">#7332</a>).</li> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">upload-symbols</code> to a version that is notarized to avoid macOS security alerts (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/7323">#7323</a>).</li> <li><span class="release-changed"></span> Deleting unsent reports with deleteUnsentReports no longer happens on the main thread (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/7298">#7298</a>).</li> </ul> <h3 id="realtime-database" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">DatabaseQuery.queryStartingAfterValue(_:)</code> and <code translate="no" dir="ltr">DatabaseQuery.queryEndingBeforeValue(_:)</code> for query pagination.</li> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">DatabaseQuery.getData()</code> which returns data from the server when the cache is stale (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/7110">#7110</a>).</li> </ul> <h3 id="cloud-firestore" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> 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.</li> <li><span class="release-fixed"></span> Fixed an issue where using <code translate="no" dir="ltr">FieldValue.arrayRemove()</code> would only delete the first occurrence of an element in an array in latency-compensated snapshots.</li> </ul> <h3 id="firebase-in-app-messaging" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-fixed"></span> Fixed failed assertion causing app to crash during test on device flow (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/7299">#7299</a>).</li> </ul> <h3 id="remote-config" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-fixed"></span> Fixed bug that was incorrectly flagging ABT experiment payloads as invalid (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/7184">#7184</a>).</li> <li><span class="release-changed"></span> Standardize support for Firebase products that integrate with Remote Config (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/7094">#7094</a>).</li> </ul> <h2 id="version_740_-_january_12_2021" data-text="Version 7.4.0 - January 12, 2021"><a name="7.4.0">Version 7.4.0 - January 12, 2021</a></h2> <ul> <li><span class="release-changed"></span> Patch update to nanopb 0.3.9.7 that fixes a memory leak and other issues (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/7090">#7090</a>).</li> <li><span class="release-feature"></span> Zip distribution now includes community supported macOS and tvOS libraries. Product support detailed <a href="https://web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk#tvos-macos-watchos-and-catalyst">here</a>.</li> </ul> <h3 id="analytics_1" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-changed"></span> Updated nanopb dependency.</li> </ul> <h3 id="authentication" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Check if the reverse client ID is configured as a custom URL scheme before setting it as the callback scheme (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/7211">#7211</a>).</li> <li><span class="release-feature"></span> Add ability to sync auth state across devices (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6924">#6924</a>).</li> <li><span class="release-fixed"></span> Add multi-tenancy support for email link sign-in (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/7246">#7246</a>).</li> </ul> <h3 id="crashlytics_1" data-text="Crashlytics">Crashlytics</h3> <ul> <li><span class="release-changed"></span> Removed obsolete crash reporting mechanism from the SDK (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/7076">#7076</a>).</li> </ul> <h3 id="firebase-in-app-messaging_1" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-fixed"></span> Fixed default display bug in apps that don't use <code translate="no" dir="ltr">UISceneDelegate</code> (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6803">#6803</a>).</li> </ul> <h3 id="instanceid" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-changed"></span> Added a check on whether the default token has been changed by Messaging before writing to the InstanceID keychain storage (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/7223">#7223</a>).</li> </ul> <h3 id="performance-monitoring" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-feature"></span> Open-sourced Firebase Performance.</li> <li><span class="release-removed"></span> Removed GoogleToolboxForMac and GTMSessionFetcher dependencies.</li> </ul> <h3 id="storage" data-text="Storage">Storage</h3> <ul> <li><span class="release-fixed"></span> Prevent second <code translate="no" dir="ltr">listAll</code> callback (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/7197">#7197</a>).</li> </ul> <h2 id="version_731_-_december_15_2020" data-text="Version 7.3.1 - December 15, 2020"><a name="7.3.1">Version 7.3.1 - December 15, 2020</a></h2> <p>This release is available via CocoaPods and Swift Package Manager only.</p> <h3 id="dynamic-links" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-fixed"></span> Fixed a regression where a callback could occur off of the main thread.</li> </ul> <h2 id="version_730_-_december_9_2020" data-text="Version 7.3.0 - December 9, 2020"><a name="7.3.0">Version 7.3.0 - December 9, 2020</a></h2> <ul> <li><span class="release-feature"></span> Added FirebaseAppDistribution-Beta product to Swift Package Manager (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/7045">#7045</a>).</li> </ul> <h3 id="analytics_2" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Added missing header to <code translate="no" dir="ltr">FirebaseAnalytics.h</code> (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/7114">#7114</a>).</li> </ul> <h3 id="app_distribution" data-text="App Distribution">App Distribution</h3> <ul> <li><span class="release-changed"></span> App Distribution now signs out the tester when the call to fetch releases fails with an unauthenticated error.</li> <li><span class="release-fixed"></span> Crash caused by trying to parse response as JSON when response is nil (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6996">#6996</a>).</li> </ul> <h3 id="authentication_1" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Fixed a Catalyst browser issue with <code translate="no" dir="ltr">verifyPhoneNumber</code> API (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/7049">#7049</a>).</li> </ul> <h3 id="crashlytics_2" data-text="Crashlytics">Crashlytics</h3> <ul> <li><span class="release-feature"></span> Added Crashlytics support for x86 apps running on Apple Silicon via Rosetta 2.</li> <li><span class="release-changed"></span> Decreased Crashlytics CocoaPods minimum deployment target from iOS 10 to iOS 9.</li> <li><span class="release-changed"></span> Removed obsolete API calls from upload-symbols.</li> <li><span class="release-changed"></span> Removed obsolete onboarding calls from the SDK.</li> </ul> <h3 id="dynamic-links_1" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-feature"></span> Manually created dynamic links are now subject to allowed/blocked checks defined in Firebase Console (#5853).</li> </ul> <h3 id="cloud-firestore_1" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Fixed a crash that could happen when the SDK encountered invalid data during garbage collection (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6721">#6721</a>).</li> </ul> <h3 id="firebase-in-app-messaging_2" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-fixed"></span> Fixed default display bug in apps that don't use <code translate="no" dir="ltr">UISceneDelegate</code> (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6803">#6803</a>).</li> </ul> <h3 id="storage_1" data-text="Storage">Storage</h3> <ul> <li><span class="release-fixed"></span> Verify block is still alive before calling it in task callbacks (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/7051">#7051</a>).</li> </ul> <h3 id="performance-monitoring_1" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-changed"></span> Added an experimental event dispatch mechanism to enable faster performance reporting.</li> <li><span class="release-changed"></span> Added a blocklist for GoogleDataTransport upload URLs to avoid cyclic generation of network performance events.</li> <li>Performance Monitoring v7.3.0 is not available via Carthage. Use 7.1.0 as a workaround.</li> </ul> <h2 id="version_720_-_december_2_2020" data-text="Version 7.2.0 - December 2, 2020"><a name="7.2.0">Version 7.2.0 - December 2, 2020</a></h2> <ul> <li><span class="release-fixed"></span> Reduced <code translate="no" dir="ltr">FirebaseApp.configure()</code> and <code translate="no" dir="ltr">+[FIRApp registerInternalLibrary:withName:]</code> impact on app launch time (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6902">#6902</a>).</li> <li><span class="release-feature"></span> Added arm64 simulator support to support new Apple silicon Macs. See <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/blob/master/AppleSilicon.md">here</a> for more details.</li> <li><span class="release-changed"></span> Due to the new arm64 simulator support, Xcode 12 is now required for any binary products (Analytics, Performance, zip file, and Carthage distributions).</li> </ul> <h3 id="analytics_3" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-changed"></span> Distributed binaries as xcframeworks in order to support the arm64 simulator slice.</li> <li><span class="release-fixed"></span> Moved expensive read operations out of <code translate="no" dir="ltr">+initialize</code> (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6936">#6936</a>).</li> <li><span class="release-changed"></span> Increased minimum required CocoaPods version to 1.10 for only the Apple silicon distribution in order to add xcframework binary support. See <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/blob/master/AppleSilicon.md">here</a> for more details.</li> </ul> <h3 id="realtime-database_1" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-feature"></span> Made emulator connection API consistent between Auth, Database, Firestore, and Functions (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5916">#5916</a>).</li> </ul> <h3 id="cloud-firestore_2" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-feature"></span> Made emulator connection API consistent between Auth, Database, Firestore, and Functions (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5916">#5916</a>).</li> </ul> <h3 id="cloud-functions" data-text="Cloud Functions">Cloud Functions</h3> <ul> <li><span class="release-feature"></span> Made emulator connection API consistent between Auth, Database, Firestore, and Functions (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5916">#5916</a>).</li> </ul> <h3 id="performance-monitoring_2" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-changed"></span> Add Xcode simulator support for new Apple silicon based Macs (SDK is compatible only with Xcode 12 and above).</li> <li><span class="release-changed"></span> Increased minimum required CocoaPods version to 1.10 in order to add xcframework binary support. See <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/blob/master/AppleSilicon.md">here</a> for more details.</li> </ul> <h2 id="version_710_-_november_10_2020" data-text="Version 7.1.0 - November 10, 2020"><a name="7.1.0">Version 7.1.0 - November 10, 2020</a></h2> <h3 id="authentication_2" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Fixed a crash on iOS 14 when multiple app delegate completion methods were called (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6863">#6863</a>).</li> </ul> <h3 id="crashlytics_3" data-text="Crashlytics">Crashlytics</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where symbol uploads would fail when there are spaces in the project path, particularly in Unity builds (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6789">#6789</a>).</li> <li><span class="release-changed"></span> Added additional logging when settings requests fail with a 404 status to help customers debug onboarding issues (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6847">#6847</a>).</li> </ul> <h3 id="cloud-firestore_3" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Added the original query data to error messages for queries that cannot be deserizialized.</li> <li><span class="release-fixed"></span> Remove explicit MobileCoreServices library linkage from podspec (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6850">#6850</a>).</li> <li><span class="release-fixed"></span> 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.</li> </ul> <h3 id="cloud-functions_1" data-text="Cloud Functions">Cloud Functions</h3> <ul> <li><span class="release-feature"></span> Added a constructor to set a custom domain (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6787">#6787</a>).</li> </ul> <h3 id="fcm" data-text="FCM">FCM</h3> <ul> <li><span class="release-fixed"></span> Fixed a crash on iOS 14 when multiple app delegate completion methods were called (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6863">#6863</a>).</li> </ul> <h3 id="remote-config_1" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-changed"></span> Add support for other Firebase products to integrate with Remote Config (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6692">#6692</a>).</li> </ul> <h2 id="version_700_patch_release_-_november_4_2020" data-text="Version 7.0.0 Patch Release - November 4, 2020"><a name="7.0.0-patch">Version 7.0.0 Patch Release - November 4, 2020</a></h2> <p>This patch release is available via CocoaPods only.</p> <h3 id="performance-monitoring_3" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Fixed a crash that occurred when recording network requests (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6734">#6734</a>).</li> </ul> <h2 id="version_700_-_october_26_2020" data-text="Version 7.0.0 - October 26, 2020"><a name="7.0.0">Version 7.0.0 - October 26, 2020</a></h2> <p>This release contains several breaking changes, and thus constitutes a major version update.</p> <ul> <li><span class="release-changed"></span> <strong>Breaking change:</strong> Updated minimum iOS version to iOS 10 except for Analytics which is now iOS 9 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4847">#4847</a>).</li> <li><span class="release-changed"></span> <strong>Breaking change:</strong> Updated minimum macOS version to 10.12.</li> <li><span class="release-changed"></span> <strong>Breaking change:</strong> 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 <code translate="no" dir="ltr">use_frameworks! :linkage => :static</code> to get the Firebase 6.x linkage behavior. See <a href="/web/20210128081714/https://firebase.google.com/docs/ios/link-firebase-static-dynamic">this linking guide</a> for mode details (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/2022">#2022</a>).</li> <li><span class="release-changed"></span> <strong>Breaking change:</strong> The version must now be specified for the two Swift-only Firebase CocoaPods in the Podfile like <code translate="no" dir="ltr">pod 'FirebaseFirestoreSwift', '~> 7.0-beta'</code>.</li> <li><span class="release-changed"></span> Firebase now requires a minimum CocoaPods version of 1.9.0.</li> <li><span class="release-feature"></span> Added Swift Package Manager support for Firebase Messaging (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5641">#5641</a>).</li> <li><span class="release-feature"></span> Added Swift Package Manager support for Auth, Crashlytics, Messaging, and Storage watchOS targets (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6584">#6584</a>).</li> <li><span class="release-changed"></span> Firebase no longer uses the CocoaPods <code translate="no" dir="ltr">private_headers</code> feature to expose internal APIs (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6572">#6572</a>).</li> <li><span class="release-removed"></span> Removed broken <code translate="no" dir="ltr">FirebaseOptions()</code> initializer. Use <code translate="no" dir="ltr">init(contentsOfFile:)</code> or <code translate="no" dir="ltr">init(googleAppID:gcmSenderID:)</code> instead (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6633">#6633</a>).</li> <li><span class="release-changed"></span> All Firebase pods now have the same version (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6295">#6295</a>).</li> <li><span class="release-changed"></span> In CocoaPods, Firebase betas are now indicated in the version tag. In Swift Package Manager, beta is appended to the product name.</li> <li><span class="release-feature"></span> Added global function <code translate="no" dir="ltr">FirebaseVersion()</code> (or <code translate="no" dir="ltr">FIRFirebaseVersion()</code> for ObjC users) to access the Firebase installation version.</li> </ul> <h3 id="ab-testing" data-text="A/B Testing">A/B Testing</h3> <ul> <li><span class="release-removed"></span> Removed <code translate="no" dir="ltr">FIRExperimentController.updateExperiments(serviceOrigin:events:policy:lastStartTime:payloads:)</code>, which was deprecated (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6543">#6543</a>).</li> </ul> <h3 id="app_distribution_2" data-text="App Distribution">App Distribution</h3> <ul> <li><span class="release-changed"></span> Updated error log for non-200 API service calls.</li> </ul> <h3 id="analytics_4" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-feature"></span> Added support for consent mode.</li> <li><span class="release-changed"></span> Updated minimum iOS version to 9.0.</li> <li><span class="release-changed"></span> Marked <code translate="no" dir="ltr">Analytics.init()</code> as unavailable.</li> <li><span class="release-changed"></span> Marked <code translate="no" dir="ltr">Analytics.appInstanceID()</code> as nullable.</li> <li><span class="release-changed"></span> Added the following event names as reserved: <ul> <li><code translate="no" dir="ltr">ad_reward</code></li> <li><code translate="no" dir="ltr">app_background</code></li> <li><code translate="no" dir="ltr">app_exception</code></li> <li><code translate="no" dir="ltr">app_store_refund</code></li> <li><code translate="no" dir="ltr">app_store_subscription_cancel</code></li> <li><code translate="no" dir="ltr">app_store_subscription_convert</code></li> <li><code translate="no" dir="ltr">app_store_subscription_renew</code></li> <li><code translate="no" dir="ltr">app_upgrade</code></li> <li><code translate="no" dir="ltr">dynamic_link_app_open</code></li> <li><code translate="no" dir="ltr">dynamic_link_app_update</code></li> <li><code translate="no" dir="ltr">dynamic_link_first_open</code></li> <li><code translate="no" dir="ltr">first_visit</code></li> <li><code translate="no" dir="ltr">session_start_with_rollout</code></li> </ul></li> <li><span class="release-changed"></span> The following event names are no longer reserved: <ul> <li><code translate="no" dir="ltr">app_uninstall</code></li> <li><code translate="no" dir="ltr">screen_view</code></li> </ul></li> </ul> <h3 id="authentication_3" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-removed"></span> Removed deprecated APIs <code translate="no" dir="ltr">dataForKey</code>,<code translate="no" dir="ltr">fetchProvidersForEmail:completion</code>, <code translate="no" dir="ltr">signInAndRetrieveDataWithCredential:completion</code>, <code translate="no" dir="ltr">reauthenticateAndRetrieveDataWithCredential:completion</code>, <code translate="no" dir="ltr">linkAndRetrieveDataWithCredential:completion</code> (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6607">#6607</a>).</li> <li><span class="release-feature"></span> Added emulator support (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6624">#6624</a>).</li> <li><span class="release-removed"></span> Removed global variables <code translate="no" dir="ltr">FirebaseAuthVersionNum</code> and <code translate="no" dir="ltr">FirebaseAuthVersionStr</code>. <code translate="no" dir="ltr">FirebaseVersion()</code> or <code translate="no" dir="ltr">FIRFirebaseVersion()</code> should be used instead.</li> </ul> <h3 id="crashlytics_4" data-text="Crashlytics">Crashlytics</h3> <ul> <li><span class="release-changed"></span> Improved upload-symbols conversion speed. Customers with large dSYMs should see a significant improvement in the time it takes to upload Crashlytics symbols.</li> <li><span class="release-fixed"></span> Fixed watchOS crash related to <code translate="no" dir="ltr">sigaction</code> (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6434">#6434</a>).</li> </ul> <h3 id="realtime-database_2" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-fixed"></span> Disabled a deprecation warning (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6502">#6502</a>).</li> </ul> <h3 id="dynamic-links_2" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-changed"></span> Updated dependencies to maintain compatibility with Firebase 7.</li> </ul> <h3 id="cloud-firestore_4" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> <strong>Breaking change:</strong> Removed the <code translate="no" dir="ltr">areTimestampsInSnapshotsEnabled</code> setting. Timestamp fields that read from a <code translate="no" dir="ltr">FIRDocumentSnapshot</code> now always return <code translate="no" dir="ltr">FIRTimestamp</code> objects. Use <code translate="no" dir="ltr">FIRTimestamp.dateValue</code> to convert to <code translate="no" dir="ltr">NSDate</code> if required.</li> <li><span class="release-fixed"></span> Fixed a memory leak introduced in 1.18.0 that may manifest when serializing queries containing equality or non-equality comparisons.</li> </ul> <h4 id="swift_extensions" data-text="Swift Extensions">Swift Extensions</h4> <ul> <li><p><span class="release-feature"></span> Added conditional conformance to the <code translate="no" dir="ltr">Hashable</code> protocol for the <code translate="no" dir="ltr">@DocumentID</code>, <code translate="no" dir="ltr">@ExplicitNull</code>, and <code translate="no" dir="ltr">@ServerTimestamp</code> property wrappers.</p></li> <li><p><span class="release-fixed"></span> Removed support for wrapping <code translate="no" dir="ltr">NSDate</code> in a <code translate="no" dir="ltr">@ServerTimestamp</code> property wrapper. This never actually worked because <code translate="no" dir="ltr">NSDate</code> is not <code translate="no" dir="ltr">Codable</code>.</p></li> <li><p><span class="release-fixed"></span> 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.</p></li> </ul> <h3 id="firebase-in-app-messaging_3" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-removed"></span> Removed deprecated elements of In-App Messaging API.</li> </ul> <h3 id="installations" data-text="Installations">Installations</h3> <ul> <li><span class="release-removed"></span> Removed global variable <code translate="no" dir="ltr">FIRInstallationsVersionStr</code>. <code translate="no" dir="ltr">FirebaseVersion()</code> or <code translate="no" dir="ltr">FIRFirebaseVersion()</code> should be used instead.</li> <li><span class="release-changed"></span> Installations now throws an exception if <code translate="no" dir="ltr">FIROptions.projectID</code> is missing or <code translate="no" dir="ltr">FIROptions.APIKey</code> has an incorrect format to catch critical configuration issues earlier (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4692">#4692</a>).</li> <li><span class="release-changed"></span> Removed the <code translate="no" dir="ltr">FIR</code> prefix from <code translate="no" dir="ltr">FIRInstallationIDDidChange</code> and renamed <code translate="no" dir="ltr">kFIRInstallationIDDidChangeNotificationAppNameKey</code> to <code translate="no" dir="ltr">InstallationIDDidChangeAppNameKey</code> in Swift.</li> <li><span class="release-changed"></span> API docs updated to use term "installation auth token" consistently (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6014">#6014</a>).</li> </ul> <h3 id="instanceid_2" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-removed"></span> Deprecated private <code translate="no" dir="ltr">-[FIRInstanceID appInstanceID:]</code> method was removed (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4486">#4486</a>).</li> <li><span class="release-fixed"></span> Fixed an issue where the APNs token was not sent in the token request when iOS APNs token fetch was delayed (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6553">#6553</a>).</li> </ul> <h3 id="fcm_1" data-text="FCM">FCM</h3> <ul> <li><span class="release-removed"></span> Removed the deprecated FCM direct channel API and Upstream send API (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6430">#6430</a>).</li> <li><span class="release-changed"></span> The <code translate="no" dir="ltr">messaging:didReceiveRegistrationToken:</code> is able to return a null token. Updated the API parameter <code translate="no" dir="ltr">fcmToken</code> to be nullable (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5339">#5339</a>).</li> <li><span class="release-fixed"></span> Fixed an issue that downloading an image failed when there's no extension in the file name but MIME type is set (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6590">#6590</a>).</li> </ul> <h3 id="firebase-ml" data-text="Firebase ML">Firebase ML</h3> <ul> <li><span class="release-changed"></span> Updated dependencies to maintain compatibility with Firebase 7.</li> </ul> <h3 id="performance-monitoring_4" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Fixed issue related to crashes on specific kind of network requests <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6713">#6713</a>.</li> <li><span class="release-fixed"></span> Fixed issue related to race condition on Firebase Remote Config initializaton <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6287">#6287</a>.</li> </ul> <h3 id="remote-config_2" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">lastFetchTime</code> field to readonly (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6567">#6567</a>).</li> <li><span class="release-changed"></span> Functionally neutral change to stop using a deprecated method in the A/B Testing API (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6543">#6543</a>).</li> <li><span class="release-fixed"></span> Updated <code translate="no" dir="ltr">numberValue</code> to be nonnull to align with current behavior (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6623">#6623</a>).</li> <li><span class="release-removed"></span> Removed deprecated APIs <code translate="no" dir="ltr">isDeveloperModeEnabled</code>, <code translate="no" dir="ltr">initWithDeveloperModeEnabled:developerModeEnabled</code>, <code translate="no" dir="ltr">activateWithCompletionHandler:completionHandler</code>, <code translate="no" dir="ltr">activateFetched</code>, <code translate="no" dir="ltr">configValueForKey:namespace</code>, <code translate="no" dir="ltr">configValueForKey:namespace:source</code>, <code translate="no" dir="ltr">allKeysFromSource:namespace</code>, <code translate="no" dir="ltr">keysWithPrefix:namespace</code>, <code translate="no" dir="ltr">setDefaults:namespace</code>, <code translate="no" dir="ltr">setDefaultsFromPlistFileName:namespace</code>, <code translate="no" dir="ltr">defaultValueForKey:namespace</code> (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6637">#6637</a>).</li> <li><span class="release-fixed"></span> Completion handler for <code translate="no" dir="ltr">fetchAndActivateWithCompletionHandler</code> is now run on the main thread (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5897">#5897</a>).</li> <li><span class="release-fixed"></span> Fixed database creation on tvOS (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6612">#6612</a>).</li> <li><span class="release-changed"></span> Updated public API documentation to no longer reference removed APIs (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6641">#6641</a>).</li> <li><span class="release-fixed"></span> Updated <code translate="no" dir="ltr">activateWithCompletion:</code> to use completion handler for experiment updates (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3687">#3687</a>).</li> </ul> <h3 id="storage_2" data-text="Storage">Storage</h3> <ul> <li><span class="release-changed"></span> Removed global variable <code translate="no" dir="ltr">FIRStorageVersionString</code>. <code translate="no" dir="ltr">FirebaseVersion()</code> or <code translate="no" dir="ltr">FIRFirebaseVersion()</code> should be used instead.</li> <li><span class="release-fixed"></span> Fixed an issue with the List API that prevented listing of locations that contain the "+" character.</li> <li><span class="release-changed"></span> Renamed <code translate="no" dir="ltr">list(withMaxResults:)</code> to <code translate="no" dir="ltr">list(maxResults:)</code> in the Swift API.</li> <li><span class="release-fixed"></span> Fixed an issue that caused longer than expected timeouts for users that specified custom timeouts.</li> </ul> <h2 id="version_6340_patch_release_-_october_23_2020" data-text="Version 6.34.0 Patch Release - October 23, 2020"><a name="6.34.0-patch-2">Version 6.34.0 Patch Release - October 23, 2020</a></h2> <p>This release is available via CocoaPods only. Changes in this release will be present in subsequent non-patch releases for all non-CocoaPods distributions.</p> <h3 id="performance-monitoring_5" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Fixed a crash that occurred when recording network requests. This release is identical to v3.3.0. Run <code translate="no" dir="ltr">pod update</code> to install FirebasePerformance 3.3.2.</li> <li><span class="release-removed"></span> Reverted the fix for a bug where URLSharedSession-based network requests were not automatically monitored in iOS 14.</li> </ul> <h2 id="version_6340_patch_release_-_october_8_2020" data-text="Version 6.34.0 Patch Release - October 8, 2020"><a name="6.34.0-patch">Version 6.34.0 Patch Release - October 8, 2020</a></h2> <p>This release is available via CocoaPods only. Changes in this release will be present in subsequent non-patch releases for all non-CocoaPods distributions.</p> <ul> <li><span class="release-fixed"></span> Fixed deprecation warnings in GoogleDataTransport when targeting iOS 12 or higher. The fix is available in GoogleDataTransport v7.5.1 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6682">#6682</a>).</li> </ul> <h2 id="version_6340_-_october_6_2020" data-text="Version 6.34.0 - October 6, 2020"><a name="6.34.0">Version 6.34.0 - October 6, 2020</a></h2> <ul> <li><span class="release-fixed"></span> Removed warning related to missing Analytics framework for non-iOS builds since the framework isn't available on those platforms (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6500">#6500</a>).</li> </ul> <h3 id="analytics_5" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-feature"></span> Added support for manually logging ad impressions with <code translate="no" dir="ltr">logEvent(_:parameters:)</code>.</li> </ul> <h3 id="crashlytics_5" data-text="Crashlytics">Crashlytics</h3> <ul> <li><span class="release-changed"></span> Improved upload-symbols conversion speed. Customers with large dSYMs should see a significant improvement in the time it takes to upload Crashlytics symbols.</li> <li><span class="release-fixed"></span> Fixed Apple Watch crash related to <code translate="no" dir="ltr">sigaction</code> (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6434">#6434</a>).</li> </ul> <h3 id="cloud-firestore_5" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> 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.</li> <li><span class="release-changed"></span> Added new internal HTTP headers to the gRPC connection.</li> </ul> <h3 id="installations_2" data-text="Installations">Installations</h3> <ul> <li><span class="release-changed"></span> Added additional <code translate="no" dir="ltr">FIRInstallationsItem</code> validation to catch potential storage issues (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6570">#6570</a>).</li> </ul> <h3 id="instanceid_3" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-deprecated"></span> Deprecated InstanceID. For app instance identity handling, use FirebaseInstallations. For FCM registration token handling, use FirebaseMessaging (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6585">#6585</a>).</li> </ul> <h3 id="fcm_2" data-text="FCM">FCM</h3> <ul> <li><span class="release-feature"></span> Added macro to suppress InstanceID deprecation warning (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6585">#6585</a>).</li> </ul> <h3 id="performance-monitoring_6" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where URLSharedSession based network requests were not automatically monitored in iOS14.</li> </ul> <h3 id="remote-config_3" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-fixed"></span> Fixed an <code translate="no" dir="ltr">attempt to insert nil object</code> crash in <code translate="no" dir="ltr">fetchWithExpirationDuration:</code> (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6522">#6522</a>).</li> </ul> <h3 id="storage_3" data-text="Storage">Storage</h3> <ul> <li><span class="release-fixed"></span> Fixed typo in doc comments (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6485">#6485</a>).</li> </ul> <h2 id="version_6330_-_september_22_2020" data-text="Version 6.33.0 - September 22, 2020"><a name="6.33.0">Version 6.33.0 - September 22, 2020</a></h2> <ul> <li><span class="release-fixed"></span> Swift Package Manager - Define system framework and system library dependencies. This resolves undefined symbol issues for system dependencies (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6408">#6408</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6413">#6413</a>).</li> <li><span class="release-fixed"></span> Swift Package Manager - Fixed build warnings related to minimum iOS version (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6449">#6449</a>).</li> <li><span class="release-fixed"></span> Enable Firebase pod support for Auth and Crashlytics watchOS platform (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4558">#4558</a>).</li> <li><span class="release-fixed"></span> Carthage - Some frameworks were missing Info.plist files (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5562">#5562</a>).</li> </ul> <h3 id="analytics_6" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Fixed unintentional network request when Analytics collection is disabled (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5837">#5837</a>).</li> </ul> <h3 id="app_distribution_3" data-text="App Distribution">App Distribution</h3> <ul> <li><span class="release-changed"></span> Updated error log for non-200 API Service calls.</li> </ul> <h3 id="authentication_4" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Fixed internal source documentation (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6371">#6371</a>).</li> </ul> <h3 id="crashlytics_6" data-text="Crashlytics">Crashlytics</h3> <ul> <li><span class="release-fixed"></span> Fixed Apple Watch crash related to sigaction (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6434">#6434</a>).</li> </ul> <h3 id="dynamic-links_3" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-changed"></span> Changed client ID usage in API calls and respective checks in the code.</li> <li><span class="release-fixed"></span> Fixed attempts to connect to invalid IPv6 domain by updating IPv4 and IPv6 to use a single, valid endpoint (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5032">#5032</a>).</li> </ul> <h3 id="cloud-firestore_6" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">whereField(_:notIn:)</code> and <code translate="no" dir="ltr">whereField(_:isNotEqualTo:)</code> query operators. <code translate="no" dir="ltr">whereField(_:notIn:)</code> finds documents where a specified field’s value is not in a specified array. <code translate="no" dir="ltr">whereField(_:isNotEqualTo:)</code> 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.</li> </ul> <h3 id="cloud-functions_2" data-text="Cloud Functions">Cloud Functions</h3> <ul> <li><span class="release-changed"></span> Weak dependency on Instance ID replaced by Firebase Messaging (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6395">#6395</a>).</li> </ul> <h3 id="instanceid_4" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-feature"></span> Added a new notification for listening for token refresh from Messaging and updated the token cache in InstanceID (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6286">#6286</a>).</li> <li><span class="release-fixed"></span> Fixed an issue where the token refresh notification was not triggered when using <code translate="no" dir="ltr">tokenWithAuthorizedEntity:scope:options:handler</code> to fetch the token (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6286">#6286</a>).</li> </ul> <h3 id="fcm_3" data-text="FCM">FCM</h3> <ul> <li><span class="release-feature"></span> Added new token APIs to get and delete the default FCM registration token asynchronously. Also added new <code translate="no" dir="ltr">Messaging.deleteToken(completion:)</code> and <code translate="no" dir="ltr">Messaging.token(completion:)</code> 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. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6313">#6313</a>).</li> </ul> <h2 id="version_6322_-_september_14_2020" data-text="Version 6.32.2 - September 14, 2020"><a name="6.32.2">Version 6.32.2 - September 14, 2020</a></h2> <h3 id="analytics_7" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-changed"></span> Updated access to IDFA based on Apple announcement on effective date of AppTrackingTransparency policy.</li> </ul> <h2 id="version_6320_-_september_8_2020" data-text="Version 6.32.0 - September 8, 2020"><a name="6.32.0">Version 6.32.0 - September 8, 2020</a></h2> <ul> <li><span class="release-changed"></span> 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 <code translate="no" dir="ltr">6.31-spm-beta</code>, you may need to remove those targets from the <code translate="no" dir="ltr">Frameworks, Libraries, and Embedded Content</code> Build Setting on the General tab.</li> </ul> <h3 id="analytics_8" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Resolved potential issues in usage of CFPreferences API.</li> <li><span class="release-changed"></span> Internal code cleanup.</li> </ul> <h3 id="appdistro_fastlane_plugin_v0-2-0" data-text="App Distribution">App Distribution</h3> <ul> <li><span class="release-changed"></span> 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 <a href="/web/20210128081714/https://firebase.google.com/docs/app-distribution/ios/distribute-fastlane">Distribute an app with fastlane</a>.</li> </ul> <h3 id="authentication_5" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Updated internal source documentation (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6371">#6371</a>).</li> </ul> <h3 id="crashlytics_7" data-text="Crashlytics">Crashlytics</h3> <ul> <li><span class="release-feature"></span> Added stackFrameWithAddress API for recording custom errors that are symbolicated on the backend (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5975">#5975</a>).</li> <li><span class="release-fixed"></span> Fixed comment typos (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6363">#6363</a>).</li> <li><span class="release-fixed"></span> Remove device information from binary image data crash info entries (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6382">#6382</a>).</li> </ul> <h3 id="realtime-database_3" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-feature"></span> The SDK can now infer a default database URL if none is provided in the config.</li> </ul> <h3 id="cloud-firestore_7" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Fix gRPC documentation warning surfaced in Xcode (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6340">#6340</a>).</li> </ul> <h2 id="version_6311_-_august_31_2020" data-text="Version 6.31.1 - August 31, 2020"><a name="6.31.1">Version 6.31.1 - August 31, 2020</a></h2> <p>This release is available via CocoaPods only. Changes listed in this section will be present in subsequent binary releases.</p> <ul> <li><span class="release-fixed"></span> Fixed sporadic missing FirebaseApp symbol build issue introduced in Firebase 6.28.0 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6341">#6341</a>).</li> </ul> <h2 id="version_6310_patch_release_-_august_27_2020" data-text="Version 6.31.0 Patch Release - August 27, 2020"><a name="6.31.0-patch">Version 6.31.0 Patch Release - August 27, 2020</a></h2> <p>This release is available via CocoaPods only. Changes listed in this section will be present in subsequent binary releases.</p> <h3 id="app_distribution_4" data-text="App Distribution">App Distribution</h3> <ul> <li><span class="release-changed"></span> Updated header comments (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6321">#6321</a>).</li> <li><span class="release-fixed"></span> Fixed a bug where customers with restricted API keys were unable to fetch releases (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6346">#6346</a>).</li> </ul> <h2 id="version_6310_-_august_25_2020" data-text="Version 6.31.0 - August 25, 2020"><a name="6.31.0">Version 6.31.0 - August 25, 2020</a></h2> <ul> <li><span class="release-feature"></span> Beta release of Swift Package Manager. Details <a href="https://web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/blob/master/SwiftPackageManager.md">here</a>. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3136">#3136</a>)</li> <li><span class="release-changed"></span> Firebase's dependencies on nanopb are updated from version 0.3.9.5 to version 0.3.9.6 (1.30906.0 in CocoaPods).</li> </ul> <h3 id="analytics_9" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-feature"></span> Added support for measuring first_open conversions for users who accept Apple's iOS 14 app tracking prompt.</li> </ul> <h3 id="app_distribution_5" data-text="App Distribution">App Distribution</h3> <ul> <li><span class="release-feature"></span> 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 <a href="https://web.archive.org/web/20210128081714/https://firebase.google.com/docs/app-distribution/set-up-alerts">Set up in-app alerts</a>.</li> </ul> <h3 id="authentication_6" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-feature"></span> Added support for multi-tenancy (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6142">#6142</a>).</li> <li><span class="release-feature"></span> Added basic watchOS support (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4621">#4621</a>).</li> <li><span class="release-changed"></span> Improved Xcode completion of public API completion handlers in Swift (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6283">#6283</a>).</li> </ul> <h3 id="crashlytics_8" data-text="Crashlytics">Crashlytics</h3> <ul> <li><span class="release-fixed"></span> Fixed a compiler warning and removed unused networking code (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6210">#6210</a>).</li> <li><span class="release-fixed"></span> Fixed a crash that occurred rarely when trying to restart a URL session task without a valid request (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5984">#5984</a>).</li> <li><span class="release-feature"></span> Introduced watchOS support (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6262">#6262</a>).</li> </ul> <h3 id="dynamic-links_4" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-changed"></span> Functionally neutral public header refactor to enable Swift Package Manager support.</li> </ul> <h3 id="cloud-firestore_8" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Internal improvements for future C++ and Unity support.</li> </ul> <h3 id="firebase-in-app-messaging_4" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-changed"></span> Functionally neutral import and header refactor to enable Swift Package Manager support.</li> </ul> <h3 id="installations_3" data-text="Installations">Installations</h3> <ul> <li><span class="release-changed"></span> Use ephemeral <code translate="no" dir="ltr">NSURLSession</code> to prevent caching of request/response (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6226">#6226</a>).</li> <li><span class="release-changed"></span> Backoff added for some error to prevent unnecessary API requests (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6232">#6232</a>).</li> </ul> <h3 id="instanceid_5" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-feature"></span> Added a new notification for listening for FCM token refresh and updating the token cache in InstanceID (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6286">#6286</a>).</li> <li><span class="release-fixed"></span> Fixed an issue where token refresh notification would not be triggered when using <code translate="no" dir="ltr">tokenWithAuthorizedEntity:scope:options:handler</code> to fetch the token (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6286">#6286</a>).</li> </ul> <h3 id="fcm_4" data-text="FCM">FCM</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where topic subscription did not work in watchOS (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6160">#6160</a>).</li> <li><span class="release-fixed"></span> Improved Xcode completion of public API completion handlers in Swift (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6278">#6278</a>).</li> </ul> <h2 id="version_6300_-_august_11_2020" data-text="Version 6.30.0 - August 11, 2020"><a name="6.30.0">Version 6.30.0 - August 11, 2020</a></h2> <ul> <li><span class="release-changed"></span> Functionally neutral public header refactor in preparation for Swift Package Manager support. Applies to FirebaseCore, FirebaseABTesting, FirebaseAuth, FirebaseCrashlytics, FirebaseDatabase, FirebaseFirestore, FirebaseFuncitons, FirebaseInstallations, FirebaseRemoteConfig, FirebaseStorage, and GoogleDataTransport.</li> </ul> <h3 id="analytics_10" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where the log level set by <code translate="no" dir="ltr">FirebaseConfiguration</code> is overwritten (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5704">#5704</a>).</li> <li><span class="release-changed"></span> Internal code cleanup.</li> </ul> <h3 id="ab-testing_1" data-text="A/B Testing">A/B Testing</h3> <ul> <li><span class="release-changed"></span> Functionally neutral source reorganization for preliminary Swift Package Manager support (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6016">#6016</a>).</li> </ul> <h3 id="authentication_7" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Fix bug where multiple keychain entries would result in user persistence failure (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5906">#5906</a>).</li> <li><span class="release-changed"></span> Added support for using GOOGLE_APP_ID in generic IDP and phone auth reCAPTCHA fallback flows (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6121">#6121</a>).</li> </ul> <h3 id="crashlytics_9" data-text="Crashlytics">Crashlytics</h3> <ul> <li><span class="release-fixed"></span> Fixed a segmentation fault that could occur when writing crash contexts to disk (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6048">#6048</a>).</li> </ul> <h3 id="realtime-database_4" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-changed"></span> Functionally neutral source reorganization (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5861">#5861</a>).</li> </ul> <h3 id="dynamic-links_5" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-fixed"></span> Guard check logic in check for pending dynamic link.</li> </ul> <h3 id="cloud-firestore_9" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Rearranged public headers for future Swift Package Manager support. This should have no impact on existing users of CocoaPods, Carthage, or zip file distributions.</li> </ul> <h3 id="cloud-functions_3" data-text="Cloud Functions">Cloud Functions</h3> <ul> <li><span class="release-changed"></span> Functionally neutral source reorganization (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5858">#5858</a>).</li> </ul> <h3 id="installations_4" data-text="Installations">Installations</h3> <ul> <li><span class="release-changed"></span> Functionally neutral source reorganization (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5861">#5861</a>).</li> </ul> <h3 id="firebase-ml_1" data-text="Firebase ML">Firebase ML</h3> <ul> <li><span class="release-fixed"></span> Updated the TensorflowLiteObjC dependency to 2.3.0 in FirebaseMLModelInterpreter. Resolves (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5746">#5746</a>).</li> </ul> <h3 id="remote-config_4" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-fixed"></span> Fixed <code translate="no" dir="ltr">FirebaseApp.delete()</code>-related crash in config fetch (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6123">#6123</a>).</li> </ul> <h3 id="performance-monitoring_7" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-changed"></span> Rolled forward previous changes from in-house event log dispatch mechanism to <a href="https://web.archive.org/web/20210128081714/https://cocoapods.org/pods/GoogleDataTransport">GoogleDataTransport</a> after fixing client timestamp issue.</li> <li><span class="release-changed"></span> Updated the Logging message for 'Trace' and 'Network Requests' (see <a href="https://web.archive.org/web/20210128081714/https://firebase.google.com/docs/perf-mon/get-started-ios#step_3_optional_view_log_messages_for_performance_events">Public Docs</a>).</li> <li><span class="release-fixed"></span> Resolved a long standing issue which stopped network request trace from being dispatched on Simulator.</li> </ul> <h3 id="storage_4" data-text="Storage">Storage</h3> <ul> <li><span class="release-changed"></span> Functionally neutral source reorganization (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5861">#5861</a>).</li> </ul> <h2 id="version_6290_-_july_28_2020" data-text="Version 6.29.0 - July 28, 2020"><a name="6.29.0">Version 6.29.0 - July 28, 2020</a></h2> <h3 id="ab-testing_2" data-text="A/B Testing">A/B Testing</h3> <ul> <li><span class="release-changed"></span> Functionally neutral source reorganization for preliminary Swift Package Manager support (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6016">#6016</a>).</li> </ul> <h3 id="analytics_11" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-changed"></span> Added support for manually logging screen views with <code translate="no" dir="ltr">logEvent(_:parameters:)</code>. The <code translate="no" dir="ltr">setScreenName(_:screenClass:)</code> API will be deprecated and removed in a future major release.</li> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">setDefaultEventParameters</code> API to support setting parameters that will be logged on all events.</li> <li><span class="release-feature"></span> <code translate="no" dir="ltr">[SKAdNetwork registerAppForAdNetworkAttribution]</code> is now automatically called on first open by default. To opt-out of this default behavior, add the key <code translate="no" dir="ltr">GOOGLE_ANALYTICS_REGISTRATION_WITH_AD_NETWORK_ENABLED</code> with Boolean value <code translate="no" dir="ltr">NO</code> to your app’s <code translate="no" dir="ltr">Info.plist</code> file.</li> </ul> <h3 id="authentication_8" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Fixed a multithreaded memory access issue (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5979">#5979</a>).</li> </ul> <h3 id="crashlytics_10" data-text="Crashlytics">Crashlytics</h3> <ul> <li><span class="release-fixed"></span> Fixed a segmentation fault that could occur when writing crash contexts to disk (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6048">#6048</a>).</li> </ul> <h3 id="cloud-firestore_10" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Internal improvements for future C++ and Unity support.</li> </ul> <h3 id="firebase-in-app-messaging_5" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-fixed"></span> Fixed an inaccurate doc comment in <code translate="no" dir="ltr">InAppMessagingDisplay</code> (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5972">#5972</a>).</li> <li><span class="release-changed"></span> Functionally neutral source reorganization for preliminary Swift Package Manager support (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6013">#6013</a>).</li> </ul> <h3 id="instanceid_6" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-changed"></span> Remove FIRInstanceIDURLQueryItem in favor of NSURLQueryItem (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5835">#5835</a>).</li> </ul> <h3 id="fcm_5" data-text="FCM">FCM</h3> <ul> <li><span class="release-changed"></span> Remove logic that was executed for iOS 7 and below (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5835">#5835</a>).</li> </ul> <h3 id="remote-config_5" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-changed"></span> Functionally neutral source reorganization for preliminary Swift Package Manager support (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/6013">#6013</a>).</li> </ul> <h2 id="version_6282_-_july_21_2020" data-text="Version 6.28.2 - July 21, 2020"><a name="6.28.2">Version 6.28.2 - July 21, 2020</a></h2> <p>Zip file released containing FirebasePerformance 3.2.1.</p> <h2 id="version_6281-hotfix_-_july_20_2020" data-text="Version 6.28.1-hotfix - July 20, 2020"><a name="6.28.1-hotfix">Version 6.28.1-hotfix - July 20, 2020</a></h2> <p>CocoaPods users can access this release by running <code translate="no" dir="ltr">pod update</code> to install the fix in FirebasePerformance 3.2.1. Zip file users can access the fix with version 6.28.2.</p> <h3 id="performance-monitoring_8" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that caused the majority of events to not be processed. This release is identical to v3.1.11.</li> </ul> <h2 id="version_6281_-_july_14_2020" data-text="Version 6.28.1 - July 14, 2020"><a name="6.28.1">Version 6.28.1 - July 14, 2020</a></h2> <h3 id="cloud-firestore_11" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Fixed a configuration issue where listeners were no longer being called back on the main thread by default.</li> </ul> <h2 id="version_6280_-_july_14_2020" data-text="Version 6.28.0 - July 14, 2020"><a name="6.28.0">Version 6.28.0 - July 14, 2020</a></h2> <ul> <li><span class="release-changed"></span> 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.</li> <li><span class="release-changed"></span> Added thread safety to <code translate="no" dir="ltr">[FIROptions defaultOptions]</code> method (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5915">#5915</a>).</li> <li><span class="release-changed"></span> Updated GoogleUtilities and GoogleDataTransport imports. The GoogleDataTransportCCTSupport dependency should no longer be linked along with Firebase (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5824">#5824</a>).</li> </ul> <h3 id="ab-testing_3" data-text="A/B Testing">A/B Testing</h3> <ul> <li><span class="release-changed"></span> Removed Protobuf dependency (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5890">#5890</a>).</li> </ul> <h3 id="authentication_9" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-changed"></span> Functionally neutral source reorganization for preliminary Swift Package Manager support (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5856">#5856</a>).</li> </ul> <h3 id="crashlytics_11" data-text="Crashlytics">Crashlytics</h3> <ul> <li><span class="release-changed"></span> Add dispatch_once for opening sdk log file (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5904">#5904</a>).</li> <li><span class="release-changed"></span> Functionally neutral updated import references for dependencies (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5902">#5902</a>).</li> </ul> <h3 id="realtime-database_5" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-changed"></span> Functionally neutral source reorganization (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5861">#5861</a>).</li> </ul> <h3 id="dynamic-links_6" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-fixed"></span> Fixed crashes that occur when a dynamic link is opened for the second time while an app is in the foreground (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5880">#5880</a>).</li> <li><span class="release-feature"></span> Added plist property <code translate="no" dir="ltr">FirebaseDeepLinkPasteboardRetrievalEnabled</code> to enable/disable fetching dynamic links from Pasteboard.</li> <li><span class="release-fixed"></span> Reduce frequency of iOS14 pasteboard notifications by only reading from it when it contains URL(s) (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5905">#5905</a>).</li> <li><span class="release-changed"></span> Functionally neutral updated import references for dependencies (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5824">#5824</a>).</li> </ul> <h3 id="cloud-firestore_12" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> 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 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5783">#5783</a>).</li> <li><span class="release-fixed"></span> 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 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5881">#5881</a>).</li> </ul> <h3 id="cloud-functions_4" data-text="Cloud Functions">Cloud Functions</h3> <ul> <li><span class="release-changed"></span> Functionally neutral source reorganization (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5858">#5858</a>).</li> </ul> <h3 id="firebase-in-app-messaging_6" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-fixed"></span> Fixed an inaccurate doc comment in <code translate="no" dir="ltr">InAppMessagingDisplay</code> (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5972">#5972</a>).</li> </ul> <h3 id="installations_5" data-text="Installations">Installations</h3> <ul> <li><span class="release-changed"></span> Functionally neutral source reorganization (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5832">#5832</a>).</li> </ul> <h3 id="instanceid_7" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-changed"></span> Functionally neutral updated import references for dependencies (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5824">#5824</a>).</li> </ul> <h3 id="fcm_6" data-text="FCM">FCM</h3> <ul> <li><span class="release-fixed"></span> Fix documentation warning exposed by Xcode 12 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5876">#5876</a>).</li> <li><span class="release-changed"></span> Functionally neutral updated import references for dependencies (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5824">#5824</a>).</li> </ul> <h3 id="ml_kit_for_firebase" data-text="ML Kit for Firebase">ML Kit for Firebase</h3> <ul> <li><span class="release-changed"></span> Marked all on-device APIs as deprecated. See the migration guide at https://developers.google.com/ml-kit/migration.</li> <li><span class="release-changed"></span> Migrated from FirebaseInstanceID (IID) to FirebaseInstallations (FIS).</li> </ul> <h3 id="performance-monitoring_9" data-text="Performance Monitoring">Performance Monitoring</h3> <aside class="warning"><strong>Warning:</strong><span> <strong>This version of <code translate="no" dir="ltr">firebase-performance</code> (v3.2.0) should not be used.</strong> It has a known issue that causes majority of the events not be processed. A wrapper for the previous working version(v3.1.11) was released on July 20, 2020 (see v3.2.1).</span></aside> <ul> <li><span class="release-changed"></span> Migrated from in-house event log dispatch mechanism to <a href="https://web.archive.org/web/20210128081714/https://cocoapods.org/pods/GoogleDataTransport">GoogleDataTransport</a>.</li> <li><span class="release-changed"></span> Updated the Logging message for 'Trace' and 'Network Requests' (see <a href="https://web.archive.org/web/20210128081714/https://firebase.google.com/docs/perf-mon/get-started-ios#step_3_optional_view_log_messages_for_performance_events">Public Docs</a>).</li> </ul> <h3 id="remote-config_6" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-changed"></span> Functionally neutral updated import references for dependencies (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5824">#5824</a>).</li> <li><span class="release-changed"></span> Updated Remote Config to consume the Protobuf-less A/B Testing SDK (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5890">#5890</a>).</li> </ul> <h3 id="storage_5" data-text="Storage">Storage</h3> <ul> <li><span class="release-changed"></span> Add error for attempt to upload directory (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5750">#5750</a>).</li> <li><span class="release-changed"></span> Functionally neutral source reorganization (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5851">#5851</a>).</li> </ul> <h2 id="version_6271_-_july_6_2020" data-text="Version 6.27.1 - July 6, 2020"><a name="6.27.1">Version 6.27.1 - July 6, 2020</a></h2> <h3 id="analytics_12" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Updated symbols to not conflict with those defined in AdSupport.framework (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5153">#5153</a>).</li> <li><span class="release-changed"></span> Internal code cleanup.</li> </ul> <h2 id="version_6270_-_june_16_2020" data-text="Version 6.27.0 - June 16, 2020"><a name="6.27.0">Version 6.27.0 - June 16, 2020</a></h2> <ul> <li><span class="release-changed"></span> 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.</li> </ul> <h3 id="analytics_13" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Fixed detection of duplicate subscription renewals.</li> </ul> <h3 id="authentication_10" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-changed"></span> Standardize FirebaseCore import headers (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5758">#5758</a>).</li> </ul> <h3 id="crashlytics_12" data-text="Crashlytics">Crashlytics</h3> <ul> <li><span class="release-changed"></span> Standardize FirebaseCore import headers (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5758">#5758</a>).</li> </ul> <h3 id="realtime-database_6" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-changed"></span> Standardize FirebaseCore import headers (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5758">#5758</a>).</li> </ul> <h3 id="dynamic-links_7" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-fixed"></span> Fixed unwanted pending dynamic links checks on subsequent app restarts (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5665">#5665</a>).</li> </ul> <h3 id="cloud-firestore_13" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that may have prevented the client from connecting to the backend immediately after a user signed in.</li> </ul> <h3 id="firebase-in-app-messaging_7" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-changed"></span> Standardize FirebaseCore import headers (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5758">#5758</a>).</li> </ul> <h3 id="installations_6" data-text="Installations">Installations</h3> <ul> <li><span class="release-changed"></span> Standardize FirebaseCore import headers (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5758">#5758</a>).</li> </ul> <h3 id="instanceid_8" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-changed"></span> Standardize FirebaseCore import headers (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5758">#5758</a>).</li> </ul> <h3 id="fcm_7" data-text="FCM">FCM</h3> <ul> <li><span class="release-changed"></span> 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 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5667">#5667</a>).</li> <li><span class="release-fixed"></span> Fixed Maltese language key for language targeting (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5702">#5702</a>).</li> </ul> <h3 id="remote-config_7" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-changed"></span> Removed typedefs from public API method signatures to improve Swift API usage from Xcode (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5748">#5748</a>).</li> </ul> <h3 id="storage_6" data-text="Storage">Storage</h3> <ul> <li><span class="release-fixed"></span> Fixed a crash when listAll() was called at the root location (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5772">#5772</a>).</li> <li><span class="release-feature"></span> Added a check to FIRStorageUploadTask's <code translate="no" dir="ltr">putFile:</code> to check if the passed-in <code translate="no" dir="ltr">fileURL</code> is a directory, and provides a clear error if it is (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5750">#5750</a>).</li> </ul> <h2 id="version_6260_-_june_2_2020" data-text="Version 6.26.0 - June 2, 2020"><a name="6.26.0">Version 6.26.0 - June 2, 2020</a></h2> <ul> <li><span class="release-fixed"></span> Fixed <code translate="no" dir="ltr">FirebaseApp</code>'s <code translate="no" dir="ltr">bundleID</code> verification, allowing exact <code translate="no" dir="ltr">bundleID</code> matches for extensions (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5126">#5126</a>).</li> </ul> <h3 id="analytics_14" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-changed"></span> Added support for the increased product limits that are available in the 360 version of Google Analytics.</li> <li><span class="release-changed"></span> Internal code cleanup.</li> </ul> <h3 id="crashlytics_13" data-text="Crashlytics">Crashlytics</h3> <ul> <li><span class="release-fixed"></span> 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 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5565">#5565</a>).</li> </ul> <h3 id="cloud-firestore_14" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> 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.</li> </ul> <h3 id="firebase-in-app-messaging_8" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-fixed"></span> Fixed log message for in-app messaging test on device flow (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5680">#5680</a>).</li> </ul> <h3 id="installations_7" data-text="Installations">Installations</h3> <ul> <li><span class="release-changed"></span> 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 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5603">#5603</a>).</li> <li><span class="release-changed"></span> More readable server error console messages (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5654">#5654</a>).</li> <li><span class="release-changed"></span> Auth Token auto fetch disabled (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5656">#5656</a>).</li> </ul> <h3 id="ml_kit_for_firebase_2" data-text="ML Kit for Firebase">ML Kit for Firebase</h3> <ul> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">getLatestModelFilePath(_:completion:)</code> API to <code translate="no" dir="ltr">ModelManager</code> for getting the absolute file path on the device for a downloaded custom remote model.</li> </ul> <h3 id="remote-config_8" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-changed"></span> Updated <code translate="no" dir="ltr">fetchAndActivateWithCompletionHandler:</code> implementation to activate asynchronously (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5617">#5617</a>).</li> <li><span class="release-fixed"></span> Remove undefined class via removing unused proto generated source files (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4334">#4334</a>).</li> <li><span class="release-feature"></span> Add an URLSession partial mock to enable testing without a backend (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5633">#5633</a>).</li> <li><span class="release-feature"></span> Added activate API that returns a callback with an additional <code translate="no" dir="ltr">bool</code> 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 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3586">#3586</a>).</li> </ul> <h2 id="version_6250_-_may_19_2020" data-text="Version 6.25.0 - May 19, 2020"><a name="6.25.0">Version 6.25.0 - May 19, 2020</a></h2> <ul> <li><span class="release-fixed"></span> Fixed <code translate="no" dir="ltr">FirebaseApp</code>'s <code translate="no" dir="ltr">bundleID</code> verification, allowing exact <code translate="no" dir="ltr">bundleID</code> matches for extensions (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5126">#5126</a>).</li> </ul> <h3 id="analytics_15" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Un-deprecated <a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticseventviewsearchresults"><code translate="no" dir="ltr">AnalyticsEventViewSearchResults</code></a>.</li> </ul> <h3 id="cloud-firestore_15" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> 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.</li> </ul> <h4 id="swift_extensions_2" data-text="Swift Extensions">Swift Extensions</h4> <ul> <li><span class="release-fixed"></span> Renamed the misspelled <code translate="no" dir="ltr">FirestoreDecodingError.fieldNameConfict</code> to <code translate="no" dir="ltr">fieldNameConflict</code> (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5520">#5520</a>).</li> </ul> <h3 id="firebase-in-app-messaging_9" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where clicks were counted for messages with no action URL (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5564">#5564</a>).</li> </ul> <h3 id="fcm_8" data-text="FCM">FCM</h3> <ul> <li><span class="release-changed"></span> Updated an error case with a failure reason to give more details on the error (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5511">#5511</a>).</li> </ul> <h3 id="remote-config_9" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug where settings updates weren't applied before fetches (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4740">#4740</a>).</li> <li><span class="release-changed"></span> Updated public API documentation for 4.4.10 change from FirebaseInstanceID to FirebaseInstallations (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5561">#5561</a>).</li> </ul> <h2 id="version_6240_-_may_5_2020" data-text="Version 6.24.0 - May 5, 2020"><a name="6.24.0">Version 6.24.0 - May 5, 2020</a></h2> <ul> <li><span class="release-fixed"></span> Updated nanopb to 0.3.9.5 (across all Firebase pods). This includes a fix for <a href="https://web.archive.org/web/20210128081714/https://github.com/nanopb/nanopb/security/advisories/GHSA-gcx3-7m76-287p">CVE-2020-5235</a>. Note that the versioning scheme for the nanopb CocoaPod has changed; see <a href="//web.archive.org/web/20210128081714/https://github.com/google/nanopb-podspec">the nanopb podspec on GitHub</a> for more details (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5191">#5191</a>).</li> </ul> <h3 id="analytics_16" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Un-deprecated <a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticseventselectcontent"><code translate="no" dir="ltr">AnalyticsEventSelectContent</code></a>.</li> </ul> <h3 id="authentication_11" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-changed"></span> Remove unused mfa request field <code translate="no" dir="ltr">mfa_provider</code> (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5397">#5397</a>).</li> <li><span class="release-fixed"></span> Suppressed deprecation warnings when targeting iOS versions up to iOS 13 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5437">#5437</a>).</li> </ul> <h3 id="crashlytics_14" data-text="Crashlytics">Crashlytics</h3> <ul> <li><span class="release-fixed"></span> Fixed unchecked <code translate="no" dir="ltr">malloc</code>s in Crashlytics (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5428">#5428</a>).</li> <li><span class="release-fixed"></span> Fixed an instance of undefined behavior when loading files from disk (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5454">#5454</a>).</li> </ul> <h3 id="realtime-database_7" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-fixed"></span> Fixed documentation typos (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5406">#5406</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5418">#5418</a>).</li> </ul> <h3 id="cloud-firestore_16" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Firestore now limits the number of concurrent document lookups it will perform when resolving inconsistencies in the local cache (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-js-sdk/issues/2683">firebase/firebase-js-sdk#2683</a>).</li> <li><span class="release-changed"></span> Upgraded gRPC-C++ to 1.28.0 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4994">#4994</a>).</li> <li><span class="release-fixed"></span> Firestore will now send Auth credentials to the Firestore Emulator (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5072">#5072</a>).</li> </ul> <h3 id="firebase-in-app-messaging_10" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where GoogleUtilities wasn't explicitly listed as a dependency (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5282">#5282</a>).</li> </ul> <h3 id="fcm_9" data-text="FCM">FCM</h3> <ul> <li><span class="release-changed"></span> Changed the location of source under FirebaseMessaging folder to fit the current repository organization (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5476">#5476</a>).</li> </ul> <h3 id="remote-config_10" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-changed"></span> Dropped dependency on InstanceID. Remote Config now depends directly on Installations (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5096">#5096</a>).</li> <li><span class="release-changed"></span> Remote Config now includes both <code translate="no" dir="ltr">CFBundleString</code> and <code translate="no" dir="ltr">CFBundleShortVersionString</code> in the outgoing fetch requests.</li> </ul> <h2 id="version_6230_-_april_21_2020" data-text="Version 6.23.0 - April 21, 2020"><a name="6.23.0">Version 6.23.0 - April 21, 2020</a></h2> <ul> <li><span class="release-fixed"></span> Fixed Carthage installation failures involving <code translate="no" dir="ltr">Protobuf.framework</code>. <code translate="no" dir="ltr">Protobuf.framework</code> is now separately installable by adding <code translate="no" dir="ltr">FirebaseProtobufBinary.json</code> to the Cartfile. Full details in the <a href="https://web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/blob/master/Carthage.md#carthage-usage">Carthage usage instructions</a> (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5276">#5276</a>).</li> </ul> <h3 id="analytics_17" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Fixed backward compatibility issue.</li> <li><span class="release-changed"></span> Internal code cleanup.</li> </ul> <h3 id="authentication_12" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Handle calls to <code translate="no" dir="ltr">useUserAccessGroup</code> soon after configure (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4175">#4175</a>).</li> </ul> <h3 id="crashlytics_15" data-text="Crashlytics">Crashlytics</h3> <ul> <li><span class="release-changed"></span> The Firebase Crashlytics SDK is now generally available.</li> </ul> <h3 id="realtime-database_8" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">ServerValue.increment()</code> to support atomic field value increments without transactions.</li> </ul> <h3 id="cloud-firestore_17" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Internal improvements for future C++ and Unity support.</li> </ul> <h3 id="firebase-in-app-messaging_11" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where GoogleUtilities wasn't explicitly listed as a dependency (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5282">#5282</a>).</li> </ul> <h3 id="installations_8" data-text="Installations">Installations</h3> <ul> <li><span class="release-changed"></span> Keychain key-value storage refactored to <code translate="no" dir="ltr">GoogleUtilities</code> (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5329">#5329</a>).</li> </ul> <h3 id="instanceid_9" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-changed"></span> Internal cleanup and remove repetitive local notification (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5339">#5339</a>).</li> </ul> <h3 id="fcm_10" data-text="FCM">FCM</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that when a token is deleted, the token refresh notification and delegate is not triggered (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5338">#5338</a>).</li> </ul> <h3 id="storage_7" data-text="Storage">Storage</h3> <ul> <li><span class="release-fixed"></span> Fix a rare case where a StorageTask would call its completion callbacks more than once (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5245">#5245</a>).</li> </ul> <h2 id="version_6220_-_april_8_2020" data-text="Version 6.22.0 - April 8, 2020"><a name="6.22.0">Version 6.22.0 - April 8, 2020</a></h2> <ul> <li><span class="release-fixed"></span> Fixed unincluded umbrella header warnings in Carthage and zip distributions introduced in Firebase 6.21.0 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5209">#5209</a>).</li> </ul> <h3 id="analytics_18" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Fixed <code translate="no" dir="ltr">session_start</code> event timestamp on warm start.</li> <li><span class="release-fixed"></span> Fixed issue where some automatic events stopped logging after calling <code translate="no" dir="ltr">resetAnalyticsData</code>.</li> </ul> <h3 id="crashlytics_16" data-text="Crashlytics">Crashlytics</h3> <ul> <li><span class="release-changed"></span> Increased network timeout for symbol uploads to improve reliability on limited internet connections (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5228">#5228</a>).</li> </ul> <h3 id="cloud-firestore_18" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Internal changes.</li> </ul> <h3 id="firebase-in-app-messaging_12" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-fixed"></span> Internal fixes for test apps (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5171">#5171</a>).</li> </ul> <h3 id="instanceid_10" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-fixed"></span> Fixed provisioning profile location for catalyst (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5048">#5048</a>).</li> <li><span class="release-fixed"></span> Fixed crash when passing a nil handler to deleteToken request (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5247">#5247</a>).</li> <li><span class="release-changed"></span> Remove obsolete logic to improve performance and reduce keychain operations (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5211">#5211</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5237">#5237</a>).</li> </ul> <h3 id="storage_8" data-text="Storage">Storage</h3> <aside class="note"> <p>6.22.0 does not include any changes to the FirebaseStorage Objective-C module. Upgrading Firebase to 6.22.0 is not necessary to install or use the FirebaseStorageSwift extensions.</p> </aside> <h4 id="swift_extensions_3" data-text="Swift Extensions">Swift Extensions</h4> <ul> <li><span class="release-feature"></span> Initial public beta release. Extends the Storage Reference API with the <a href="https://web.archive.org/web/20210128081714/https://developer.apple.com/documentation/swift/result">Swift Result type</a> for all APIs that return an optional value and optional Error. To use, add <code translate="no" dir="ltr">pod 'FirebaseStorageSwift'</code> to the Podfile and <code translate="no" dir="ltr">import FirebaseStorageSwift</code> to the source. Please provide feedback about these new APIs and suggestions about other potential Swift extensions to the <a href="https://web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues">Firebase iOS SDK issue tracker</a>.</li> </ul> <h2 id="version_6210_-_march_24_2020" data-text="Version 6.21.0 - March 24, 2020"><a name="6.21.0">Version 6.21.0 - March 24, 2020</a></h2> <ul> <li><p><span class="release-changed"></span> 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.</p></li> <li><p><span class="release-fixed"></span> The FirebaseCoreDiagnostic.framework in the Carthage distribution now includes an Info.plist (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4917">#4917</a>).</p></li> <li><p><span class="release-changed"></span> 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.</p></li> </ul> <h3 id="analytics_19" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-changed"></span> Improved in-app purchase and subscription tracking.</li> <li><p><span class="release-feature"></span> Added support for Enhanced Ecommerce. Added the following Analytics events:</p> <ul> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticseventaddshippinginfo"><code translate="no" dir="ltr">AnalyticsEventAddShippingInfo</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticseventpurchase"><code translate="no" dir="ltr">AnalyticsEventPurchase</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticseventrefund"><code translate="no" dir="ltr">AnalyticsEventRefund</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticseventselectitem"><code translate="no" dir="ltr">AnalyticsEventSelectItem</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticseventselectpromotion"><code translate="no" dir="ltr">AnalyticsEventSelectPromotion</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constantsanalyticseventviewcart"><code translate="no" dir="ltr">AnalyticsEventViewCart</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticseventviewpromotion"><code translate="no" dir="ltr">AnalyticsEventViewPromotion</code></a></li> </ul> <p>Also added the following Analytics parameters:</p> <ul> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticsparameterdiscount"><code translate="no" dir="ltr">AnalyticsParameterDiscount</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticsparameteritemcategory2"><code translate="no" dir="ltr">AnalyticsParameterItemCategory2</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticsparameteritemcategory3"><code translate="no" dir="ltr">AnalyticsParameterItemCategory3</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticsparameteritemcategory4"><code translate="no" dir="ltr">AnalyticsParameterItemCategory4</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticsparameteritemcategory5"><code translate="no" dir="ltr">AnalyticsParameterItemCategory5</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticsparameteritemlistid"><code translate="no" dir="ltr">AnalyticsParameterItemListID</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticsparameteritemlistname"><code translate="no" dir="ltr">AnalyticsParameterItemListName</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticsparameteritems"><code translate="no" dir="ltr">AnalyticsParameterItems</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticsparameterlocationid"><code translate="no" dir="ltr">AnalyticsParameterLocationID</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticsparameterpaymenttype"><code translate="no" dir="ltr">AnalyticsParameterPaymentType</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticsparameterpromotionid"><code translate="no" dir="ltr">AnalyticsParameterPromotionID</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticsparameterpromotionname"><code translate="no" dir="ltr">AnalyticsParameterPromotionName</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticsparametershippingtier"><code translate="no" dir="ltr">AnalyticsParameterShippingTier</code></a></li> </ul></li> </ul> <aside class="caution"> <p>The API changes included with this release support Ecommerce functionality that will be made available in Google Analytics in the coming weeks. Check back here for updates.</p> <p>The <a href="//web.archive.org/web/20210128081714/https://support.google.com/firebase/answer/7029846"> BigQuery export schema</a> also changed with this release. If you rely on product data, check the schema changes before updating your SDK to v6.21.0.</p> </aside> <ul> <li><p><span class="release-deprecated"></span> The following events have been deprecated:</p> <ul> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticseventcheckoutprogress"><code translate="no" dir="ltr">AnalyticsEventCheckoutProgress</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticseventecommercepurchase"><code translate="no" dir="ltr">AnalyticsEventEcommercePurchase</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticseventpresentoffer"><code translate="no" dir="ltr">AnalyticsEventPresentOffer</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticseventpurchaserefund"><code translate="no" dir="ltr">AnalyticsEventPurchaseRefund</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticseventselectcontent"><code translate="no" dir="ltr">AnalyticsEventSelectContent</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticseventsetcheckoutoption"><code translate="no" dir="ltr">AnalyticsEventSetCheckoutOption</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticseventviewsearchresults"><code translate="no" dir="ltr">AnalyticsEventViewSearchResults</code></a></li> </ul></li> <li><p><span class="release-deprecated"></span> The following parameters have been deprecated:</p> <ul> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticsparametercheckoutstep"><code translate="no" dir="ltr">AnalyticsParameterCheckoutStep</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticsparametercheckoutoption"><code translate="no" dir="ltr">AnalyticsParameterCheckoutOption</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticsparameteritemlocationid"><code translate="no" dir="ltr">AnalyticsParameterItemLocationID</code></a></li> <li><a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/firebaseanalytics/api/reference/Constants#analyticsparameteritemlist"><code translate="no" dir="ltr">AnalyticsParameterItemList</code></a></li> </ul></li> </ul> <h3 id="authentication_13" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-changed"></span> Internal changes (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5097">#5097</a>).</li> <li><span class="release-feature"></span> Multi-factor authentication is now available in the zip file and Carthage distributions.</li> </ul> <h3 id="crashlytics_17" data-text="Crashlytics">Crashlytics</h3> <ul> <li><span class="release-feature"></span> Added a new API to record custom exception models and stacktraces to Crashlytics. This is a replacement for the <code translate="no" dir="ltr">recordCustomException</code> API that existed in the Fabric Crashlytics SDK (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5055">#5055</a>)</li> <li><span class="release-fixed"></span> Fixed an issue with the <code translate="no" dir="ltr">sendUnsentReports</code> API where reports wouldn't be uploaded until the method was called twice in specific instances (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5060">#5060</a>)</li> <li><span class="release-changed"></span> Changed Crashlytics to use GoogleDataTransport to upload crashes (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4989">#4989</a>)</li> <li><span class="release-changed"></span> 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 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5030">#5030</a>)</li> </ul> <h3 id="dynamic-links_8" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-fixed"></span> Fixed Catalyst build - removed deprecated unused Apple framework dependencies (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5139">#5139</a>).</li> </ul> <h3 id="firebase-in-app-messaging_13" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-fixed"></span> Fixed display issue with banner messages on iPad Pro 11" (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4714">#4714</a>).</li> <li><span class="release-fixed"></span> Fixed 400 errors from backend due to a bug in the Instance ID SDK (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3887">#3887</a>).</li> <li><span class="release-changed"></span> Internal change in in-app message A/B test flow (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5078">#5078</a>).</li> </ul> <h3 id="installations_9" data-text="Installations">Installations</h3> <ul> <li><span class="release-fixed"></span> Accessing <code translate="no" dir="ltr">GULHeartbeatDateStorage</code> moved out of main thread (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/5098">#5098</a>).</li> </ul> <h3 id="performance-monitoring_10" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-changed"></span> Added direct dependency to Firebase Installations and removed the dependency on Firebase InstanceID.</li> </ul> <h2 id="version_6200_-_march_12_2020" data-text="Version 6.20.0 - March 12, 2020"><a name="6.20.0">Version 6.20.0 - March 12, 2020</a></h2> <p>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.</p> <h3 id="authentication_14" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-feature"></span> Added support for Multi-factor Authentication (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4823">#4823</a>). Note: Multi-factor authentication is currently only available on Google Cloud Identity Platform. Please follow <a href="https://web.archive.org/web/20210128081714/https://cloud.google.com/identity-platform/docs/ios/mfa">this tutorial</a> to use it in your Firebase projects.</li> </ul> <h3 id="cloud-firestore_19" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Fixed the FirebaseFirestore podspec to properly declare its dependency on the UIKit framework on iOS and tvOS.</li> </ul> <h2 id="version_6190_-_march_10_2020" data-text="Version 6.19.0 - March 10, 2020"><a name="6.19.0">Version 6.19.0 - March 10, 2020</a></h2> <ul> <li><span class="release-changed"></span> Added an Apple platform flag (ios/macos/watchos/etc.) to <code translate="no" dir="ltr">firebaseUserAgent</code>. The information will be used to support product decisions related to Apple platforms, e.g. prioritizing watchOS support, etc. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4939">#4939</a>)</li> </ul> <h3 id="ab-testing_4" data-text="A/B Testing">A/B Testing</h3> <ul> <li><span class="release-feature"></span> Added completion handler for <code translate="no" dir="ltr">FIRExperimentController's</code> <code translate="no" dir="ltr">updateExperimentsWithServiceOrigin</code> method.</li> <li><span class="release-deprecated"></span> Deprecated <code translate="no" dir="ltr">FIRExperimentController.updateExperiments(serviceOrigin:events:policy:lastStartTime:payloads:)</code>.</li> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">FIRExperimentController.validateRunningExperiments(serviceOrigin:runningExperimentPayloads:)</code>, allowing callers to expire experiments that are no longer running.</li> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">FIRExperimentController.activateExperiment(experimentPayload:origin:)</code>, allowing callers to directly activates an experiment.</li> </ul> <h3 id="analytics_20" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-feature"></span> Added a warning when logging events with parameters containing Swift values not bridgeable to Objective-C Foundation types.</li> <li><span class="release-fixed"></span> Fixed an issue where Analytics would crash at configuration on iOS 8 if a plist key was missing (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4957">#4957</a>).</li> </ul> <h3 id="crashlytics_18" data-text="Crashlytics">Crashlytics</h3> <ul> <li><span class="release-changed"></span> Changed two endpoints in the Firebase Crashlytics SDK with no expected end-user impact (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4953">#4953</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4988">#4988</a>).</li> </ul> <h3 id="cloud-firestore_20" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Firestore should now recover its connection to the server more quickly after returning from the background (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4905">#4905</a>).</li> </ul> <h3 id="firebase-in-app-messaging_14" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-feature"></span> Added SDK support for A/B testing in-app messages.</li> </ul> <h3 id="remote-config_11" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-changed"></span> Internal code changes (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4934">#4934</a>).</li> </ul> <h2 id="version_6180_-_february_25_2020" data-text="Version 6.18.0 - February 25, 2020"><a name="6.18.0">Version 6.18.0 - February 25, 2020</a></h2> <ul> <li><span class="release-fixed"></span> 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 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4819">#4819</a>).</li> </ul> <h3 id="analytics_21" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-changed"></span> Firebase InstanceID SDK dependency replaced by Firebase Installations SDK.</li> <li><span class="release-fixed"></span> Fixed value type in keychain (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4742">#4742</a>).</li> <li><span class="release-fixed"></span> Fixed race conditions in accessing app instance ID after reset.</li> <li><span class="release-fixed"></span> Retry resetting Analytics data if it does not complete before app termination.</li> <li><span class="release-fixed"></span> Fixed a misuse of <code translate="no" dir="ltr">dispatch_once</code>.</li> </ul> <h3 id="cloud-firestore_21" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Improved performance of queries with large result sets.</li> </ul> <h3 id="firebase-in-app-messaging_15" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-feature"></span> 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 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4922">#4922</a>).</li> </ul> <h3 id="instanceid_11" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-changed"></span> Removed unused files (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4881">#4881</a>).</li> </ul> <h3 id="fcm_11" data-text="FCM">FCM</h3> <ul> <li><span class="release-changed"></span> Deprecated FCM direct channel messaging via <code translate="no" dir="ltr">shouldEstablishDirectChannel</code>. Instead, use APNs for downstream message delivery. Add <code translate="no" dir="ltr">content_available</code> 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 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4710">#4710</a>).</li> <li><span class="release-changed"></span> Deprecated upstream messaging API. For realtime updates, use Cloud Firestore, Realtime Database, or other services. The deprecated API will be removed in Firebase 7 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4710">#4710</a>).</li> <li><span class="release-fixed"></span> Use secure coding for Messaging's pending topics (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3686">#3686</a>).</li> </ul> <h3 id="remote-config_12" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4677">#4677</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4734">#4734</a>) where Remote Config does not work after a restore of a previous backup of the device. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4896">#4896</a>).</li> </ul> <h2 id="version_6170_-_february_11_2020" data-text="Version 6.17.0 - February 11, 2020"><a name="6.17.0">Version 6.17.0 - February 11, 2020</a></h2> <h3 id="crashlytics_19" data-text="Crashlytics">Crashlytics</h3> <ul> <li><span class="release-fixed"></span> Fixed symbol collisions with the legacy Fabric Crashlytics SDK and added a warning not to include both (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4753">#4753</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4755">#4755</a>).</li> <li><span class="release-fixed"></span> Added crash prevention checks (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4661">#4661</a>).</li> </ul> <h3 id="cloud-firestore_22" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Internal improvements.</li> </ul> <h3 id="instanceid_12" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-changed"></span> Instance ID no longer collects logging IDs (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4444">#4444</a>).</li> </ul> <h3 id="fcm_12" data-text="FCM">FCM</h3> <ul> <li><span class="release-feature"></span> The <code translate="no" dir="ltr">pod Firebase/Messaging</code> subspec now supports watchOS (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4807">#4807</a>).</li> <li><span class="release-fixed"></span> Fixed FIRMessagingExtensionHelper crashing in unit tests (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4689">#4689</a>).</li> <li><span class="release-fixed"></span> Fixed FIRMessagingRmqManager crashing on devices with corrupted messaging database files (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4771">#4771</a>).</li> </ul> <h3 id="remote-config_13" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-fixed"></span> Fixed a crash that could occur when attempting a remote config fetch before a valid Instance ID was available (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4622">#4622</a>).</li> <li><span class="release-fixed"></span> Fixed an issue where config fetch would sometimes fail with a duplicate fetch error when no other fetches were in progress (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3802">#3802</a>).</li> <li><span class="release-changed"></span> Fetch calls will now fail if a valid instance ID is not obtained by the Remote Config SDK.</li> </ul> <h3 id="performance-monitoring_11" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Fixed a crash related to fetching cached config values from Remote Config (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4400">#4400</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4399">#4399</a>).</li> </ul> <h2 id="version_6160_-_january_28_2020" data-text="Version 6.16.0 - January 28, 2020"><a name="6.16.0">Version 6.16.0 - January 28, 2020</a></h2> <ul> <li><span class="release-changed"></span> Minimum required Xcode version changed to 10.3 (was 10.1).</li> </ul> <h3 id="analytics_22" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Resolved a database issue on iOS 12+ if linked with sqlite library versions older than 3.20.0.</li> <li><span class="release-changed"></span> Improved startup latency.</li> </ul> <h3 id="crashlytics_20" data-text="Crashlytics">Crashlytics</h3> <ul> <li><span class="release-fixed"></span> Fixed VeraCode scanner issues for unchecked error conditions (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4669">#4669</a>).</li> </ul> <h3 id="cloud-firestore_23" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-feature"></span> 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.</li> <li><span class="release-changed"></span> 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 <code translate="no" dir="ltr">limit()</code> API may not always benefit, depending on the accumulated changes.</li> <li><span class="release-changed"></span> 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. <strong>Important</strong>: 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 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/843">#843</a>).</li> </ul> <h3 id="firebase-in-app-messaging_16" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-changed"></span> Consolidated backend and UI SDKs under <code translate="no" dir="ltr">FirebaseInAppMessaging</code>. Developers should remove <code translate="no" dir="ltr">pod Firebase/InAppMessagingDisplay</code> and only use <code translate="no" dir="ltr">pod Firebase/InAppMessaging</code> in their Podfile.</li> <li><span class="release-changed"></span> <code translate="no" dir="ltr">FIRIAMDefaultDisplayImpl</code> is no longer public.</li> <li><span class="release-changed"></span> <code translate="no" dir="ltr">FirebaseInAppMessagingDisplay</code> is now deprecated and should be removed from developers' Podfiles.</li> <li><span class="release-changed"></span> Minimum iOS version is now 9.0.</li> </ul> <h2 id="version_6151_patch_release_-_january_16_2020" data-text="Version 6.15.1 Patch Release - January 16, 2020"><a name="6.15.1">Version 6.15.1 Patch Release - January 16, 2020</a></h2> <h3 id="service" data-text="Firebase installations service">Firebase installations service</h3> <ul> <li><span class="release-changed"></span> Throw an exception when there are missing required <code translate="no" dir="ltr">FirebaseOptions</code> parameters (<code translate="no" dir="ltr">APIKey</code>, <code translate="no" dir="ltr">googleAppID</code>, and <code translate="no" dir="ltr">projectID</code>). Please make sure your <code translate="no" dir="ltr">GoogleServices-Info.plist</code> (or <code translate="no" dir="ltr">FirebaseOptions</code> if you configure Firebase in code) is up to date. The file and settings can be downloaded from the <a href="https://web.archive.org/web/20210128081714/https://console.firebase.google.com/">Firebase Console</a> (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4683">#4683</a>).</li> </ul> <h2 id="version_6150_-_january_14_2020" data-text="Version 6.15.0 - January 14, 2020"><a name="6.15.0">Version 6.15.0 - January 14, 2020</a></h2> <ul> <li><span class="release-changed"></span> Reorganized directory structure.</li> <li><span class="release-changed"></span> The following SDKs introduce a new transitive dependency on the <a href="https://web.archive.org/web/20210128081714/https://console.cloud.google.com/apis/library/firebaseinstallations.googleapis.com">Firebase installations API</a>: <ul> <li>Analytics</li> <li>Cloud Messaging</li> <li>Remote Config</li> <li>In-App Messaging</li> <li>A/B Testing</li> <li>Performance Monitoring</li> <li>ML Kit</li> <li>Instance ID</li> </ul></li> </ul> <p>The Firebase installations SDK introduces the <a href="https://web.archive.org/web/20210128081714/https://console.cloud.google.com/apis/library/firebaseinstallations.googleapis.com">Firebase installations API</a>. Developers that use API key restrictions may experience blocked requests (https://stackoverflow.com/questions/58495985/). A solution is available <a href="https://web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/blob/master/FirebaseInstallations/API_KEY_RESTRICTIONS.md">here</a>. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4533">#4533</a>)</p> <h3 id="analytics_23" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-changed"></span> Updated log messages to be less verbose.</li> <li><span class="release-fixed"></span> Fixed issues due to reference to self in async blocks.</li> </ul> <h3 id="authentication_15" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Added support of UISceneDelegate for URL redirect. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4380">#4380</a>)</li> <li><span class="release-fixed"></span> Fixed rawNonce in encoder. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4337">#4337</a>)</li> </ul> <h3 id="crashlytics_21" data-text="Crashlytics">Crashlytics</h3> <p>This Firebase Crashlytics version includes the initial beta release of the Firebase Crashlytics SDK:</p> <ul> <li><span class="release-feature"></span> The SDK is now open-sourced. Take a look in our <a href="https://web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/tree/master/Crashlytics">GitHub repository</a>.</li> <li><span class="release-feature"></span> Added support for Catalyst (note that Crashlytics still supports tvOS and macOS).</li> <li><span class="release-feature"></span> 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.</li> <li><span class="release-removed"></span> 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 <code translate="no" dir="ltr">run</code> and <code translate="no" dir="ltr">upload-symbols</code> 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).</li> </ul> <h3 id="cloud-firestore_24" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-feature"></span> Added a <code translate="no" dir="ltr">limit(toLast:)</code> query operator, which returns the last matching documents up to the given limit.</li> </ul> <h3 id="firebase-in-app-messaging_17" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-fixed"></span> Issues with nullability in card message (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4435">#4435</a>).</li> <li><span class="release-fixed"></span> Unit test failure with OCMock 3.5.0 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4420">#4420</a>).</li> <li><span class="release-fixed"></span> Crash in test on device error flow (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4446">#4446</a>).</li> </ul> <h3 id="instanceid_13" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-feature"></span> Added watchOS support for InstanceID (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4016">#4016</a>)</li> <li><span class="release-feature"></span> Added a new dependency on the Firebase Installations SDK. The Firebase Installations SDK introduces the <a href="https://web.archive.org/web/20210128081714/https://console.cloud.google.com/apis/library/firebaseinstallations.googleapis.com">Firebase Installations API</a>. Developers that use API-restrictions for their API-Keys may experience blocked requests (https://stackoverflow.com/questions/58495985/). A solution is available <a href="https://web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/blob/master/FirebaseInstallations/API_KEY_RESTRICTIONS.md">here</a>. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4533">#4533</a>)</li> </ul> <h3 id="service" data-text="Firebase installations service">Firebase installations service</h3> <ul> <li><span class="release-feature"></span> 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.</li> <li><span class="release-feature"></span> 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 <a href="https://web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/blob/master/FirebaseInstallations/API_KEY_RESTRICTIONS.md">here</a>.</li> </ul> <h3 id="fcm_13" data-text="FCM">FCM</h3> <ul> <li><span class="release-feature"></span> Added watchOS community support for Firebase Messaging. This enables FCM push notification function on watch only app or independent watch app. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4016">#4016</a>)</li> <li><span class="release-feature"></span> Added a new transitive dependency on the Firebase Installations SDK. The Firebase Installations SDK introduces the <a href="https://web.archive.org/web/20210128081714/https://console.cloud.google.com/apis/library/firebaseinstallations.googleapis.com">Firebase Installations API</a>. Developers that use API-restrictions for their API-Keys may experience blocked requests (https://stackoverflow.com/questions/58495985/). A solution is available <a href="https://web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/blob/master/FirebaseInstallations/API_KEY_RESTRICTIONS.md">here</a>.</li> </ul> <h3 id="performance-monitoring_12" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-changed"></span> Update to the newer version of FirebaseInstanceId SDK that uses FirebaseInstallationService.</li> </ul> <h3 id="realtime-database_9" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-changed"></span> Addressed a performance regression introduced in 6.1.3.</li> </ul> <h3 id="storage_9" data-text="Storage">Storage</h3> <ul> <li><span class="release-changed"></span> Reorganized directory structure (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4573">#4573</a>).</li> </ul> <h2 id="version_6140_-_december_17_2019" data-text="Version 6.14.0 - December 17, 2019"><a name="6.14.0">Version 6.14.0 - December 17, 2019</a></h2> <ul> <li><span class="release-feature"></span> Updated the binary distributions to include arm64e slices. See <a href="https://web.archive.org/web/20210128081714/https://developer.apple.com/documentation/security/preparing_your_app_to_work_with_pointer_authentication">Apple's documentation</a> 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 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4110">#4110</a>).</li> <li><span class="release-changed"></span> 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 <code translate="no" dir="ltr">Storage</code> directory is now <code translate="no" dir="ltr">FirebaseStorage</code>.\</li> <li><span class="release-changed"></span> Speed up initialization by lazily registering for the user agent (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/1306">#1306</a>).</li> <li><span class="release-feature"></span> Added a Swift usage flag to <code translate="no" dir="ltr">firebaseUserAgent</code>. The information will be used to support product decisions related to Swift, e.g. adding a Swift-specific API, SDKs, etc. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4448">#4448</a>).</li> </ul> <h3 id="analytics_24" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Fixed issue with custom app events not being passed to FirebaseInAppMessaging when GoogleTagManager is also present (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4305">#4305</a>).</li> </ul> <h3 id="authentication_16" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Added support of UISceneDelegate for URL redirect (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4380">#4380</a>).</li> <li><span class="release-fixed"></span> Fixed rawNonce in encoder (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4337">#4337</a>).</li> </ul> <h3 id="realtime-database_10" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-changed"></span> Internal improvements.</li> </ul> <h3 id="dynamic-links_9" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-fixed"></span> Fix component startup time (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4137">#4137</a>).</li> <li><span class="release-fixed"></span> Fix crash due to object deallocation on app launch (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4308">#4308</a>).</li> </ul> <h3 id="cloud-firestore_25" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Internal improvements.</li> </ul> <h3 id="firebase-in-app-messaging_18" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-fixed"></span> Issues with nullability in card message (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4435">#4435</a>).</li> <li><span class="release-fixed"></span> Unit test failure with OCMock 3.5.0 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4420">#4420</a>).</li> <li><span class="release-fixed"></span> Crash in test on device error flow (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4446">#4446</a>).</li> </ul> <h3 id="instanceid_14" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-changed"></span> Added heartbeat support for InstanceID (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4323">#4323</a>).</li> <li><span class="release-fixed"></span> Fixed the documentations on a few random generation and hash methods to clarify its use case to avoid confusions. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4469">#4469</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4444">#4444</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4326">#4326</a>).</li> </ul> <h3 id="fcm_14" data-text="FCM">FCM</h3> <ul> <li><span class="release-fixed"></span> Fix component startup time (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4137">#4137</a>).</li> </ul> <h3 id="performance-monitoring_13" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Fixed issue related to app start trace being insanely long. <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/934">#934</a></li> <li><span class="release-fixed"></span> Fixed issues related to monitoring NSURLSession based network requests where some of the requests were not monitored after iOS 13.</li> </ul> <h3 id="remote-config_14" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-fixed"></span> Fix the return status code when app is offline (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4100">#4100</a>).</li> <li><span class="release-changed"></span> Internal code cleanup (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4297">#4297</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4403">#4403</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4379">#4379</a>).</li> </ul> <h2 id="version_6130_patch_release_-_november_19_2019" data-text="Version 6.13.0 Patch Release - November 19, 2019"><a name="6.13.0-patch">Version 6.13.0 Patch Release - November 19, 2019</a></h2> <p>This release does not include updates to the zip file or Carthage distributions.</p> <h3 id="cloud-firestore_26" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> 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 <code translate="no" dir="ltr">gRPCCertificates-Cpp.bundle</code> from your build (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3951">#3951</a>).</li> </ul> <h2 id="version_6130_-_november_14_2019" data-text="Version 6.13.0 - November 14, 2019"><a name="6.13.0">Version 6.13.0 - November 14, 2019</a></h2> <ul> <li><span class="release-changed"></span> Updated the Firebase Core minor version to prepare for an upcoming Firebase pod open source.</li> </ul> <h3 id="analytics_25" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Fixed crash after completed in-app purchase (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4176">#4176</a>).</li> </ul> <h3 id="authentication_17" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-feature"></span> Added support for Sign-in with Apple (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4183">#4183</a>).</li> </ul> <h3 id="cloud-firestore_27" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Removed Firestore's dependency on the <code translate="no" dir="ltr">Protobuf</code> 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).</li> <li><span class="release-changed"></span> Added a dependency on the <code translate="no" dir="ltr">abseil</code> CocoaPod. If you're manually tracking dependencies, you need to add it to your build.</li> </ul> <h3 id="fcm_15" data-text="FCM">FCM</h3> <ul> <li><span class="release-changed"></span> Moved message queue delete operation to a serial queue to avoid race conditions in unit tests (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4236">#4236</a>).</li> </ul> <h3 id="performance-monitoring_14" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Fixed crashes related to Firebase Performance and Remote Config. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4265">#4265</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4207">#4207</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4060">#4060</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3929">#3929</a>)</li> </ul> <h3 id="remote-config_15" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-changed"></span> Remote Config no longer re-activates the current config on fetch if it receives no changes from the backend. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4260">#4260</a>)</li> </ul> <h3 id="storage_10" data-text="Storage">Storage</h3> <ul> <li><span class="release-fixed"></span> Fixed a <code translate="no" dir="ltr">-Wunused-property-ivar</code> violation (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4281">#4281</a>).</li> </ul> <h2 id="version_6120_-_november_5_2019" data-text="Version 6.12.0 - November 5, 2019"><a name="6.12.0">Version 6.12.0 - November 5, 2019</a></h2> <ul> <li><span class="release-changed"></span> 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 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3791">#3791</a>), Carthage users can integrate GoogleSignIn.framework from the (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/releases/tag/6.12.0">zip distribution</a>).</li> </ul> <h3 id="analytics_26" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-changed"></span> Updated podspec to depend on exact nanopb version.</li> </ul> <h3 id="realtime-database_11" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-fixed"></span> Addressed an issue with <code translate="no" dir="ltr">NSDecimalNumber</code> case that prevented decimals with high precision to be stored correctly in our persistence layer (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4108">#4108</a>).</li> </ul> <h3 id="cloud-firestore_28" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">whereField(_:in:)</code> and <code translate="no" dir="ltr">whereField(_:arrayContainsAny:)</code> query operators. <code translate="no" dir="ltr">whereField(_:in:)</code> finds documents where a specified field’s value is IN a specified array. <code translate="no" dir="ltr">whereField(_:arrayContainsAny:)</code> finds documents where a specified field is an array and contains ANY element of a specified array.</li> <li><span class="release-changed"></span> 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 <a href="https://web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/new">report any issues with network behavior or persistence</a> that you experience.</li> </ul> <h3 id="instanceid_15" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-fixed"></span> Fixed a crash in <code translate="no" dir="ltr">checkTokenRefreshPolicyWithIID:</code> and ensure <code translate="no" dir="ltr">tokenWithAuthorizedEntity:scope:options:handler</code> method is refreshing token if token is stale (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4167">#4167</a>).</li> <li><span class="release-changed"></span> Updated deprecated keychain access level (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4172">#4172</a>).</li> </ul> <h3 id="fcm_16" data-text="FCM">FCM</h3> <ul> <li><span class="release-changed"></span> Moved reliable message queue database operation off main thread (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4053">#4053</a>).</li> </ul> <h3 id="remote-config_16" data-text="Remote Config">Remote Config</h3> <ul> <li>Minor internal project structure changes.</li> </ul> <h3 id="performance-monitoring_15" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-changed"></span> Internal SDK enhancements.</li> </ul> <h2 id="version_6110_-_october_22_2019" data-text="Version 6.11.0 - October 22, 2019"><a name="6.11.0">Version 6.11.0 - October 22, 2019</a></h2> <ul> <li><span class="release-fixed"></span> Fix container instantiation timing, IID startup (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4030">#4030</a>).</li> <li><span class="release-changed"></span> Open-sourced Firebase pod. This enables <code translate="no" dir="ltr">import Firebase</code> module support for tvOS and macOS (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4021">#4021</a>).</li> </ul> <h3 id="authentication_18" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Removed usage of a deprecated property on iOS 13 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4066">#4066</a>).</li> </ul> <h3 id="cloud-firestore_29" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Fix a race condition that could cause a segmentation fault during client initialization (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4091">#4091</a>).</li> </ul> <h4 id="swift_extensions_4" data-text="Swift Extensions">Swift Extensions</h4> <ul> <li><span class="release-feature"></span> Initial public release.</li> </ul> <h3 id="instanceid_16" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-fixed"></span> Fixed InstanceID initialization timing issue (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4030">#4030</a>).</li> <li><span class="release-changed"></span> Added check to see if token and IID are inconsistent (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4025">#4025</a>).</li> <li><span class="release-changed"></span> Removed migration logic from document folder to application folder (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4033">#4033</a>).</li> </ul> <h3 id="fcm_17" data-text="FCM">FCM</h3> <ul> <li><span class="release-fixed"></span> Fixed IID and Messaging container instantiation timing issue (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4030">#4030</a>).</li> <li><span class="release-changed"></span> Internal cleanup and remove migration logic from document folder to application folder (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4033">#4033</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/4045">#4045</a>).</li> </ul> <h3 id="remote-config_17" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-changed"></span> Removed existing usage of an internal deprecated API (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3993">#3993</a>).</li> </ul> <h2 id="version_6100_-_october_8_2019" data-text="Version 6.10.0 - October 8, 2019"><a name="6.10.0">Version 6.10.0 - October 8, 2019</a></h2> <ul> <li><span class="release-changed"></span> Transitive GoogleDataTransport dependency incremented to v2.0.0 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3729">#3729</a>).</li> <li><span class="release-fixed"></span> Fixed "expiclitlySet" typo (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3853">#3853</a>).</li> </ul> <h3 id="ab-testing_5" data-text="A/B Testing">A/B Testing</h3> <ul> <li><span class="release-fixed"></span> Fixed an Analyzer issue (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3622">#3622</a>).</li> </ul> <h3 id="analytics_27" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Fixed potential crash due to debug assertion when Analytics starts.</li> <li><span class="release-fixed"></span> Fixed race condition that prevented upload from completing while app was in the background.</li> </ul> <h3 id="authentication_19" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-feature"></span> Added methods allowing developers to link and reauthenticate with federated providers. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3971">#3971</a>)</li> </ul> <h3 id="realtime-database_12" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-fixed"></span> Fixed an iOS 13 crash that occurred in our WebSocket error handling. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3950">#3950</a>)</li> </ul> <h3 id="cloud-firestore_30" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-feature"></span> Added an <code translate="no" dir="ltr">addSnapshotsInSyncListener()</code> method to <code translate="no" dir="ltr">FIRFirestore</code> that notifies you when all your snapshot listeners are in sync with each other.</li> </ul> <h3 id="firebase-in-app-messaging_19" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-feature"></span> Added support for UIScene-based application lifecycle (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3927">#3927</a>).</li> <li><span class="release-fixed"></span> Fixed storyboard layout error in Xcode 11 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3748">#3748</a>).</li> </ul> <h3 id="fcm_18" data-text="FCM">FCM</h3> <ul> <li><span class="release-fixed"></span> Updated Protobuf version to fix warnings in Xcode.</li> </ul> <h3 id="ml_kit_for_firebase_3" data-text="ML Kit for Firebase">ML Kit for Firebase</h3> <ul> <li><span class="release-feature"></span> An enhanced version of barcode scanner with better speed and accuracy.</li> <li><span class="release-changed"></span> <strong>Breaking change:</strong> Updated <code translate="no" dir="ltr">ModelManager</code> with the following API changes: <ul> <li>Added <code translate="no" dir="ltr">modelManager(app:)</code> for a custom Firebase app. Note that download management for custom Firebase apps is currently only supported for the Translate SDK.</li> <li>Removed the <code translate="no" dir="ltr">RemoteModel</code> and <code translate="no" dir="ltr">LocalModel</code> registration APIs. You no longer need to register models before using them.</li> <li>Added a model download conditions parameter in the <code translate="no" dir="ltr">download(_:conditions)</code> 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.</li> <li>Updated <code translate="no" dir="ltr">isRemoteModelDownloaded(_:)</code> to <code translate="no" dir="ltr">isModelDownloaded(_:)</code>.</li> <li>Added <code translate="no" dir="ltr">deleteDownloadedModel(_:completion:)</code> to delete downloaded models to provide you with more flexibility for managing disk space on your user's devices.</li> <li>Removed <code translate="no" dir="ltr">deleteDownloadedTranslateModel(_:completion)</code></li> <li>Updated the <code translate="no" dir="ltr">availableTranslateModelsWithApp(app:)</code> method to a <code translate="no" dir="ltr">downloadedTranslateModels</code> property.</li> </ul></li> <li><span class="release-changed"></span> <strong>Breaking change:</strong> <code translate="no" dir="ltr">RemoteModel</code> and <code translate="no" dir="ltr">LocalModel</code> initializers have been disabled. New subclasses have been added for AutoML, Custom, and Translate SDKs. Use the intializers for those subclasses to create instances of remote and local models. <code translate="no" dir="ltr">initialConditions</code> and <code translate="no" dir="ltr">updateConditions</code> are no longer needed for initializing a remote model. You can specify the download condition when calling <code translate="no" dir="ltr">download(_:conditions:)</code> of the <code translate="no" dir="ltr">ModelManager</code>.</li> <li><span class="release-changed"></span> Added <code translate="no" dir="ltr">CustomRemoteModel</code> and <code translate="no" dir="ltr">CustomLocalModel</code> as instantiable subclasses of <code translate="no" dir="ltr">RemoteModel</code> and <code translate="no" dir="ltr">LocalModel</code> classes, respectively.</li> <li><span class="release-changed"></span> <strong>Breaking change:</strong> Updated the initializers for <code translate="no" dir="ltr">ModelInterpreter</code> and removed the <code translate="no" dir="ltr">ModelOptions</code> class. The <code translate="no" dir="ltr">ModelInterpreter</code> can be initialized with either a <code translate="no" dir="ltr">CustomRemoteModel</code> or <code translate="no" dir="ltr">CustomLocalModel</code>, but not both.</li> <li><span class="release-changed"></span> <strong>Breaking change:</strong> Implicit model downloading is no longer available through the <code translate="no" dir="ltr">ModelInterpreter</code>. You must invoke the <code translate="no" dir="ltr">ModelManager</code>'s <code translate="no" dir="ltr">download(_:conditions:)</code> API to download <code translate="no" dir="ltr">CustomRemoteModel</code>s. Please see the Model Interpreter QuickStart app for an example of how to download <code translate="no" dir="ltr">CustomRemoteModel</code>s.</li> <li><span class="release-changed"></span> Added <code translate="no" dir="ltr">AutoMLRemoteModel</code> and <code translate="no" dir="ltr">AutoMLLocalModel</code> as instantiable subclasses of <code translate="no" dir="ltr">RemoteModel</code> and <code translate="no" dir="ltr">LocalModel</code> classes, respectively.</li> <li><span class="release-changed"></span> <strong>Breaking change:</strong> Updated the initializers for <code translate="no" dir="ltr">VisionOnDeviceAutoMLImageLabelerOptions</code>. The <code translate="no" dir="ltr">VisionOnDeviceAutoMLImageLabelerOptions</code> can be initialized with either an <code translate="no" dir="ltr">AutoMLRemoteModel</code> or <code translate="no" dir="ltr">AutoMLLocalModel</code>, but not both.</li> <li><span class="release-changed"></span> <strong>Breaking change:</strong> Implicit model downloading is no longer available through the <code translate="no" dir="ltr">VisionOnDeviceAutoMLImageLabeler</code>. You must invoke the <code translate="no" dir="ltr">ModelManager</code>'s <code translate="no" dir="ltr">download(_:conditions:)</code> API to download <code translate="no" dir="ltr">AutoMLRemoteModel</code>s. Please see the Vision QuickStart app for an example of how to download <code translate="no" dir="ltr">AutoMLRemoteModel</code>s.</li> <li><span class="release-changed"></span> <strong>Breaking change:</strong> Updated the initializers for <code translate="no" dir="ltr">TranslateRemoteModel</code>. A <code translate="no" dir="ltr">TranslateRemoteModel</code> can only be initialized with a <code translate="no" dir="ltr">TranslateLanguage</code>. Download conditions are now passed to <code translate="no" dir="ltr">ModelManager</code>'s <code translate="no" dir="ltr">download(_:conditions:)</code> API, and custom Firebase apps are supported through <code translate="no" dir="ltr">ModelManager</code>'s <code translate="no" dir="ltr">modelManager(app:)</code> API.</li> <li><span class="release-changed"></span> <strong>Breaking change:</strong> On-device text recognition API for iOS no longer supports i386 architecture, but continues to support x86_64, arm64, and armv7 architectures.</li> </ul> <h3 id="performance-monitoring_16" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Fixed issue related to crash when app starts on iOS 13 devices. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3929">#3929</a>)</li> <li><span class="release-changed"></span> Internal SDK enhancements.</li> </ul> <h3 id="remote-config_18" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-fixed"></span> Fixed issue for outdated values for deleted config keys. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3745">#3745</a>).</li> </ul> <h2 id="version_690_-_september_23_2019" data-text="Version 6.9.0 - September 23, 2019"><a name="6.9.0">Version 6.9.0 - September 23, 2019</a></h2> <ul> <li><span class="release-changed"></span> Transitive GoogleDataTransport dependency incremented to v2.0.0 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3729">#3729</a>).</li> <li><span class="release-fixed"></span> Fixed "expiclitlySet" typo (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3853">#3853</a>).</li> </ul> <h3 id="analytics_28" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Fixed crash when updating identifiers from multiple threads (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/2575">#2575</a>).</li> </ul> <h3 id="cloud-firestore_31" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Fixed a memory access error discovered using the sanitizers in Xcode 11.</li> </ul> <h3 id="fcm_19" data-text="FCM">FCM</h3> <ul> <li><span class="release-fixed"></span> Mute FCM deprecated warnings with Xcode 11 and min iOS >= 10 (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3857">#3857</a>).</li> </ul> <h3 id="ml_kit_for_firebase_4" data-text="ML Kit for Firebase">ML Kit for Firebase</h3> <ul> <li><span class="release-fixed"></span> Fixed an incompatibility issue between Translate and FirebaseMLCommon.</li> </ul> <h3 id="remote-config_19" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-fixed"></span> Fixed docs issue (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3846">#3846</a>).</li> </ul> <h2 id="version_681_-_september_10_2019" data-text="Version 6.8.1 - September 10, 2019"><a name="6.8.1">Version 6.8.1 - September 10, 2019</a></h2> <h3 id="dynamic-links_10" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-fixed"></span> Removed references to UIWebViewDelegate to comply with App Store Submission warning (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3722">#3722</a>).</li> </ul> <h3 id="instanceid_17" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-fixed"></span> Fix private header imports (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3796">#3621</a>).</li> </ul> <h3 id="performance-monitoring_17" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Enable app start time measurements for ios 12.4.</li> </ul> <h3 id="storage_11" data-text="Storage">Storage</h3> <ul> <li><span class="release-fixed"></span> Fix crash in FIRStorageUploadTask (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3750">#3750</a>).</li> </ul> <h2 id="version_680_-_september_5_2019" data-text="Version 6.8.0 - September 5, 2019"><a name="6.8.0">Version 6.8.0 - September 5, 2019</a></h2> <h3 id="ab-testing_6" data-text="A/B Testing">A/B Testing</h3> <ul> <li><span class="release-fixed"></span> Fixed an Analyzer issue (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3622">#3622</a>).</li> </ul> <h3 id="dynamic-links_11" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-fixed"></span> Removed references to UIWebView to comply with App Store Submission warning (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3722">#3722</a>).</li> </ul> <h3 id="cloud-firestore_32" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Transactions now perform exponential backoff before retrying. This means transactions on highly contended documents are more likely to succeed.</li> <li><span class="release-feature"></span> Added a <code translate="no" dir="ltr">waitForPendingWrites()</code> method to <code translate="no" dir="ltr">FIRFirestore</code> class which allows users to wait on a promise that resolves when all pending writes are acknowledged by the Firestore backend.</li> <li><span class="release-feature"></span> Added a <code translate="no" dir="ltr">terminate()</code> method to <code translate="no" dir="ltr">FIRFirestore</code> which terminates the instance, releasing any held resources. Once it completes, you can optionally call <code translate="no" dir="ltr">clearPersistence()</code> to wipe persisted Firestore data from disk.</li> </ul> <h3 id="firebase-in-app-messaging_20" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-fixed"></span> Undeprecated initializer for FIRInAppMessagingAction so it can be used going forward in custom UI display (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3545">#3545</a>).</li> </ul> <h3 id="instanceid_18" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-changed"></span> Moved two headers from internal to private for Remote Config open sourcing (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3621">#3621</a>).</li> </ul> <h3 id="fcm_20" data-text="FCM">FCM</h3> <ul> <li><span class="release-fixed"></span> Fixed notification open event is not logged when scheduling a local timezone message (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3670">#3670</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3638">#3638</a>).</li> <li><span class="release-fixed"></span> Fixed FirebaseApp.delete() results in unusable Messaging singleton (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3411">#3411</a>).</li> </ul> <h3 id="ml_kit_for_firebase_5" data-text="ML Kit for Firebase">ML Kit for Firebase</h3> <ul> <li><span class="release-changed"></span> Updated the TensorFlow Lite dependency from <code translate="no" dir="ltr">TensorFlowLite</code> 1.13.1 to <code translate="no" dir="ltr">TensorFlowLiteObjC</code> 1.14.0 for Custom and AutoML SDKs.</li> </ul> <h3 id="performance-monitoring_18" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-changed"></span> Updated the dependency on Firebase Remote Config.</li> </ul> <h3 id="remote-config_20" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-changed"></span> Initial Open Source (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3645">#3645</a>).</li> <li><span class="release-feature"></span> Community macOS and tvOS support.</li> <li><span class="release-feature"></span> Catalyst build support.</li> </ul> <h2 id="version_671_-_august_23_2019" data-text="Version 6.7.1 - August 23, 2019"><a name="6.7.1">Version 6.7.1 - August 23, 2019</a></h2> <h3 id="cloud-firestore_33" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Fixed a crash that would happen when changing networks or going from online to offline (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3661">#3661</a>).</li> </ul> <h2 id="version_670_-_august_21_2019" data-text="Version 6.7.0 - August 21, 2019"><a name="6.7.0">Version 6.7.0 - August 21, 2019</a></h2> <ul> <li><span class="release-feature"></span> Added AppKit dependency on macOS and UIKit dependency on iOS and tvOS (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3459">#3459</a>).</li> <li><span class="release-changed"></span> Moved core diagnostics log to app launch when core data collection is enabled (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3437">#3437</a>).</li> <li><span class="release-changed"></span> Open-sourced the Firebase Core Diagnostics SDK (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3129">#3129</a>).</li> </ul> <h3 id="ab-testing_7" data-text="A/B Testing">A/B Testing</h3> <ul> <li><span class="release-feature"></span> Initial Open Source (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3507">#3507</a>).</li> </ul> <h3 id="analytics_29" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-feature"></span> Added support for monitoring launches of new features via Firebase Remote Config.</li> <li><span class="release-fixed"></span> Fixed a crash regression when event parameter dictionary is mutated while being enumerated (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3255">#3255</a>).</li> </ul> <h3 id="authentication_20" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Make sure the first valid auth domain is retrieved (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3493">#3493</a>).</li> <li><span class="release-fixed"></span> Add assertion for Facebook generic IDP flow (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3208">#3208</a>).</li> <li><span class="release-fixed"></span> Build for Catalyst (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3549">#3549</a>).</li> </ul> <h3 id="realtime-database_13" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-fixed"></span> Fix Catalyst Build issue (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3512">#3512</a>).</li> <li><span class="release-feature"></span> The SDK adds support for the Firebase Database Emulator. To connect to the emulator, specify "http://<emulator_host>/" as your Database URL (via <code translate="no" dir="ltr">Database.database(url:)</code>). If you refer to your emulator host by IP rather than by domain name, you may also need to specify a namespace (<code translate="no" dir="ltr">"http://<emulator_host>/?ns=<namespace>"</code>) (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3491">#3491</a>).</li> </ul> <h3 id="dynamic-links_12" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-changed"></span> Minor internal refactoring.</li> </ul> <h3 id="cloud-firestore_34" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Internal improvements.</li> </ul> <h3 id="fcm_21" data-text="FCM">FCM</h3> <ul> <li><span class="release-changed"></span> Cleaned up documents, unused macros, and folders (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3490">#3490</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3537">#3537</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3556">#3556</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3498">#3498</a>).</li> <li><span class="release-changed"></span> Updated the header path to pod repo relative (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3527">#3527</a>).</li> <li><span class="release-fixed"></span> Fix singleton functionality after a FirebaseApp is deleted and recreated (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3411">#3411</a>).</li> </ul> <h3 id="remote-config_21" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-fixed"></span> Fixed a crash seen by some users. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3508">#3508</a>).</li> <li><span class="release-changed"></span> Internal changes and stability improvements.</li> </ul> <h2 id="version_660_-_august_6_2019" data-text="Version 6.6.0 - August 6, 2019"><a name="6.6.0">Version 6.6.0 - August 6, 2019</a></h2> <ul> <li><span class="release-feature"></span> Added AppKit dependency on macOS and UIKit dependency on iOS and tvOS (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3459">#3459</a>).</li> <li><span class="release-feature"></span> Added support for Firebase Segmentation (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3430">#3430</a>).</li> <li><span class="release-changed"></span> Moved core diagnostics log to app launch when core data collection is enabled (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3437">#3437</a>).</li> <li><span class="release-changed"></span> Open-sourced the Firebase Core Diagnostics SDK (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3129">#3129</a>).</li> </ul> <h3 id="analytics_30" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-feature"></span> Added automatic logging of app being sent to the background.</li> <li><span class="release-feature"></span> Added support for session-scoped audiences.</li> <li><span class="release-changed"></span> Cleaned up the event parameter names displayed in the debug logs.</li> </ul> <h3 id="authentication_21" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where unlinking an email auth provider raised an incorrect error stating the account was not linked to an email auth provider (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3405">#3405</a>).</li> <li><span class="release-changed"></span> Renamed internal Keychain classes (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3473">#3473</a>).</li> </ul> <h3 id="dynamic-links_13" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-changed"></span> Updated to maintain compatibility with Firebase Core in 6.6.0.</li> </ul> <h3 id="cloud-firestore_35" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Transactions are now more flexible. Some sequences of operations that were previously incorrectly disallowed are now allowed. For example, after reading a document that doesn't exist, you can now set it multiple times successfully in a transaction.</li> </ul> <h3 id="instanceid_19" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-fixed"></span> Fixed a crash that could occur if InstanceID was shut down when fetching a new instance ID (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3439">#3439</a>).</li> </ul> <h3 id="fcm_22" data-text="FCM">FCM</h3> <ul> <li><span class="release-fixed"></span> Fix hang when token is not available before topic subscription and unsubscription (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3438">#3438</a>).</li> </ul> <h3 id="performance-monitoring_19" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where <code translate="no" dir="ltr">NSURLConnection</code>-based network requests made from KVO-d <code translate="no" dir="ltr">NSOperation</code>s do not complete.</li> <li><span class="release-fixed"></span> Fixed issues where some UIKit methods could be called on the main thread.</li> </ul> <h2 id="version_650_-_july_18_2019" data-text="Version 6.5.0 - July 18, 2019"><a name="6.5.0">Version 6.5.0 - July 18, 2019</a></h2> <ul> <li><span class="release-feature"></span> <code translate="no" dir="ltr">FirebaseOptions.appGroupID</code> property added to configure the App Group identifier required to share data between the application and the application extensions (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/3293">#3293</a>).</li> </ul> <h3 id="analytics_31" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-changed"></span> Changed ordering of events during startup. Analytics usage is not affected by this change.</li> </ul> <h3 id="authentication_22" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-feature"></span> Added a new client error <code translate="no" dir="ltr">MISSING_CLIENT_IDENTIFIER</code> (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/3341">#3341</a>).</li> </ul> <h3 id="dynamic-links_14" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-fixed"></span> Removed a call to a deprecated logging method (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/3333">#3333</a>).</li> </ul> <h3 id="cloud-firestore_36" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where query results were temporarily missing documents that previously had not matched but had been updated to now match the query (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-android-sdk/issues/155">firebase/firebase-android-sdk#155</a>).</li> <li><span class="release-fixed"></span> Fixed an internal assertion that was triggered when an update with a <code translate="no" dir="ltr">FieldValue.serverTimestamp()</code> and an update with a <code translate="no" dir="ltr">FieldValue.increment()</code> were pending for the same document.</li> <li><span class="release-fixed"></span> Fixed the <code translate="no" dir="ltr">oldIndex</code> and <code translate="no" dir="ltr">newIndex</code> values in <code translate="no" dir="ltr">DocumentChange</code> to actually be <code translate="no" dir="ltr">NSNotFound</code> when documents are added or removed, respectively (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3298">#3298</a>).</li> <li><span class="release-changed"></span> Failed transactions now return the failure from the last attempt, instead of <code translate="no" dir="ltr">ABORTED</code>.</li> </ul> <h3 id="firebase-in-app-messaging_21" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-fixed"></span> Fixed issue with messages triggered on app launch not displaying (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/3237">#3237</a>).</li> <li><span class="release-fixed"></span> Fixed bug with body text color for card messages (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/3286">#3286</a>).</li> </ul> <h3 id="instanceid_20" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-fixed"></span> Removed a call to a deprecated logging method (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/3333">#3333</a>).</li> </ul> <h3 id="remote-config_22" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-fixed"></span> Fixed a crash seen by some users when initializing Remote Config with Firebase Performance also installed (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3344">#3344</a>).</li> </ul> <h3 id="storage_12" data-text="Storage">Storage</h3> <ul> <li><span class="release-fixed"></span> Ensure that users don't accidently invoke <code translate="no" dir="ltr">Storage()</code> instead of <code translate="no" dir="ltr">Storage.storage()</code>. If your code calls the constructor of Storage directly, we will throw an assertion failure instead of crashing the process later as the instance is used (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3282">#3282</a>).</li> </ul> <h2 id="version_640_-_july_9_2019" data-text="Version 6.4.0 - July 9, 2019"><a name="6.4.0">Version 6.4.0 - July 9, 2019</a></h2> <h3 id="analytics_32" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Fixed potential crash if the event parameters dictionary is mutated after logging an event (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3255">#3255</a>).</li> </ul> <h3 id="authentication_23" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-changed"></span> Expose <code translate="no" dir="ltr">secret</code> of OAuth credential in public header (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/3089">#3089</a>).</li> <li><span class="release-fixed"></span> Fix a keychain issue where API key is incorrectly set (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/3239">#3239</a>).</li> </ul> <h3 id="cloud-firestore_37" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Fixed certificate loading for non-CocoaPods builds that may not include bundle identifiers in their frameworks or apps (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3184">#3184</a>).</li> </ul> <h3 id="instanceid_21" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-changed"></span> Fixed an issue where fetching an instance ID wouldn't invoke the callback handler if the instance ID had not changed. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3229">#3229</a>).</li> </ul> <h3 id="fcm_23" data-text="FCM">FCM</h3> <ul> <li><span class="release-changed"></span> Fix Xcode 11 tvOS build issue (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/3216">#3216</a>).</li> </ul> <h3 id="ml_kit_for_firebase_6" data-text="ML Kit for Firebase">ML Kit for Firebase</h3> <ul> <li><span class="release-changed"></span> Fixed the known issue of <code translate="no" dir="ltr">VisionObjectDetector</code> where in streaming mode, if the category of an object changes, the detector assigns it a new tracking ID.</li> <li><span class="release-changed"></span> Improved detecting small objects with <code translate="no" dir="ltr">VisionObjectDetector</code>.</li> <li><span class="release-changed"></span> <strong>Breaking change:</strong> Removed <code translate="no" dir="ltr">entityID</code> and <code translate="no" dir="ltr">label</code> APIs from <code translate="no" dir="ltr">VisionObject</code>.</li> <li><span class="release-changed"></span> Natural Language features now use external Protobuf and Google Toolbox for Mac libraries, resulting in reduced binary size.</li> <li><span class="release-changed"></span> Improved error telemetry for Translate model downloading.</li> <li><span class="release-changed"></span> Improved handling of invalid inputs in SmartReply.</li> </ul> <h3 id="performance-monitoring_20" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Fixes an iOS 13 beta crash caused by a race condition with Remote Config.</li> </ul> <h3 id="remote-config_23" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-changed"></span> Improved shared instance initialization sequence during <code translate="no" dir="ltr">FirebaseApp.configure()</code>.</li> </ul> <h3 id="storage_13" data-text="Storage">Storage</h3> <ul> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">StorageReference.list()</code> and <code translate="no" dir="ltr">StorageReference.listAll()</code>, which allows developers to list the files and folders under the given StorageReference.</li> </ul> <h2 id="version_630_-_june_19_2019" data-text="Version 6.3.0 - June 19, 2019"><a name="6.3.0">Version 6.3.0 - June 19, 2019</a></h2> <h3 id="analytics_33" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Fixed issue with sessions not starting occasionally.</li> <li><span class="release-fixed"></span> Fixed issue with update_with_analytics event parameter having an incorrect value.</li> <li><span class="release-fixed"></span> Fixed issue with first_open_after_install user property having an incorrect value.</li> <li><span class="release-changed"></span> Updated SQLite usage to pass additional flag to sqlite3_open_v2 and call sqlite3_prepare_v3 for iOS 12+.</li> </ul> <h3 id="authentication_24" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-changed"></span> Fixed line limits and linter warnings in public documentation (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/3139">#3139</a>).</li> </ul> <h3 id="cloud-firestore_38" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">clearPersistence()</code>, which clears the persistent storage including pending writes and cached documents. This is intended to help write reliable tests (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-js-sdk/issues/449">#449</a>).</li> </ul> <h3 id="firebase-in-app-messaging_22" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-changed"></span> Simplified startup by only scheduling server contact if logs are present (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/3101">#3101</a>).</li> </ul> <h3 id="instanceid_22" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-feature"></span> Added macOS support for InstanceID. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2880">#2880</a>).</li> <li><span class="release-changed"></span> Corrected timezone proto key. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/3132">#3132</a>).</li> </ul> <h3 id="fcm_24" data-text="FCM">FCM</h3> <ul> <li><span class="release-feature"></span> Added macOS support for Messaging. You can now send push notifications to your mac app with Firebase Messaging. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2880">#2880</a>).</li> </ul> <h3 id="performance-monitoring_21" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-changed"></span> Make Firebase Performance work with the recent version of Remote Config.</li> <li><span class="release-fixed"></span> Fix the bug where dataCollectionEnabled flag was not honored for out of the box metrics.</li> </ul> <h3 id="remote-config_24" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-feature"></span> Async initialization with new API for ensuring initialization completed with completion handler.</li> <li><span class="release-feature"></span> Support for multiple active instances of Remote Config in the same app (Analytics only supported with default Firebase app instance).</li> <li><span class="release-feature"></span> New fetchAndActivate API to perform both fetch and activation upon a successful fetch in a single API call with async completion.</li> <li><span class="release-feature"></span> New 'jsonValue' property in the FIRRemoteConfigValue class for reading value of a param as a JSON value.</li> <li><span class="release-feature"></span> New properties for setting minimumFetchInterval and fetch timeout in FIRRemoteConfigSettings class.</li> <li><span class="release-deprecated"></span> [FIRRemoteConfigSettings initWithDeveloperModeEnabled] is now deprecated. Use minimumFetchInterval or call [FIRRemoteConfig fetchWithExpirationDuration:] to force a fetch to the Remote Config backend.</li> <li><span class="release-feature"></span> Async activate API with completion handler.</li> <li><span class="release-deprecated"></span> All Remote Config API which take an explicit namespace parameter are deprecated.</li> </ul> <h2 id="version_620_-_june_4_2019" data-text="Version 6.2.0 - June 4, 2019"><a name="6.2.0">Version 6.2.0 - June 4, 2019</a></h2> <h3 id="authentication_25" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where users could not link email providers via email links. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3030">#3030</a>).</li> </ul> <h3 id="firebase-in-app-messaging_23" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-feature"></span> Added support for card in-app messages (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2947">#2947</a>).</li> <li><span class="release-feature"></span> Added direct triggering (via FIAM SDK) of in-app messages (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/3081">#3081</a>).</li> </ul> <h3 id="cloud-firestore_39" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Firestore should now recover its connection to the server more quickly after being on a network suffering from total packet loss (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/2987">#2987</a>).</li> <li><span class="release-fixed"></span> Changed gRPC-C++ dependency to 0.0.9 which adds support for using it concurrently with the Objective-C gRPC CocoaPod. This fixes certificate errors you might encounter when trying to use Firestore and other Google Cloud Objective-C APIs in the same project.</li> </ul> <h3 id="instanceid_23" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-fixed"></span> Fixed a crash in token fetching. Removed debug assertion that is only for develop build. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/3018">#3018</a>).</li> </ul> <h3 id="ml_kit_for_firebase_7" data-text="ML Kit for Firebase">ML Kit for Firebase</h3> <ul> <li><span class="release-changed"></span> Internal improvements and refactored code.</li> </ul> <h3 id="fcm_25" data-text="FCM">FCM</h3> <ul> <li><span class="release-changed"></span> Disable data protection when opening the Rmq2PeristentStore. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2963">#2963</a>).</li> </ul> <h2 id="version_610_-_may_21_2019" data-text="Version 6.1.0 - May 21, 2019"><a name="6.1.0">Version 6.1.0 - May 21, 2019</a></h2> <ul> <li><span class="release-changed"></span> Allowed <code translate="no" dir="ltr">FirebaseApp</code> name to accept any alpha-numeric character instead of only ASCII (#2609).</li> </ul> <h3 id="analytics_34" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Fixed issue with custom app events not being passed to other Firebase SDKs.</li> </ul> <h3 id="authentication_26" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-feature"></span> Added support of web.app as an auth domain. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/2959">#2959</a>).</li> <li><span class="release-changed"></span> Fixed an issue where the return type of <code translate="no" dir="ltr">getStoredUserForAccessGroup:error:</code> is nonnull. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2879">#2879</a>).</li> </ul> <h3 id="cloud-firestore_40" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Disabling garbage collection now avoids even scheduling the collection process. This can be used to prevent crashes in the background when using NSFileProtectionComplete. Note that Firestore does not support operating in this mode--nearly all API calls will cause crashes while file protection is enabled. This change just prevents a crash when Firestore is idle. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2846">#2846</a>).</li> </ul> <h3 id="firebase-in-app-messaging_24" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-fixed"></span> We fixed an issue with messages not showing from custom analytics event trigger (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/2981">#2981</a>).</li> <li><span class="release-fixed"></span> We fixed a crash from sending analytics events with no instance ID (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/2988">#2988</a>).</li> </ul> <h3 id="instanceid_24" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-fixed"></span> Fixed a keychain migration crash. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/2731">#2731</a>).</li> <li><span class="release-fixed"></span> Fixed a race condition where checkin was deleted before writing during app start, causing notifications to not be delivered correctly. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/2438">#2438</a>).</li> <li><span class="release-fixed"></span> Remove reflection call to get checkin info from Firebase Messaging. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2825">#2825</a>).</li> </ul> <h3 id="ml_kit_for_firebase_8" data-text="ML Kit for Firebase">ML Kit for Firebase</h3> <ul> <li><span class="release-changed"></span> Fixed possible out-of-memory error: Updated <code translate="no" dir="ltr">Translator</code> to release memory for the instance once all references have been removed.</li> <li><span class="release-changed"></span> Renamed Swift values of <code translate="no" dir="ltr">TranslateLanguage</code> from uppercase to lowercase, e.g from <code translate="no" dir="ltr">TranslateLanguage.EN</code> to <code translate="no" dir="ltr">TranslateLanguage.en</code>.</li> </ul> <h3 id="fcm_26" data-text="FCM">FCM</h3> <ul> <li><span class="release-changed"></span> Remove reflection call to get checkin info from Firebase Messaging and calling the private API directly. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2825">#2825</a>).</li> <li><span class="release-fixed"></span> Fix race condition checkin is deleted before writing during app start. This cleans up the corrupted checkin which causes notifications failed to deliver. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/2438">#2438</a>).</li> </ul> <h2 id="version_600_-_may_7_2019" data-text="Version 6.0.0 - May 7, 2019"><a name="6.0.0">Version 6.0.0 - May 7, 2019</a></h2> <aside class="note"><strong>Note:</strong><span> The FirebaseInvites and FirebaseCrash SDKs that were previously deprecated have been removed from the Firebase pod and Zip file. See below for the recommended migration strategy for each SDK.</span></aside> <ul> <li><span class="release-removed"></span> Removed <code translate="no" dir="ltr">FIRAnalyticsConfiguration</code> APIs. Use the same APIs directly on the <code translate="no" dir="ltr">FirebaseAnalytics</code> class. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2728">#2728</a>).</li> <li><span class="release-feature"></span> Added support for CocoaPods 1.7.x <code translate="no" dir="ltr">:generate_multiple_pod_projects</code> feature. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2751">#2751</a>).</li> <li><span class="release-changed"></span> Removed runtime warning for missing Analytics in favor of one at build time. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/2734">#2734</a>).</li> </ul> <h3 id="analytics_35" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-feature"></span> Added support for programmatically indicating that a user’s future Analytics data should not be used for personalized advertising.</li> </ul> <h3 id="ab-testing_8" data-text="A/B Testing">A/B Testing</h3> <ul> <li><span class="release-changed"></span> Removed <code translate="no" dir="ltr">FIR</code> prefixes from Swift APIs to match the rest of the Firebase SDKs. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/1779">#1779</a>).</li> </ul> <h3 id="authentication_27" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-feature"></span> Added support for single sign on. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/2684">#2684</a>).</li> <li><span class="release-deprecated"></span> Deprecated <code translate="no" dir="ltr">reauthenticateAndRetrieveDataWithCredential:completion:</code>, <code translate="no" dir="ltr">signInAndRetrieveDataWithCredential:completion:</code>, <code translate="no" dir="ltr">linkAndRetrieveDataWithCredential:completion:</code>, <code translate="no" dir="ltr">fetchProvidersForEmail:completion:</code>. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2723">#2723</a>).</li> <li><span class="release-removed"></span> Removed pendingToken from public API. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2676">#2676</a>).</li> <li><span class="release-changed"></span> <code translate="no" dir="ltr">GULAppDelegateSwizzler</code> is used for the app delegate swizzling. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2591">#2591</a>).</li> </ul> <h3 id="realtime-database_14" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-removed"></span> Removed the deprecated <code translate="no" dir="ltr">childByAppendingPath</code> API. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2763">#2763</a>).</li> </ul> <h3 id="crash_reporting" data-text="Crash Reporting">Crash Reporting</h3> <ul> <li><span class="release-removed"></span> FirebaseCrash was removed from the Firebase pod. It's recommended to upgrade to <a href="https://web.archive.org/web/20210128081714/https://firebase.google.com/docs/crashlytics/upgrade-from-crash-reporting">Firebase Crashlytics</a>.</li> </ul> <h3 id="dynamic-links_15" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-changed"></span> FirebaseAnalytics is no longer a hard dependency in the DynamicLinks pod. If you were installing Dynamic Links via <code translate="no" dir="ltr">pod 'Firebase/DynamicLinks'</code>, add <code translate="no" dir="ltr">pod 'Firebase/Analytics'</code> to the Podfile to maintain full Dynamic Links functionality. If you have <code translate="no" dir="ltr">pod 'Firebase/Core'</code> in the Podfile, no change is necessary. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2738/">#2738</a>).</li> <li><span class="release-removed"></span> Removed deprecated APIs in FDLURLComponents. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2768">#2768</a>).</li> </ul> <h3 id="cloud-firestore_41" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-feature"></span> You can now query across all collections in your database with a given collection ID using the <code translate="no" dir="ltr">Firestore.collectionGroup()</code> method.</li> <li><span class="release-feature"></span> Added community support for tvOS.</li> </ul> <h3 id="cloud-functions_5" data-text="Cloud Functions">Cloud Functions</h3> <ul> <li><span class="release-changed"></span> Updated to depend on the latest FirebaseCore SDK.</li> </ul> <h3 id="firebase-in-app-messaging_25" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-changed"></span> Updated to depend on the latest FirebaseCore SDK.</li> </ul> <h3 id="instanceid_25" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-removed"></span> Remove deprecated <code translate="no" dir="ltr">token</code> method. Use <code translate="no" dir="ltr">instanceIDWithHandler:</code> instead. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2741">#2741</a>).</li> <li><span class="release-feature"></span> Send <code translate="no" dir="ltr">firebaseUserAgent</code> with a register request. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2679">#2679</a>).</li> </ul> <h3 id="invites" data-text="Invites">Invites</h3> <ul> <li><span class="release-removed"></span> FirebaseInvites was removed from the Firebase pod. Please see <a href="https://web.archive.org/web/20210128081714/https://firebase.google.com/docs/dynamic-links/use-cases/user-to-user">this document</a> for more information on how to replace FirebaseInvites using Firebase DynamicLinks in your project.</li> </ul> <h3 id="ml_kit_for_firebase_9" data-text="ML Kit for Firebase">ML Kit for Firebase</h3> <ul> <li><span class="release-feature"></span> Added Translate support for Natural Language.</li> <li><span class="release-feature"></span> Added support for on-device AutoML Image Labeling using image classification models trained by AutoML on custom images.</li> <li><span class="release-feature"></span> Added support for on-device Object Detection and Tracking.</li> <li><span class="release-feature"></span> Added support for initiating the download of a remote model, monitoring download progress, and receiving notifications. To learn more, read <a href="/web/20210128081714/https://firebase.google.com/docs/ml-kit">ML Kit for Firebase</a>.</li> <li><span class="release-changed"></span> Upgraded TensorFlowLite dependency from 1.12.0 to 1.13.1.</li> </ul> <h3 id="fcm_27" data-text="FCM">FCM</h3> <ul> <li><span class="release-removed"></span> Removed <code translate="no" dir="ltr">useMessagingDelegateForDirectChannel</code> property. All direct channels (non-APNS) messages will be handled in <code translate="no" dir="ltr">FIRMessagingDelegate messaging:didReceiveMessage:</code>. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2711">#2711</a>).</li> <li><span class="release-removed"></span> Removed deprecated API to connect direct channel. Use <code translate="no" dir="ltr">shouldEstablishDirectChannel</code> property instead. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2717">#2717</a>).</li> <li><span class="release-changed"></span> <code translate="no" dir="ltr">GULAppDelegateSwizzler</code> is used for the app delegate swizzling. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2683">#2683</a>).</li> </ul> <h3 id="performance-monitoring_22" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-removed"></span> Removed the deprecated <a href="https://web.archive.org/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebaseperformance/api/reference/Classes/FIRTrace#-incrementcounternamed">counter API</a>. Use <a href="https://web.archive.org/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebaseperformance/api/reference/Classes/FIRTrace#metrics-api">metrics API</a> going forward.</li> </ul> <h3 id="remote-config_25" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-changed"></span> FirebaseAnalytics is no longer a hard dependency in the RemoteConfig pod. If you were installing Remote Config via <code translate="no" dir="ltr">pod 'Firebase/RemoteConfig'</code>, add <code translate="no" dir="ltr">pod 'Firebase/Analytics'</code> to the Podfile to maintain full RemoteConfig functionality. If you have <code translate="no" dir="ltr">pod 'Firebase/Core'</code> in the Podfile, no change is necessary. No major changes to functionality.</li> </ul> <h2 id="version_5202_-_april_10_2019" data-text="Version 5.20.2 - April 10, 2019"><a name="5.20.2">Version 5.20.2 - April 10, 2019</a></h2> <h3 id="analytics_36" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue with <code translate="no" dir="ltr">setAnalyticsCollectionEnabled(_:)</code> not persisting properly between app launches.</li> </ul> <h2 id="version_5201_-_march_30_2019" data-text="Version 5.20.1 - March 30, 2019"><a name="5.20.1">Version 5.20.1 - March 30, 2019</a></h2> <h3 id="cloud-firestore_42" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Fixed a use-after-free bug that could be observed when using snapshot listeners on temporary document references (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/2682">#2682</a>).</li> </ul> <h2 id="version_5200_-_march_29_2019" data-text="Version 5.20.0 - March 29, 2019"><a name="5.20.0">Version 5.20.0 - March 29, 2019</a></h2> <ul> <li><span class="release-changed"></span> Avoid using NSRegularExpression in FIRApp.</li> <li><span class="release-changed"></span> Improve error meessage for invalid app names. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2614">#2614</a>).</li> <li><span class="release-changed"></span> FIRApp thread safety fixes. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2639">#2639</a>).</li> </ul> <h3 id="authentication_28" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-changed"></span> Added support for new error code <code translate="no" dir="ltr">ERROR_INVALID_PROVIDER_ID</code>. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2629">#2629</a>).</li> </ul> <h3 id="cloud-firestore_43" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-feature"></span> Added community support for macOS (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/434">#434</a>).</li> <li><span class="release-fixed"></span> Fixed the way gRPC certificates are loaded on macOS (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/2604">#2604</a>).</li> </ul> <h3 id="dynamic-links_16" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-changed"></span> Fixed an issue where 'matchesShortLinkFormat' was returning true for certain FDL long links. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2563">#2563</a>).</li> </ul> <h3 id="instanceid_26" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-fixed"></span> We fixed a bug where handlers of <code translate="no" dir="ltr">instanceIDWithHandler:</code> weren't responding. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/2445">#2445</a>).</li> <li><span class="release-fixed"></span> We fixed a race condition where the token kept being refreshed at app start. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/2438">#2438</a>).</li> </ul> <h2 id="version_5190_-_march_19_2019" data-text="Version 5.19.0 - March 19, 2019"><a name="5.19.0">Version 5.19.0 - March 19, 2019</a></h2> <aside class="note"><strong>Note:</strong><span> The Firebase iOS SDK now requires Xcode 10.1 or later.</span></aside> <ul> <li><span class="release-changed"></span> Allow Bundle IDs that have a valid prefix to enable richer extension support. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2515">#2515</a>).</li> <li><span class="release-changed"></span> Deprecated <code translate="no" dir="ltr">FIRAnalyticsConfiguration</code> API in favor of new methods on the Analytics SDK. Please call the new APIs directly: Enable/disable Analytics with <code translate="no" dir="ltr">Analytics.setAnalyticsCollectionEnabled(_)</code> and modify the session timeout interval with <code translate="no" dir="ltr">Analytics.setSessionTimeoutInterval(_)</code>.</li> </ul> <h3 id="analytics_37" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-feature"></span> Added new <code translate="no" dir="ltr">setAnalyticsCollectionEnabled(_)</code> and <code translate="no" dir="ltr">setSessionTimeoutInterval(_)</code> APIs. These should be used in place of the <code translate="no" dir="ltr">AnalyticsConfiguration</code> APIs that were deprecated in FirebaseCore (<a href="https://web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2516">#2516</a>).</li> </ul> <h3 id="authentication_29" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-changed"></span> Deprecated Microsoft and Yahoo OAuth Provider IDs. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2517">#2517</a>).</li> <li><span class="release-fixed"></span> Fixed an issue where an exception was thrown when linking OAuth credentials. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2521">#2521</a>).</li> <li><span class="release-fixed"></span> Fixed an issue where a wrong error was thrown when handling error with <code translate="no" dir="ltr">FEDERATED_USER_ID_ALREADY_LINKED</code>. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2522">#2522</a>).</li> </ul> <h3 id="cloud-firestore_44" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">FieldValue.increment()</code>, which can be used in <code translate="no" dir="ltr">updateData(_:)</code> and <code translate="no" dir="ltr">setData(_:merge:)</code> to increment or decrement numeric field values safely without transactions.</li> <li><span class="release-changed"></span> Improved performance when querying over documents that contain subcollections (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2466">#2466</a>).</li> <li><span class="release-changed"></span> Prepared the persistence layer to support collection group queries. While this feature is not yet available, all schema changes are included in this release.</li> </ul> <h3 id="dynamic-links_17" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-changed"></span> Fixed an issue with certain Analytics attribution parameters not being recorded on an app install. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2462">#2462</a>).</li> </ul> <h3 id="firebase-in-app-messaging_26" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-fixed"></span> Fixed a crash that occurred when integrating Firebase In-App Messaging into NativeScript apps.</li> </ul> <h3 id="fcm_28" data-text="FCM">FCM</h3> <ul> <li><span class="release-feature"></span> Added community support for tvOS. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2428">#2428</a>).</li> </ul> <h3 id="instanceid_27" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-feature"></span> Community support for tvOS. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2428">#2428</a>).</li> <li><span class="release-changed"></span> Adding Firebase info to checkin. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2509">#2509</a>).</li> <li><span class="release-fixed"></span> Fixed a crash in FIRInstanceIDCheckinService (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2548">#2548</a>).</li> </ul> <h3 id="ml_kit_for_firebase_10" data-text="ML Kit for Firebase">ML Kit for Firebase</h3> <ul> <li><span class="release-feature"></span> Added Smart Reply support for Natural Language. To learn more, read <a href="/web/20210128081714/https://firebase.google.com/docs/ml-kit">ML Kit for Firebase</a>.</li> <li><span class="release-changed"></span> <strong>Breaking change:</strong> Renamed model downloading APIs in FirebaseMLCommon (no change to functionality): <ul> <li>Renamed <code translate="no" dir="ltr">CloudModelSource</code> to <code translate="no" dir="ltr">RemoteModel</code> and <code translate="no" dir="ltr">LocalModelSource</code> to <code translate="no" dir="ltr">LocalModel</code>.</li> <li>Updated <code translate="no" dir="ltr">ModelManager</code> methods to reflect the renaming of the model classes.</li> <li>Renamed the following properties in <code translate="no" dir="ltr">ModelDownloadConditions</code>: <code translate="no" dir="ltr">isWiFiRequired</code> is now <code translate="no" dir="ltr">allowsCellularAccess</code> and <code translate="no" dir="ltr">canDownloadInBackground</code> is now <code translate="no" dir="ltr">allowsBackgroundDownloading</code>.</li> </ul></li> </ul> <h3 id="performance-monitoring_23" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Fixed a crash related to password auto-fill screen (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/2283">#2283</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/1986">#1986</a>).</li> </ul> <h3 id="realtime-database_15" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-fixed"></span> Fixed crash in FSRWebSocket (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2485">#2485</a>).</li> </ul> <h3 id="storage_14" data-text="Storage">Storage</h3> <ul> <li><span class="release-fixed"></span> StorageReference.putFile() now correctly propagates error if file to upload does not exist (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2458">#2458</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2350">#2350</a>).</li> </ul> <h2 id="version_5182_-_march_7_2019" data-text="Version 5.18.2 - March 7, 2019"><a name="5.18.2">Version 5.18.2 - March 7, 2019</a></h2> <aside class="note"><strong>Note:</strong><span> Zip file and Carthage release only.</span></aside> <ul> <li><span class="release-fixed"></span> Fixed an incomplete modulemap in some frameworks which could lead to linker errors.</li> </ul> <h2 id="version_5181_-_march_7_2019" data-text="Version 5.18.1 - March 7, 2019"><a name="5.18.1">Version 5.18.1 - March 7, 2019</a></h2> <aside class="note"><strong>Note:</strong><span> Zip file and Carthage release only.</span></aside> <h3 id="instanceid_28" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-fixed"></span> Properly pushed the open-source version of Firebase InstanceID. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/186#issuecomment-470466445">#186</a>). To get this fix, remove the <code translate="no" dir="ltr">Pods</code> directory or run <code translate="no" dir="ltr">pod deintegrate</code> before <code translate="no" dir="ltr">pod update</code>. Also see <a href="https://web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2486">#2486</a>.</li> </ul> <h2 id="version_5180_-_march_5_2019" data-text="Version 5.18.0 - March 5, 2019"><a name="5.18.0">Version 5.18.0 - March 5, 2019</a></h2> <ul> <li><span class="release-changed"></span> Deprecated <code translate="no" dir="ltr">setMinimumSessionInterval</code> on <code translate="no" dir="ltr">AnalyticsConfiguration</code>. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2305">#2305</a>).</li> </ul> <h3 id="analytics_38" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue with background tasks not terminating when the configuration isn't expired even when there isn't any data to upload.</li> </ul> <h3 id="authentication_30" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-feature"></span> Add support for Generic IDP. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2405">#2405</a>).</li> </ul> <h3 id="cloud-firestore_45" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Internal improvements to the SDK. These changes do not have any impact on developers using Cloud Firestore.</li> </ul> <h3 id="cloud-functions_6" data-text="Cloud Functions">Cloud Functions</h3> <ul> <li><span class="release-changed"></span> Changed the default timeout for callable functions to 70 seconds (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2329">#2329</a>).</li> <li><span class="release-feature"></span> Added a method to change the timeout for a callable (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2329">#2329</a>).</li> </ul> <h3 id="dynamic-links_18" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-changed"></span> Added return call validation for <code translate="no" dir="ltr">sysctlbyname</code>. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2394">#2394</a>).</li> </ul> <h3 id="firebase-in-app-messaging_27" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-feature"></span> Allow developers to programmatically register a delegate for updates on in-app engagement (impression, click, display errors). (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2354">#2354</a>).</li> </ul> <h3 id="instanceid_29" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-feature"></span> Open Source Firebase InstanceID. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/186">#186</a>).</li> </ul> <h3 id="fcm_29" data-text="FCM">FCM</h3> <ul> <li><span class="release-fixed"></span> Replaced <code translate="no" dir="ltr">NSUserDefaults</code> with <code translate="no" dir="ltr">GULUserDefaults</code> to avoid potential crashes. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/2443">#2443</a>).</li> </ul> <h2 id="version_5170_-_february_21_2019" data-text="Version 5.17.0 - February 21, 2019"><a name="5.17.0">Version 5.17.0 - February 21, 2019</a></h2> <h3 id="analytics_39" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-changed"></span> Sessions start immediately when an engagement occurs.</li> <li><span class="release-feature"></span> Added support for extending sessions while app is running in the background.</li> </ul> <h3 id="cloud-firestore_46" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Internal improvements to the SDK. These changes do not have any impact on developers using Cloud Firestore.</li> </ul> <h3 id="instanceid_30" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-fixed"></span> InstanceID now updates keychain access control whenever a new keychain is added, to make sure keychain access won't be blocked when device is locked. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1399">#1399</a>).</li> <li><span class="release-fixed"></span> Fixed an issue where push notification is not working on release builds. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/2365">#2365</a>).</li> </ul> <h3 id="fcm_30" data-text="FCM">FCM</h3> <ul> <li><span class="release-changed"></span> Internal code cleanup to improve better unit testing. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2250">#2250</a>).</li> </ul> <h2 id="version_5160_-_january_22_2019" data-text="Version 5.16.0 - January 22, 2019"><a name="5.16.0">Version 5.16.0 - January 22, 2019</a></h2> <ul> <li><span class="release-changed"></span> The minimum supported Xcode version is now 9.4.1.</li> <li><span class="release-changed"></span> Internal change to add a <code translate="no" dir="ltr">registerInternalLibrary</code> API. Other Firebase libraries can register with <code translate="no" dir="ltr">FirebaseCore</code> instead of <code translate="no" dir="ltr">FirebaseCore</code> needing all of its clients' versions built in. Firebase 5.16.0 makes this transition for <code translate="no" dir="ltr">FirebaseAnalytics</code>, <code translate="no" dir="ltr">FirebaseAuth</code>, <code translate="no" dir="ltr">FirebaseDatabase</code>, <code translate="no" dir="ltr">FirebaseDynamicLinks</code>, <code translate="no" dir="ltr">FirebaseFirestore</code>, <code translate="no" dir="ltr">FirebaseFunctions</code>, <code translate="no" dir="ltr">FirebaseInstanceID</code>, <code translate="no" dir="ltr">FirebaseMessaging</code>, and <code translate="no" dir="ltr">FirebaseStorage</code>. This change has no impact on Firebase developers.</li> </ul> <h3 id="instanceid_31" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-changed"></span> Moved all keychain write operations off the main thread (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1399">#1399</a>).</li> <li><span class="release-changed"></span> Made keychain operations asynchronous where possible (given the current APIs).</li> <li><span class="release-changed"></span> Updated the SDK to avoid redundant keychain operations when previously queried and cached.</li> </ul> <h3 id="cloud-firestore_47" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> <strong>Breaking change:</strong> The <code translate="no" dir="ltr">areTimestampsInSnapshotsEnabled</code> setting is now enabled by default. Timestamp fields that read from a <code translate="no" dir="ltr">FIRDocumentSnapshot</code> are now returned as <code translate="no" dir="ltr">FIRTimestamp</code> objects instead of <code translate="no" dir="ltr">NSDate</code> objects. Update any code that expects to receive a <code translate="no" dir="ltr">NSDate</code> object. See <a href="https://web.archive.org/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebasefirestore/api/reference/Classes/FIRFirestoreSettings#/c:objc(cs)FIRFirestoreSettings(py)timestampsInSnapshotsEnabled">the reference documentation</a> for more details.</li> <li><span class="release-changed"></span> <strong>Breaking change:</strong> <code translate="no" dir="ltr">FIRTransaction.getDocument()</code> has been changed to return a non-nil FIRDocumentSnapshot with exists equal to false if the document does not exist (instead of returning a nil <code translate="no" dir="ltr">FIRDocumentSnapshot</code>). Code that includes <code translate="no" dir="ltr">if (snapshot) { ... }</code> must be changed to <code translate="no" dir="ltr">if (snapshot.exists) { ... }</code>.</li> <li><span class="release-fixed"></span> Fixed a crash that could happen when the app is shut down after a write has been sent to the server but before it has been received on a listener (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/2237">#2237</a>).</li> <li><span class="release-changed"></span> Firestore no longer bundles a copy of the gRPC certificates, now that the gRPC-C++ CocoaPod includes them. CocoaPods users should be updated automatically. Carthage users should follow the <a href="https://web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/blob/master/Carthage.md">updated instructions</a> to get <code translate="no" dir="ltr">gRPCCertificates.bundle</code> from the correct location.</li> </ul> <h3 id="ml_kit_for_firebase_11" data-text="ML Kit for Firebase">ML Kit for Firebase</h3> <ul> <li><span class="release-feature"></span> Added support for Natural Language and Language Identification. To learn more, read <a href="/web/20210128081714/https://firebase.google.com/docs/ml-kit">ML Kit for Firebase</a>.</li> <li><span class="release-changed"></span> <strong>Breaking change:</strong> Unified and enhanced on-device and cloud image-labeling API.</li> <li><span class="release-changed"></span> Added the <code translate="no" dir="ltr">ModelManager</code> class for downloading and managing custom models from the cloud.</li> <li><span class="release-changed"></span> Added the <code translate="no" dir="ltr">CloudModelSource</code> and <code translate="no" dir="ltr">LocalModelSource</code> classes for defining and registering custom cloud and local models. These classes were previously defined in <code translate="no" dir="ltr">FirebaseMLModelInterpreter</code>.</li> <li><span class="release-changed"></span> Defined and registered <code translate="no" dir="ltr">CloudModelSource</code> and moved the <code translate="no" dir="ltr">LocalModelSource</code>custom models to <code translate="no" dir="ltr">FirebaseMLCommon</code>. To use the new API, import the <code translate="no" dir="ltr">FirebaseMLCommon</code> module.</li> <li><span class="release-changed"></span> Upgraded the TensorFlowLite dependency from 1.10.1 to 1.12.0.</li> </ul> <h2 id="version_5150_-_december_17_2018" data-text="Version 5.15.0 - December 17, 2018"><a name="5.15.0">Version 5.15.0 - December 17, 2018</a></h2> <h3 id="authentication_31" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-feature"></span> Add support for Game Center sign-in (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2127">#2127</a>).</li> </ul> <h3 id="cloud-firestore_48" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Offline persistence now properly records schema downgrades. This is a forward-looking change that allows all subsequent versions to safely downgrade to this version. Some other versions might be safe to downgrade to, if you can determine there haven't been any schema migrations between them. For example, downgrading from v0.16.1 to v0.15.0 is safe because there have been no schema changes between these releases.</li> <li><span class="release-fixed"></span> Fixed an issue where gRPC would crash if shut down multiple times (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2146">#2146</a>).</li> </ul> <h3 id="performance-monitoring_24" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Resolved an issue that caused crashes in <code translate="no" dir="ltr">FPRScreenTraceTracker</code> (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1986">#1986</a>).</li> <li><span class="release-fixed"></span> Fixed duplicate symbols issue with <code translate="no" dir="ltr">NearbyMessages</code> CocoaPod (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2094">#2094</a>).</li> </ul> <h2 id="version_5140_-_december_4_2018" data-text="Version 5.14.0 - December 4, 2018"><a name="5.14.0">Version 5.14.0 - December 4, 2018</a></h2> <h3 id="analytics_40" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-changed"></span> Updated names for certain internal events and parameters.</li> <li><span class="release-fixed"></span> The FirebaseAnalytics CocoaPod corrects its dependency on the <code translate="no" dir="ltr">GoogleAppMeasurement</code> CocoaPod (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pulls/#2428">#2151</a>).</li> </ul> <h3 id="authentication_32" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-feature"></span> Add support for custom FDL domain links (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2121">#2121</a>).</li> </ul> <h3 id="dynamic-links_19" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-changed"></span> Introduced a new <code translate="no" dir="ltr">componentsWithLink:domainURIPrefix:</code> and deprecated the existing <code translate="no" dir="ltr">componentsWithLink:domain:</code> (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1962">#1962</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2017">#2017</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2078">#2078</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2097">#2097</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2112">#2112</a>).</li> </ul> <h3 id="cloud-firestore_49" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Added a garbage collection process to on-disk persistence that removes older documents. This is enabled by default, and the SDK will attempt to periodically clean up older, unused documents once the on-disk cache passes a threshold size (default: 100 MB). This threshold can be configured by setting <code translate="no" dir="ltr">FIRFirestoreSettings.cacheSizeBytes</code>. It must be set to a minimum of 1 MB. The garbage collection process can be disabled entirely by setting <code translate="no" dir="ltr">FIRFirestoreSettings.cacheSizeBytes</code> to <code translate="no" dir="ltr">kFIRFirestoreCacheSizeUnlimited</code>.</li> </ul> <h2 id="version_5130_-_november_20_2018" data-text="Version 5.13.0 - November 20, 2018"><a name="5.13.0">Version 5.13.0 - November 20, 2018</a></h2> <h3 id="cloud-firestore_50" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Changed how the SDK handles locally updated documents while syncing those updates with Cloud Firestore servers. This can lead to slight behavior changes and may affect the <code translate="no" dir="ltr">SnapshotMetadata.hasPendingWrites</code> metadata flag.</li> <li><span class="release-changed"></span> Eliminated superfluous update events for locally cached documents that are known to lag behind the server version. Instead, the SDK buffers these events until the client has caught up with the server.</li> <li><span class="release-changed"></span> Moved from Objective-C gRPC framework to gRPC C++. If you're manually tracking dependencies, the gRPC, gRPC-ProtoRPC, and gRPC-RxLibrary frameworks have been replaced with gRPC-C++. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1968">#1968</a>)</li> </ul> <h3 id="dynamic-links_20" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-changed"></span> Delete deprecated source files. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2038">#2038</a>)</li> </ul> <h3 id="ml_kit_for_firebase_12" data-text="ML Kit for Firebase">ML Kit for Firebase</h3> <ul> <li><span class="release-changed"></span> Face contour detection will only return contours for the most prominent face.</li> <li><span class="release-changed"></span> The face-tracking feature is disabled for contour-only detection in <code translate="no" dir="ltr">.fast</code> mode.</li> <li><span class="release-fixed"></span> Resolved open issues with the FirebaseMLModelInterpreter SDK.</li> </ul> <h2 id="version_5120_-_november_6_2018" data-text="Version 5.12.0 - November 6, 2018"><a name="5.12.0">Version 5.12.0 - November 6, 2018</a></h2> <ul> <li><span class="release-fixed"></span> Fixed static analysis warning for improper nil comparison. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2034">#2034</a>)</li> <li><span class="release-changed"></span> Assign the default app before posting notifications. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2024">#2024</a>)</li> <li><span class="release-changed"></span> Remove unnecessary notification flag. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1993">#1993</a>)</li> <li><span class="release-changed"></span> Wrap diagnostics notification in collection flag check. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1979">#1979</a>)</li> </ul> <h3 id="authentication_33" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-changed"></span> Restore <code translate="no" dir="ltr">SafariServices</code> framework dependency. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/2002">#2002</a>)</li> </ul> <h3 id="performance-monitoring_25" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Resolved open issues in the Performance Monitoring SDK.</li> </ul> <h3 id="storage_15" data-text="Storage">Storage</h3> <ul> <li><span class="release-changed"></span> Storage operations can now be scheduled and controlled from any thread (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1302">#1302</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1388">#1388</a>).</li> <li><span class="release-fixed"></span> Fixed an issue that prevented uploading of files with semicolons in the filename.</li> </ul> <h3 id="cloud-firestore_51" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Fixed compilation in C99 and C++11 modes without GNU extensions.</li> </ul> <h2 id="version_5110_-_october_24_2018" data-text="Version 5.11.0 - October 24, 2018"><a name="5.11.0">Version 5.11.0 - October 24, 2018</a></h2> <h3 id="analytics_41" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-feature"></span> Added support for dynamic audience evaluation.</li> </ul> <h3 id="cloud-firestore_52" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Improvements to the SDK.</li> </ul> <h3 id="dynamic-links_21" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-changed"></span> Updated the SDK to use c99-compatible <code translate="no" dir="ltr">typeof()</code> operator. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1985">#1982</a>)</li> </ul> <h3 id="instanceid_32" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-fixed"></span> Fixed a crash caused by keychain operation when accessing default access group. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1399">#1399</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1393">#1393</a>)</li> </ul> <h3 id="fcm_31" data-text="FCM">FCM</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where messages failed to be delivered to the recipient's time zone. (<a href="/web/20210128081714/https://firebase.google.com/github.com/firebase/firebase-ios-sdk/pull/1946">#1946</a>)</li> </ul> <h3 id="performance-monitoring_26" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-feature"></span> You can now deep dive into samples of traces and network requests, or Sessions, in the Firebase console.</li> <li><span class="release-changed"></span> The Performance Monitoring SDK now adds Remote Config as a dependency.</li> </ul> <h3 id="remote-config_26" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-changed"></span> Internal updates to support Performance Monitoring.</li> </ul> <h2 id="version_5100_-_october_9_2018" data-text="Version 5.10.0 - October 9, 2018"><a name="5.10.0">Version 5.10.0 - October 9, 2018</a></h2> <h3 id="cloud-firestore_53" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Some SDK errors that represent common mistakes (such as permission denied or a missing index) will automatically be logged as a warning in addition to being surfaced via the API.</li> </ul> <h3 id="fcm_32" data-text="FCM">FCM</h3> <ul> <li><span class="release-changed"></span> Now you can access the message ID of <code translate="no" dir="ltr">FIRMessagingRemoteMessage</code> object. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1861">#1861</a>)</li> <li><span class="release-feature"></span> Add a new boolean value <code translate="no" dir="ltr">useFIRMessagingDelegateForDirectMessageDelivery</code> if you want all your direct channel data messages to be delivered in <code translate="no" dir="ltr">FIRMessagingDelegate</code>. If you don't use the new flag, for iOS 10 and above, direct channel data messages are delivered in <code translate="no" dir="ltr">FIRMessagingDelegate messaging:didReceiveMessage:;</code> for iOS 9 and below, direct channel data messages are delivered in Apple's <code translate="no" dir="ltr">AppDelegate application:didReceiveRemoteNotification:fetchCompletionHandler:</code>. So, if you set the <code translate="no" dir="ltr">useFIRMessagingDelegateForDirectMessageDelivery</code> to true, direct channel data messages are delivered in <code translate="no" dir="ltr">FIRMessagingDelegate</code> across all iOS versions. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1875">#1875</a>)</li> <li><span class="release-fixed"></span> Fixed an issue where callback was not triggered with invalid topic names. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1880">#1880</a>)</li> </ul> <h3 id="ml_kit_for_firebase_13" data-text="ML Kit for Firebase">ML Kit for Firebase</h3> <ul> <li><span class="release-feature"></span> Added support for face contour detection.</li> <li><span class="release-feature"></span> Added synchronous face detection API <code translate="no" dir="ltr">resultsInImage:error:</code>.</li> <li><span class="release-changed"></span> <strong>Breaking change:</strong> Renamed the asynchronous face detection API from <code translate="no" dir="ltr">detectInImage:completion:</code> to <code translate="no" dir="ltr">processImage:completion:</code>.</li> <li><span class="release-changed"></span> <strong>Breaking change:</strong> Renamed some properties and enums in <code translate="no" dir="ltr">VisionFaceDetectorOptions</code>.</li> <li><span class="release-changed"></span> <strong>Breaking change:</strong> Removed the constant <code translate="no" dir="ltr">VisionFaceDetectionMinSize</code> in <code translate="no" dir="ltr">VisionFaceDetectorOptions</code>.</li> <li><span class="release-changed"></span> Upgraded TensorFlowLite dependency from 0.1.7 to 1.10.1.</li> </ul> <h3 id="remote-config_27" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-fixed"></span> Fixed open bugs in the Remote Config SDK.</li> </ul> <h2 id="version_590_-_september_25_2018" data-text="Version 5.9.0 - September 25, 2018"><a name="5.9.0">Version 5.9.0 - September 25, 2018</a></h2> <h3 id="analytics_42" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Fixed duplicate nanopb symbols. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/1832">#1832</a>)</li> </ul> <h3 id="dynamic-links_22" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-feature"></span> Dynamic Links is now open source and delivered as a source pod. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1842">#1842</a>)</li> </ul> <h3 id="firebase-in-app-messaging_28" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-feature"></span> Released a new open source SDK called <code translate="no" dir="ltr">FirebaseInAppMessagingDisplay</code> that separates UI functionality out of <code translate="no" dir="ltr">FirebaseInAppMessaging</code>, enabling custom UI implementations.</li> <li><span class="release-fixed"></span> Respect fetch between wait time returned from API responses.</li> </ul> <h3 id="instanceid_33" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-fixed"></span> Fixed a crash caused by <code translate="no" dir="ltr">NSUserDefaults</code> being called on background thread.</li> </ul> <h3 id="cloud-firestore_54" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where the first <code translate="no" dir="ltr">get()</code> call made after being offline could incorrectly return cached data without attempting to reach the backend.</li> <li><span class="release-changed"></span> Changed <code translate="no" dir="ltr">get()</code> to only make 1 attempt to reach the backend before returning cached data, potentially reducing delays while offline. Previously, it would make 2 attempts, to work around a backend bug.</li> <li><span class="release-fixed"></span> Fixed an issue that caused us to drop empty objects from calls to <code translate="no" dir="ltr">setData(..., merge:true)</code>.</li> </ul> <h2 id="version_581_-_september_19_2018" data-text="Version 5.8.1 - September 19, 2018"><a name="5.8.1">Version 5.8.1 - September 19, 2018</a></h2> <ul> <li><span class="release-fixed"></span> Resolved issue with Firebase/Core dependencies that caused a CocoaPods error. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/1845">#1845</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/CocoaPods/CocoaPods/issues/8110">#8110</a>)</li> </ul> <h2 id="version_580_-_september_12_2018" data-text="Version 5.8.0 - September 12, 2018"><a name="5.8.0">Version 5.8.0 - September 12, 2018</a></h2> <ul> <li><span class="release-fixed"></span> Resolved most of the Xcode Analyzer issues in Firebase sources.</li> </ul> <h3 id="analytics_43" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Resolved open issues with the Analytics SDK.</li> </ul> <h3 id="cloud-firestore_55" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where the first <code translate="no" dir="ltr">get()</code> call made after being offline could incorrectly return cached data without attempting to reach the backend.</li> <li><span class="release-changed"></span> Changed <code translate="no" dir="ltr">get()</code> to only make 1 attempt to reach the backend before returning cached data, potentially reducing delays while offline. Previously, it would make 2 attempts, to work around a backend bug.</li> </ul> <h2 id="_version_570_-_august_28_2018" data-text=" Version 5.7.0 - August 28, 2018"><a name="5.7.0"> Version 5.7.0 - August 28, 2018</a></h2> <ul> <li><span class="release-fixed"></span> Clarified wording in <code translate="no" dir="ltr">FirebaseAnalytics not available</code> log message. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1653">#1653</a>)</li> </ul> <h3 id="fcm_33" data-text="FCM">FCM</h3> <ul> <li><span class="release-fixed"></span> Ensure <code translate="no" dir="ltr">NSUserDefaults</code> is persisted properly before app close. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1646">#1646</a>)</li> <li><span class="release-fixed"></span> Internal code cleanup. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1666">#1666</a>)</li> </ul> <h3 id="storage_16" data-text="Storage">Storage</h3> <ul> <li><span class="release-fixed"></span> Fixed potential <code translate="no" dir="ltr">EXC_BAD_ACCESS</code> violation in the internal logic for processing finished downloads. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/1565">#1565</a>, <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1747">#1747</a>)</li> </ul> <h3 id="cloud-firestore_56" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where changes to custom authentication claims did not take effect until you did a full sign-out and sign-in. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/1499">#1499</a>)</li> <li><span class="release-changed"></span> Improved how Firestore handles idle queries to reduce the cost of re-listening within 30 minutes.</li> </ul> <h3 id="admob" data-text="AdMob">AdMob</h3> <ul> <li><span class="release-changed"></span> Native ads: <code translate="no" dir="ltr">GADNativeAppInstallAd</code>, <code translate="no" dir="ltr">GADNativeContentAd</code>, and associated APIs are deprecated in favor of <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/googlemobileads/api/reference/Classes/GADUnifiedNativeAd"><code translate="no" dir="ltr">GADUnifiedNativeAd</code></a>. See the <a href="//web.archive.org/web/20210128081714/https://developers.google.com/admob/ios/native-unified">Native Ads Advanced Unified guide</a> for further instructions on using the new APIs.</li> <li><span class="release-feature"></span> Native Ads: Added the "Mute This Ad" feature.</li> <li><span class="release-fixed"></span> Native Ads: Fixed a bug where AdChoices view was removed when reusing ad views in collection views.</li> <li><span class="release-feature"></span> Added the <code translate="no" dir="ltr">requestConfiguration</code> property to <code translate="no" dir="ltr">GADMobileAds</code>, which can be used to specify <code translate="no" dir="ltr">maxAdContentRating</code> and <code translate="no" dir="ltr">tagForUserOfConsent</code> parameters for all ad requests.</li> <li><p><span class="release-feature"></span> Mediation: Added <code translate="no" dir="ltr">maxAdContentRating</code> and <code translate="no" dir="ltr">underAgeOfConsent</code> properties to <code translate="no" dir="ltr">GADMediationAdRequest</code>.</p> <aside class="note"><strong>Note:</strong><span> A change to the AdMob SDK build configuration resulted in a larger framework file size. This change doesn't affect the SDK's impact on your app size compared to previous versions.</span></aside></li> </ul> <h2 id="_version_560_-_august_15_2018" data-text=" Version 5.6.0 - August 15, 2018"><a name="5.6.0"> Version 5.6.0 - August 15, 2018</a></h2> <ul> <li><span class="release-changed"></span> The minimum supported Xcode version is now 9.2.</li> </ul> <h3 id="analytics_44" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Fixed memory leaks. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/1636">#1636</a>)</li> </ul> <h3 id="crash-reporting" data-text="Crash Reporting">Crash Reporting</h3> <ul> <li><span class="release-changed"></span> Updates to the SDK documentation to reflect deprecation status.</li> </ul> <h3 id="cloud-firestore_57" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where <code translate="no" dir="ltr">get(source:.Cache</code>) could throw an "unrecognized selector" error if the SDK has previously cached the non-existence of the document. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/1632">#1632</a>)</li> </ul> <h3 id="firebase-in-app-messaging_29" data-text="Firebase In-App Messaging">Firebase In-App Messaging</h3> <ul> <li><span class="release-feature"></span> Firebase In-App Messaging is now available in the Firebase SDK for iOS. For more information, <a href="/web/20210128081714/https://firebase.google.com/docs/in-app-messaging">see the documentation</a>.</li> </ul> <h3 id="instanceid_34" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue with checkin not caching properly on app start. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/1561">#1561</a>)</li> </ul> <h3 id="performance-monitoring_27" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Reduced bandwidth consumption used by the SDK.</li> </ul> <h2 id="_version_550_-_august_2_2018" data-text=" Version 5.5.0 - August 2, 2018"><a name="5.5.0"> Version 5.5.0 - August 2, 2018</a></h2> <ul> <li><span class="release-feature"></span> Added a global data collection flag to use when individual product flags are not set. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1583">#1583</a>)</li> <li><span class="release-changed"></span> Renamed the <code translate="no" dir="ltr">FirebaseNanoPB</code> framework to <code translate="no" dir="ltr">MeasurementNanoPB</code>. If you use the framework SDK zip, make sure to remove the <code translate="no" dir="ltr">FirebaseNanoPB</code> framework folder to prevent duplicate symbols.</li> </ul> <h3 id="analytics_45" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-feature"></span> Added currency code validation for CURRENCY parameter and numeric value of pre-defined currency-related events.</li> <li><span class="release-fixed"></span> Resolved <code translate="no" dir="ltr">NSUserDefaults</code> crashes caused by notifications to the system whenever the values were changed and UI updates initiated by the system in the background. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/1317">#1317</a> and <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/431">#431</a>)</li> </ul> <h3 id="authentication_34" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-feature"></span> Adds <code translate="no" dir="ltr">FIRAuthErrorCodeMalformedJWT</code>, which is raised on JWT token parsing failures during auth operations (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1436">#1436</a>).</li> </ul> <h3 id="crash-reporting_1" data-text="Crash Reporting">Crash Reporting</h3> <ul> <li><span class="release-changed"></span> Added conformance to Firebase global data collection switch.</li> </ul> <h3 id="dynamic-links_23" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-fixed"></span> Resolved open issues with Dynamic Links.</li> </ul> <h3 id="instanceid_35" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-changed"></span> Added support for global Firebase data collection flag. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1219">#1219</a>)</li> <li><span class="release-fixed"></span> Improved message tracking sent by server API.</li> <li><span class="release-fixed"></span> Fixed an issue with InstanceID not properly compiling in app extensions.</li> </ul> <h3 id="fcm_34" data-text="FCM">FCM</h3> <ul> <li><span class="release-changed"></span> Added support for global Firebase data collection flag. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1219">#1219</a>)</li> <li><span class="release-fixed"></span> Fixed an issue where FCM wouldn't properly unswizzle swizzled delegate methods. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1481">#1481</a>)</li> <li><span class="release-fixed"></span> Resolved an issue with FCM not compiling inside app extensions. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1503">#1503</a>)</li> </ul> <h3 id="performance-monitoring_28" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Resolved SDK crashes.</li> <li><span class="release-changed"></span> Added dependency on open-source version of the <code translate="no" dir="ltr">GoogleUtilities/Swizzler</code> library.</li> <li><span class="release-changed"></span> Added conformance to Firebase global data collection switch.</li> </ul> <h3 id="remote-config_28" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-fixed"></span> Fixed a memory leak bug. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/quickstart-ios/issues/488">#488</a>)</li> </ul> <h3 id="cloud-firestore_58" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">FieldValue.arrayUnion()</code> and <code translate="no" dir="ltr">FieldValue.arrayRemove()</code> to atomically add and remove elements from an array field in a document.</li> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">whereField(arrayContains:)</code> query filter to find documents where an array field contains a specific element.</li> <li><span class="release-fixed"></span> Fixed compilation with older Xcode versions (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1517">#1517</a>).</li> <li><span class="release-fixed"></span> Fixed a performance issue where large write batches with hundreds of changes would take a long time to read and write and consume excessive memory. Large write batches should now see no penalty.</li> <li><span class="release-fixed"></span> Fixed a performance issue where adding a listener for a large collection (thousands of documents) would take a long time in offline mode (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/pull/1477">#1477</a>).</li> <li><span class="release-fixed"></span> Fixed an issue that could cause deleted documents to momentarily re-appear in the results of a listener, causing a flicker. (<a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/1591">#1591</a>)</li> </ul> <h3 id="ml_kit_for_firebase_14" data-text="ML Kit for Firebase">ML Kit for Firebase</h3> <ul> <li><span class="release-changed"></span> <strong>This is a breaking change.</strong> Unified and enhanced on-device and cloud text recognition API.</li> <li><span class="release-changed"></span> <strong>This is a breaking change.</strong> Enhanced cloud document scanning API.</li> </ul> <h2 id="_version_541_-_july_20_2018" data-text=" Version 5.4.1 - July 20, 2018"><a name="5.4.1"> Version 5.4.1 - July 20, 2018</a></h2> <h3 id="cloud-firestore_59" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where queries returned fewer results than they should, caused by documents that were cached as deleted when they should not have been. <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/firebase-ios-sdk/issues/1548">(#1548)</a>.</li> </ul> <aside class="note"><strong>Note:</strong><span> As a result of this fix, some cache data will be cleared. Clients might use extra bandwidth the first time they launch with this version of the SDK.</span></aside> <h2 id="_version_540_-_june_29_2018" data-text=" Version 5.4.0 - June 29, 2018"><a name="5.4.0"> Version 5.4.0 - June 29, 2018</a></h2> <h3 id="authentication_35" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Resolved an issue with parsing JWT date timestamps correctly.</li> <li><span class="release-fixed"></span> Fixed an issue where anonymous accounts weren't correctly promoted to non-anonymous when linked with passwordless email auth accounts.</li> <li><span class="release-fixed"></span> Fixed a data race issue caught by the sanitizer.</li> </ul> <h3 id="cloud-firestore_60" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Internal improvements.</li> </ul> <h3 id="cloud-functions-for-firebase-client-sdk" data-text="Cloud Functions for Firebase Client SDK">Cloud Functions for Firebase Client SDK</h3> <ul> <li><span class="release-feature"></span> Add a constructor to set the region.</li> <li><span class="release-feature"></span> Add a method to set a Cloud Functions emulator origin to use, for testing.</li> </ul> <h3 id="fcm_35" data-text="FCM">FCM</h3> <ul> <li><span class="release-fixed"></span> Client now properly suspends topic requests when a token is not available and resumes the topic operation when the token is generated.</li> <li><span class="release-fixed"></span> Corrected the deprecation warning when subscribing to or unsubscribing from an invalid topic.</li> <li><span class="release-changed"></span> Removed unused heartbeat timestamp tracking.</li> </ul> <h3 id="realtime-database_16" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-fixed"></span> Fixed undefined behavior sanitizer issues.</li> </ul> <h2 id="_version_530_-_jun_20_2018" data-text=" Version 5.3.0 - Jun 20, 2018"><a name="5.3.0"> Version 5.3.0 - Jun 20, 2018</a></h2> <ul> <li><span class="release-fixed"></span> Fixed a thread sanitizer error (#1390).</li> <li><span class="release-fixed"></span> Updated FirebaseCore.podspec so that it works with cocoapods-packager. (#1378).</li> </ul> <h3 id="instanceid_36" data-text="InstanceID">InstanceID</h3> <ul> <li><span class="release-fixed"></span> Ensure the checkin and tokens are refreshed if the Firebase project changed.</li> <li><span class="release-fixed"></span> Resolved an issue that required checkin to be turned off when the FCM <code translate="no" dir="ltr">autoInitEnabled</code> flag is off.</li> </ul> <h3 id="cloud-firestore_61" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> <code translate="no" dir="ltr">setData</code> methods taking <code translate="no" dir="ltr">mergeFields:</code> arguments can now delete fields using <code translate="no" dir="ltr">FieldValue.delete()</code>.</li> <li><span class="release-fixed"></span> Firestore will now recover from auth token expiration when the system clock is wrong.</li> <li><span class="release-fixed"></span> Fixed compilation with older Xcode versions (#1366).</li> </ul> <h3 id="ml_kit_for_firebase_15" data-text="ML Kit for Firebase">ML Kit for Firebase</h3> <ul> <li><span class="release-changed"></span> <code translate="no" dir="ltr">isIdleRequired</code> in <code translate="no" dir="ltr">ModelDownloadConditions</code> has been renamed to <code translate="no" dir="ltr">canDownloadInBackground</code>. Its initializer has also been renamed accordingly.</li> <li><span class="release-changed"></span> Direct initialization of certain detectors and model interpreter is no longer allowed. Related class methods should be used instead.</li> <li><span class="release-fixed"></span> Fixed memory leaks in continuous detection of face, text, barcode, or label.</li> <li><span class="release-fixed"></span> Fixed a crash that returned the following error: "Terminating app due to uncaught exception <code translate="no" dir="ltr">NSGenericException</code>, reason: 'Completion handler blocks are not supported in background sessions. Use a delegate instead.'"</li> <li><span class="release-fixed"></span> Fixed <code translate="no" dir="ltr">VisonBarcodeDetector</code> signal <code translate="no" dir="ltr">SIGABRT</code> while scanning certain QR codes.</li> <li><span class="release-fixed"></span> Keeping a strong reference of <code translate="no" dir="ltr">VisionTextDetector</code> during detection is no longer necessary.</li> </ul> <h3 id="performance-monitoring_29" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Resolved issue with crashing related to screen traces.</li> <li><span class="release-changed"></span> Improved SDK startup time.</li> <li><span class="release-fixed"></span> Resolved <code translate="no" dir="ltr">AVAssetDownloadTask</code> crashes.</li> </ul> <h2 id="_version_520_-_jun_6_2018" data-text=" Version 5.2.0 - Jun 6, 2018"><a name="5.2.0"> Version 5.2.0 - Jun 6, 2018</a></h2> <h3 id="authentication_36" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-changed"></span> Restore 4.x level of support for extensions.</li> </ul> <h3 id="instance_id" data-text="Instance ID">Instance ID</h3> <ul> <li><span class="release-feature"></span> Added a new API to fetch InstanceID and Token with a completion handler. The completion handler returns a FIRInstanceIDResult with an instanceID and token properties.</li> <li><span class="release-deprecated"></span> Deprecated the token method.</li> <li><span class="release-feature"></span> Added support to log a new customized label provided by developer.</li> </ul> <h3 id="cloud-firestore_62" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Internal improvements.</li> </ul> <h3 id="fcm_36" data-text="FCM">FCM</h3> <ul> <li><span class="release-changed"></span> Added a warning message when subscribing to topics with incorrect name formats.</li> <li><span class="release-fixed"></span> Silenced a deprecation warning in FIRMessaging.</li> </ul> <h2 id="_version_510_-_may_29_2018" data-text=" Version 5.1.0 - May 29, 2018"><a name="5.1.0"> Version 5.1.0 - May 29, 2018</a></h2> <h3 id="analytics_46" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-changed"></span> Added subscription parameter for autorenewable and non-renewing subscription In-app Purchases.</li> <li><span class="release-fixed"></span> Minor bug fixes.</li> </ul> <h3 id="realtime-database_17" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-fixed"></span> Minor bug fixes.</li> </ul> <h3 id="dynamic-links_24" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-fixed"></span> Fixed issue where opens were double counted when using unique match.</li> </ul> <h3 id="cloud-firestore_63" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where FirestoreSettings would accept a concurrent dispatch queue, but this configuration would trigger an assertion failure. Passing a concurrent dispatch queue should now work correctly (#988).</li> </ul> <h3 id="fcm_37" data-text="FCM">FCM</h3> <ul> <li><span class="release-changed"></span> Cleaned up some deprecation warnings.</li> </ul> <h2 id="_version_501_-_may_15_2018" data-text=" Version 5.0.1 - May 15, 2018"><a name="5.0.1"> Version 5.0.1 - May 15, 2018</a></h2> <p>Firebase v5.0.1 contains bugfixes for the Firebase pod and ZIP file.</p> <ul> <li><span class="release-fixed"></span> Duplicate symbol issue when building with <code translate="no" dir="ltr">-all_load</code>.</li> <li><span class="release-fixed"></span> Empty <code translate="no" dir="ltr">modulemap</code> for SDKs in the ZIP file.</li> </ul> <h2 id="_version_500_-_may_8_2018" data-text=" Version 5.0.0 - May 8, 2018"><a name="5.0.0"> Version 5.0.0 - May 8, 2018</a></h2> <p>Firebase v5.0.0 removes support for iOS 7 and building with Xcode 7. Please use Xcode 8.0 or later and upgrade your app's minimum target to iOS 8 or above, for example by adding <code translate="no" dir="ltr">"platform :ios, '8.0'</code> to your <code translate="no" dir="ltr">Podfile</code>. To see the breakdown of worldwide iOS versions, go to <a href="https://web.archive.org/web/20210128081714/https://developer.apple.com/support/app-store/">Apple's App Store support page</a>.</p> <p>Changes related to CocoaPods:</p> <ul> <li><span class="release-changed"></span> Ensure <code translate="no" dir="ltr">Firebase/Core</code> is included in your Podfile.</li> <li><span class="release-changed"></span> The minimum CocoaPods version required is now 1.4.0.</li> <li><span class="release-changed"></span> The Authentication, Realtime Database, Core, Cloud Firestore, Cloud Functions for Firebase Client SDK, FCM, and Storage SDKs are now Source Pods. This means you can directly see the source code in your project and see the full call stack while debugging.</li> </ul> <h3 id="firebase_core" data-text="Firebase Core">Firebase Core</h3> <ul> <li><span class="release-removed"></span> Removed deprecated methods.</li> <li><span class="release-changed"></span> Removed UIKit import from FIRApp.h.</li> </ul> <h3 id="ab-testing_9" data-text="A/B Testing">A/B Testing</h3> <ul> <li><span class="release-feature"></span> Firebase A/B Testing is now available for managing your experiments. For more information, see the <a href="/web/20210128081714/https://firebase.google.com/docs/ab-testing">documentation</a>.</li> </ul> <h3 id="analytics_47" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Minor bug fixes.</li> </ul> <h3 id="authentication_37" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-feature"></span> Added support for testing phone number authentication. For more information, see <a href="/web/20210128081714/https://firebase.google.com/docs/auth/ios/phone-auth#test-with-whitelisted-phone-numbers">Test with whitelisted phone numbers</a>.</li> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">FIRAuthDataResultCallback</code>, which returns an <code translate="no" dir="ltr">AuthDataResult</code> object instead of a <code translate="no" dir="ltr">User</code> object after sign-in. This replaces <code translate="no" dir="ltr">FIRAuthResultCallback</code> for the following methods: <code translate="no" dir="ltr">signInWithEmail:</code>, <code translate="no" dir="ltr">signInwithCredential:</code>, <code translate="no" dir="ltr">signInAnonymouslyWithCompletion:</code>, and <code translate="no" dir="ltr">createUserWithEmail:</code>.</li> <li><span class="release-deprecated"></span> The following methods have been deprecated: <code translate="no" dir="ltr">signAndRetrieveDataWithEmail:</code>, <code translate="no" dir="ltr">signInAndRetrieveDataWithCredential:</code>, and <code translate="no" dir="ltr">signInAndRetrieveDataAnonymouslyWithCompletion:</code></li> </ul> <h3 id="crash-reporting_2" data-text="Crash Reporting">Crash Reporting</h3> <ul> <li><span class="release-deprecated"></span> The Crash Reporting APIs are now deprecated. New projects should use the Crashlytics APIs.</li> </ul> <h3 id="realtime-database_18" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-fixed"></span> Minor bug fixes.</li> </ul> <h3 id="dynamic-links_25" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-changed"></span> The shared instance of <code translate="no" dir="ltr">FIRDynamicLinks</code> is no longer nullable.</li> <li><span class="release-removed"></span> Removed deprecated <code translate="no" dir="ltr">FIRDynamicLinkMatchConfidence</code> property. This is replaced by <code translate="no" dir="ltr">FIRDLMatchType</code>.</li> </ul> <h3 id="instance_id_2" data-text="Instance ID">Instance ID</h3> <ul> <li><span class="release-removed"></span> Removed deprecated method <code translate="no" dir="ltr">setAPNSToken:type</code> defined in FIRInstanceID, please use <code translate="no" dir="ltr">setAPNSToken:type</code> defined in FIRMessaging instead.</li> <li><span class="release-removed"></span> Removed deprecated enum <code translate="no" dir="ltr">FIRInstanceIDAPNSTokenType</code> defined in FIRInstanceID, please use <code translate="no" dir="ltr">FIRMessagingAPNSTokenType</code> defined in FIRMessaging instead.</li> <li><span class="release-fixed"></span> Resolved an issue that FCM scheduled messages were not tracked successfully.</li> </ul> <h3 id="fcm_38" data-text="FCM">FCM</h3> <ul> <li><span class="release-removed"></span> Removed deprecated delegate property <code translate="no" dir="ltr">remoteMessageDelegate</code>, use <code translate="no" dir="ltr">delegate</code> instead.</li> <li><span class="release-removed"></span> Removed deprecated method <code translate="no" dir="ltr">messaging:didRefreshRegistrationToken:</code> defined in <code translate="no" dir="ltr">FIRMessagingDelegate</code> protocol, use <code translate="no" dir="ltr">messaging:didReceiveRegistrationToken:</code> instead.</li> <li><span class="release-removed"></span> Removed deprecated method <code translate="no" dir="ltr">applicationReceivedRemoteMessage:</code> defined in <code translate="no" dir="ltr">FIRMessagingDelegate</code> protocol, use <code translate="no" dir="ltr">messaging:didReceiveMessage:</code> instead.</li> <li><span class="release-fixed"></span> Resolved an issue that data messages were not tracked successfully.</li> </ul> <h3 id="performance-monitoring_30" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-feature"></span> Performance Monitoring has exited beta and is now generally available.</li> <li><span class="release-feature"></span> Added automatic screen traces to report on screen rendering performance.</li> <li><span class="release-feature"></span> Added APIs for setting, incrementing, and getting metrics.</li> <li><span class="release-deprecated"></span> Deprecated the API to increment and decrement counters, use the new metrics API instead.</li> </ul> <h3 id="remote-config_29" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-changed"></span> Changed the designated initializer for <code translate="no" dir="ltr">FIRRemoteConfigSettings</code> to return a nonnull <code translate="no" dir="ltr">FIRRemoteConfigSettings</code> object.</li> </ul> <h3 id="storage_17" data-text="Storage">Storage</h3> <ul> <li><span class="release-removed"></span> Removed <code translate="no" dir="ltr">downloadURLs</code> property on StorageMetadata. Use <code translate="no" dir="ltr">StorageReference.downloadURL(completion:)</code> to obtain a current download URL.</li> <li><span class="release-changed"></span> The maxOperationRetryTime timeout now applies to calls to StorageReference.getMetadata(completion:) and StorageReference.updateMetadata(completion:). These calls previously used the maxDownloadRetryTime and maxUploadRetryTime timeouts.</li> </ul> <h3 id="cloud-firestore_64" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Replaced the <code translate="no" dir="ltr">DocumentListenOptions</code> object with a simple boolean. Instead of calling <code translate="no" dir="ltr">addSnapshotListener(options: DocumentListenOptions.includeMetadataChanges(true))</code>, call <code translate="no" dir="ltr">addSnapshotListener(includeMetadataChanges:true)</code>.</li> <li><span class="release-changed"></span> Replaced the <code translate="no" dir="ltr">QueryListenOptions</code> object with simple booleans. Instead of calling <code translate="no" dir="ltr">addSnapshotListener(options: QueryListenOptions.includeQueryMetadataChanges(true) .includeDocumentMetadataChanges(true))</code>, call <code translate="no" dir="ltr">addSnapshotListener(includeMetadataChanges:true)</code>.</li> <li><span class="release-changed"></span> <code translate="no" dir="ltr">QuerySnapshot.documentChanges()</code> is now a method which optionally takes <code translate="no" dir="ltr">includeMetadataChanges:true</code>. By default, even when listening to a query with <code translate="no" dir="ltr">includeMetadataChanges:true</code>, metadata-only document changes are suppressed in <code translate="no" dir="ltr">documentChanges()</code>.</li> <li><span class="release-changed"></span> Replaced the <code translate="no" dir="ltr">SetOptions</code> object with a simple boolean. Instead of calling <code translate="no" dir="ltr">setData(["a": "b"], options: SetOptions.merge())</code>, call <code translate="no" dir="ltr">setData(["a": "b"], merge: true)</code>.</li> <li><span class="release-changed"></span> Replaced the <code translate="no" dir="ltr">SnapshotOptions</code> object with direct use of the <code translate="no" dir="ltr">FIRServerTimestampBehavior</code> on <code translate="no" dir="ltr">DocumentSnapshot</code>. Instead of calling <code translate="no" dir="ltr">data(SnapshotOptions.serverTimestampBehavior(.estimate))</code>, call <code translate="no" dir="ltr">data(serverTimestampBehavior: .estimate)</code>.</li> <li><span class="release-changed"></span> Added ability to control whether <code translate="no" dir="ltr">DocumentReference.getDocument()</code> and <code translate="no" dir="ltr">Query.getDocuments()</code> should fetch from server only, cache only, or attempt server and fall back to the cache (which was the only option previously, and is now the default.)</li> <li><span class="release-feature"></span> Added new <code translate="no" dir="ltr">mergeFields:(NSArray<id>*)</code> override for <code translate="no" dir="ltr">set()</code> which allows merging of a reduced subset of fields.</li> </ul> <h3 id="cloud-functions-for-firebase-client-sdk_1" data-text="Cloud Functions for Firebase Client SDK">Cloud Functions for Firebase Client SDK</h3> <ul> <li><span class="release-changed"></span> Removed FIR prefix on <code translate="no" dir="ltr">FIRFunctionsErrorCode</code> in Swift.</li> </ul> <h3 id="ml_kit_for_firebase_16" data-text="ML Kit for Firebase">ML Kit for Firebase</h3> <ul> <li><span class="release-feature"></span> ML Kit for Firebase is now available as a public beta. To learn more, read <a href="/web/20210128081714/https://firebase.google.com/docs/ml-kit">ML Kit for Firebase</a>.</li> </ul> <h3 id="known_issues" data-text="Known Issues">Known Issues</h3> <ul> <li>The -all_load option linker option does not work with Firebase 5.0.0.</li> <li>There is an issue preventing the use of bitcode in some of the new ML Kit for Firebase subspecs.</li> </ul> <h2 id="_version_4130_-_april_13_2018" data-text=" Version 4.13.0 - April 13, 2018"><a name="4.13.0"> Version 4.13.0 - April 13, 2018</a></h2> <h3 id="authentication_38" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Resolved a crash which occurred when certain Firebase IDTokens were being parsed.</li> </ul> <h3 id="analytics_48" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-feature"></span> Added a new public method <code translate="no" dir="ltr">resetAnalyticsData</code> to clear all Analytics data as well as reset App Instance ID.</li> <li><span class="release-changed"></span> Improved In-App Purchase report: Analytics can report accurate discounted price for introductory offer purchases.</li> <li><span class="release-fixed"></span> Other bug fixes.</li> </ul> <h2 id="_version_4120_-_april_10_2018" data-text=" Version 4.12.0 - April 10, 2018"><a name="4.12.0"> Version 4.12.0 - April 10, 2018</a></h2> <h3 id="authentication_39" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-feature"></span> Adds <code translate="no" dir="ltr">getIDTokenResultWithCompletion:</code> and <code translate="no" dir="ltr">getIDTokenResultForcingRefresh:completion:</code> APIs which call back with an AuthTokenResult object. The Auth token result object contains the ID token JWT string and other properties associated with the token including the decoded available payload claims.</li> <li><span class="release-feature"></span> Adds the <code translate="no" dir="ltr">updateCurrentUser:completion:</code> API which sets the currentUser on the calling Auth instance to the provided user object.</li> <li><span class="release-feature"></span> Adds client-side validation to prevent setting <code translate="no" dir="ltr">handleCodeInApp</code> to false when performing email-link authentication. If <code translate="no" dir="ltr">handleCodeInApp</code> is set to false an invalid argument exception is thrown.</li> <li><span class="release-feature"></span> Adds support for passing the deep link (which is embedded in the sign-in link sent via email) to the <code translate="no" dir="ltr">signInWithEmail:link:completion:</code> and <code translate="no" dir="ltr">isSignInWithEmailLink:</code> methods during an email/link sign-in flow.</li> </ul> <h3 id="fcm_39" data-text="FCM">FCM</h3> <ul> <li><span class="release-feature"></span> Added new methods that provide completion handlers for topic subscription and unsubscription.</li> </ul> <h3 id="performance-monitoring_31" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Resolved a crash caused by a multithreading issue.</li> </ul> <h3 id="remote-config_30" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-changed"></span> Improved documentation on InstanceIDs for GDPR.</li> </ul> <h3 id="storage_18" data-text="Storage">Storage</h3> <ul> <li><span class="release-changed"></span> Deprecated <code translate="no" dir="ltr">downloadURLs</code> property on <code translate="no" dir="ltr">StorageMetadata</code>. Use <code translate="no" dir="ltr">StorageReference.downloadURLWithCompletion()</code> to obtain a current download URL.</li> </ul> <h3 id="cloud-firestore_65" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Resolved a regression in the Firebase iOS SDK release 4.11.0 that could cause <code translate="no" dir="ltr">getDocument()</code> requests made while offline to be delayed by up to 10 seconds rather than returning from cache immediately.</li> <li><span class="release-feature"></span> Added a new Timestamp class to represent timestamp fields, currently supporting up to microsecond precision. It can be passed to API methods anywhere a system Date is currently accepted. To make DocumentSnapshots read timestamp fields back as Timestamps instead of Dates, you can set the newly added property <code translate="no" dir="ltr">areTimestampsInSnapshotsEnabled</code> in FirestoreSettings to <code translate="no" dir="ltr">true</code>. Note that the current behavior (DocumentSnapshots returning system Dates) will be removed in a future release. Using Timestamps avoids rounding errors from the system Date being stored as a floating-point value.</li> </ul> <h2 id="version_4110_-_march_20_2018" data-text="Version 4.11.0 - March 20, 2018"><a name="4.11.0">Version 4.11.0 - March 20, 2018</a></h2> <h3 id="authentication_40" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-feature"></span> Adds new API to determine the sign-in methods associated with an email address.</li> <li><span class="release-feature"></span> Adds new API to allow authentication using only an email link (Passwordless Authentication with email link).</li> </ul> <h3 id="instance_id_3" data-text="Instance ID">Instance ID</h3> <ul> <li><span class="release-changed"></span> Improved documentation on InstanceID usage for GDPR.</li> <li><span class="release-changed"></span> Improved the keypair handling during GCM to FCM migration. If you are migrating from GCM to FCM, we encourage you to update to this version and above.</li> </ul> <h3 id="cloud-firestore_66" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> If the SDK's attempt to connect to the Cloud Firestore backend neither succeeds nor fails within 10 seconds, the SDK will consider itself "offline", causing getDocument() calls to resolve with cached results, rather than continuing to wait.</li> <li><span class="release-fixed"></span> Fixed a race condition after calling <code translate="no" dir="ltr">enableNetwork()</code> that could result in a "Mutation batchIDs must be acknowledged in order" assertion crash.</li> <li><span class="release-fixed"></span> Fixed undefined symbols in the absl namespace.</li> </ul> <h3 id="cloud-functions-for-firebase-client-sdk_2" data-text="Cloud Functions for Firebase Client SDK">Cloud Functions for Firebase Client SDK</h3> <ul> <li>This release contains the new Firebase Functions Client SDK, with support for HTTPS Callable Functions. See <a href="/web/20210128081714/https://firebase.google.com/docs/functions/callable">Call Functions from Your App</a>.</li> </ul> <h2 id="version_4101_-_march_9_2018" data-text="Version 4.10.1 - March 9, 2018"><a name="4.10.1">Version 4.10.1 - March 9, 2018</a></h2> <h3 id="cloud-firestore_67" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Fixed a regression in the 4.10.0 Firebase iOS SDK release that prevented the SDK from communicating with the backend until successfully authenticating via Firebase Authentication or after unauthenticating and re-authenticating. All reads and writes were silently executed only locally rather than being sent as unauthenticated requests.</li> </ul> <h2 id="version_4100_-_march_6_2018" data-text="Version 4.10.0 - March 6, 2018"><a name="4.10.0">Version 4.10.0 - March 6, 2018</a></h2> <h3 id="firebasecore" data-text="FirebaseCore">FirebaseCore</h3> <ul> <li><span class="release-changed"></span> This release includes updates to several services that address issues with <code translate="no" dir="ltr">CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF</code> warnings that surface in newer versions of Xcode and CocoaPods.</li> </ul> <h3 id="analytics_49" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-changed"></span> Increased user ID max length to 256 characters.</li> <li><span class="release-feature"></span> Added event names <code translate="no" dir="ltr">level_start</code> and <code translate="no" dir="ltr">level_end</code>.</li> <li><span class="release-feature"></span> Added parameter names <code translate="no" dir="ltr">level_name</code> and <code translate="no" dir="ltr">success</code>.</li> <li><span class="release-feature"></span> Added Audience support for nested event parameters.</li> <li><span class="release-feature"></span> Added lifetime user engagement user property.</li> <li><span class="release-fixed"></span> Resolved deadlock in Screen View Reporter.</li> </ul> <h3 id="authentication_41" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-changed"></span> Addressed <code translate="no" dir="ltr">CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF</code> warnings that surface in newer versions of Xcode and CocoaPods.</li> <li><span class="release-changed"></span> Improved <code translate="no" dir="ltr">FIRUser</code> documentation with clear message explaining when Authentication attempts to validate users and what happens when an invalidated user is detected.</li> </ul> <h3 id="realtime-database_19" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-fixed"></span> Resolved issue with loss of precision for 64 bit numbers on older 32 bit iOS devices with persistence enabled.</li> <li><span class="release-changed"></span> Addressed <code translate="no" dir="ltr">CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF</code> warnings that surface in newer versions of Xcode and CocoaPods.</li> </ul> <h3 id="fcm_40" data-text="FCM">FCM</h3> <ul> <li><span class="release-changed"></span> Improved documentation on the usage of the <code translate="no" dir="ltr">autoInitEnabled</code> property.</li> </ul> <h3 id="performance-monitoring_32" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Fixed a crash related to redirection requests with <code translate="no" dir="ltr">AFNetworking</code>.</li> </ul> <h3 id="storage_19" data-text="Storage">Storage</h3> <ul> <li><span class="release-changed"></span> Addressed <code translate="no" dir="ltr">CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF</code> warnings that surface in newer versions of Xcode and CocoaPods.</li> </ul> <h3 id="cloud-firestore_68" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> When you delete a <code translate="no" dir="ltr">FirebaseApp</code>, the associated Firestore instances are now also deleted.</li> <li><span class="release-fixed"></span> Fixed race conditions in streams that could be exposed by rapidly toggling the network from enabled to disabled and back or encountering a failure from the server.</li> <li><span class="release-changed"></span> Addressed <code translate="no" dir="ltr">CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF</code> warnings that surface in newer versions of Xcode and CocoaPods.</li> </ul> <h2 id="version_490_-_february_14_2018" data-text="Version 4.9.0 - February 14, 2018"><a name="4.9.0">Version 4.9.0 - February 14, 2018</a></h2> <h3 id="authentication_42" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-changed"></span> Added an explicit dependency on <code translate="no" dir="ltr">CoreGraphics</code> from Firebase Auth.</li> </ul> <h3 id="instance_id_4" data-text="Instance ID">Instance ID</h3> <ul> <li><span class="release-changed"></span> Improved support for language targeting for FCM service. Server updates happen more efficiently when language changes.</li> <li><span class="release-changed"></span> Improved support for FCM token auto generation enable/disable functions.</li> </ul> <h3 id="fcm_41" data-text="FCM">FCM</h3> <ul> <li><span class="release-feature"></span> Added a new property <code translate="no" dir="ltr">autoInitEnabled</code> to enable and disable FCM token auto generation.</li> <li><span class="release-fixed"></span> Resolved an issue where notification delivery would fail after changing language settings.</li> </ul> <h3 id="remote-config_31" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-changed"></span> Improved support for language targeting. Simplied Chinese (zh_hans) and Traditional Chinese (Taiwan) (zh_TW) language targeting should be more accurate.</li> </ul> <h3 id="cloud-firestore_69" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Fixed a regression in Firebase iOS release 4.8.1 that could in certain cases result in an "OnlineState should not affect limbo documents." assertion crash when the client loses its network connection.</li> <li><span class="release-fixed"></span> It's now possible to pass a nil completion block to <code translate="no" dir="ltr">WriteBatch.commit</code>.</li> </ul> <h2 id="version_482_-_january_27_2018" data-text="Version 4.8.2 - January 27, 2018"><a name="4.8.2">Version 4.8.2 - January 27, 2018</a></h2> <h3 id="analytics_50" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue with data collection. We have also removed version 4.8.1 to prevent usage of the SDK with the issue.</li> </ul> <h2 id="version_481_-_january_18_2018" data-text="Version 4.8.1 - January 18, 2018"><a name="4.8.1">Version 4.8.1 - January 18, 2018</a></h2> <h3 id="analytics_51" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-feature"></span> Improved the In-App Purchase report. Analytics can now detect subscription restoration or repurchase and non-consumables and can report auto-renewable and non-renewing subscriptions.</li> </ul> <h3 id="authentication_43" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Resolved a bug where the <code translate="no" dir="ltr">FIRAuthResult</code> object returned following a phone number authentication always contained a nil <code translate="no" dir="ltr">FIRAdditionalUserInfo</code> object. Now, the <code translate="no" dir="ltr">FIRAdditionalUserInfo</code> object is never nil and its <code translate="no" dir="ltr">newUser</code> field is populated correctly.</li> </ul> <h3 id="realtime-database_20" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-feature"></span> Now community-supported on tvOS.</li> </ul> <h3 id="dynamic-links_26" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-fixed"></span> Resolved an error where fingerprint match fails for some locales.</li> </ul> <h3 id="performance-monitoring_33" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Fixed several minor bugs.</li> </ul> <h3 id="remote-config_32" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-fixed"></span> Resolved an issue where throttle rate drops during developer mode.</li> <li><span class="release-changed"></span> Replaced <code translate="no" dir="ltr">FIR_SWIFT_NAME</code> with <code translate="no" dir="ltr">NS_SWIFT_NAME</code>.</li> </ul> <h3 id="storage_20" data-text="Storage">Storage</h3> <ul> <li><span class="release-feature"></span> Now community-supported on tvOS.</li> </ul> <h3 id="cloud-firestore_70" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Removed the <code translate="no" dir="ltr">includeMetadataChanges</code> property in <code translate="no" dir="ltr">FIRDocumentListenOptions</code> to avoid confusion with the factory method of the same name.</li> <li><span class="release-changed"></span> Added a commit method that takes no completion handler to <code translate="no" dir="ltr">FIRWriteBatch</code>.</li> <li><span class="release-feature"></span> Queries can now be created from an <code translate="no" dir="ltr">NSPredicate</code>.</li> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">SnapshotOptions</code> API to control how <code translate="no" dir="ltr">DocumentSnapshots</code> return unresolved server timestamps.</li> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">disableNetwork()</code> and <code translate="no" dir="ltr">enableNetwork()</code> methods to <code translate="no" dir="ltr">Firestore</code> class, allowing for explicit network management.</li> <li><span class="release-changed"></span> For non-existing documents, <code translate="no" dir="ltr">DocumentSnapshot.data()</code> now returns nil instead of throwing an exception. A non-nullable <code translate="no" dir="ltr">QueryDocumentSnapshot</code> is introduced for <code translate="no" dir="ltr">Queries</code> to reduce the number of nil-checks in your code.</li> <li><span class="release-changed"></span> Snapshot listeners (with the <code translate="no" dir="ltr">includeMetadataChanges</code> option enabled) now receive an event with <code translate="no" dir="ltr">snapshot.metadata.isFromCache</code> set to <code translate="no" dir="ltr">true</code> if the SDK loses its connection to the backend. A new event with <code translate="no" dir="ltr">snapshot.metadata.isFromCache</code> set to <code translate="no" dir="ltr">false</code> will be raised once the connection is restored and the query is in sync with the backend again.</li> <li><span class="release-fixed"></span> Multiple offline mutations now properly reflected in retrieved documents. Previously, only the last mutation would be visible.</li> <li><span class="release-fixed"></span> Fixed a crash in <code translate="no" dir="ltr">closeWithFinaleState:</code> that could be triggered by signing out when the app didn't have a network connection.</li> </ul> <h2 id="version_480_-_december_18_2017" data-text="Version 4.8.0 - December 18, 2017"><a name="4.8.0">Version 4.8.0 - December 18, 2017</a></h2> <h3 id="realtime-database_21" data-text="Realtime Database">Realtime Database</h3> <ul> <li>Internal cleanup in the firebase-ios-sdk repository. Functionality of the Realtime Database SDK is not affected.</li> </ul> <h3 id="dynamic-links_27" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-fixed"></span> Resolved race condition that could occur while processing server response(s).</li> </ul> <h3 id="instance_id_5" data-text="Instance ID">Instance ID</h3> <ul> <li><span class="release-fixed"></span> Resolved a crash caused by a reflection call during logging.</li> <li><span class="release-changed"></span> Updated server with the latest parameters and deprecated old ones.</li> </ul> <h3 id="performance-monitoring_34" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-feature"></span> Added API for tagging traces with custom attributes. For more information, see <a href="/web/20210128081714/https://firebase.google.com/docs/perf-mon/custom-attributes">Monitor Custom Attributes</a>.</li> <li><span class="release-feature"></span> Added API for manually recording network traces. For more information, see the section <a href="/web/20210128081714/https://firebase.google.com/docs/perf-mon/get-started-ios#manual-network">Add monitoring for specific network requests</a> in the iOS getting started guide.</li> <li><span class="release-fixed"></span> Resolved some open issues with Performance Monitoring.</li> </ul> <h3 id="cloud-firestore_71" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Firestore no longer has a direct dependency on FirebaseAuth.</li> <li><span class="release-fixed"></span> Fixed a crash when using path names with international characters with persistence enabled.</li> <li><span class="release-fixed"></span> Addressed race condition during the teardown of idle streams.</li> </ul> <h3 id="storage_21" data-text="Storage">Storage</h3> <ul> <li>Internal cleanup in the firebase-ios-sdk repository. Functionality of the Storage SDK is not affected.</li> </ul> <h2 id="version_470_-_november_30_2017" data-text="Version 4.7.0 - November 30, 2017"><a name="4.7.0">Version 4.7.0 - November 30, 2017</a></h2> <ul> <li><span class="release-fixed"></span> Replaced the <code translate="no" dir="ltr">FIR_SWIFT_NAME</code> macro with <code translate="no" dir="ltr">NS_SWIFT_NAME</code>.</li> </ul> <h3 id="authentication_44" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-feature"></span> Added new APIs that return an <code translate="no" dir="ltr">AuthDataResult</code> object after successfully creating a user with an email and password, signing in anonymously, signing in with email/password credentials, and signing in with custom tokens. The <code translate="no" dir="ltr">AuthDataResult</code> object contains the new user and additional information pertaining to the new user.</li> </ul> <h3 id="realtime-database_22" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-fixed"></span> Addressed a race condition that occurred during initialization of empty snapshots.</li> </ul> <h3 id="dynamic-links_28" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-changed"></span> Added new confidence type property. See <a href=""><code translate="no" dir="ltr">FIRDLMatchType</code></a> (values: Unique, Default, Weak).</li> <li><span class="release-changed"></span> Updated the self-diagnostic output.</li> </ul> <h3 id="instance_id_6" data-text="Instance ID">Instance ID</h3> <ul> <li><span class="release-changed"></span> Improved identity reset process, ensuring all information is reset during Identity deletion.</li> </ul> <h3 id="cloud-firestore_72" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Improved performance when loading documents that match a query.</li> <li><span class="release-changed"></span> Updated SDK to cleanly shut down idle write streams.</li> </ul> <h3 id="performance-monitoring_35" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-changed"></span> Network requests made using <code translate="no" dir="ltr">NSURLConnection</code> are now instrumented.</li> <li><span class="release-fixed"></span> Resolved some open issues with Performance Monitoring.</li> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">FirebaseSwizzlingUtilities</code> for optional method swizzling.</li> </ul> <h2 id="storage_22" data-text="Storage">Storage</h2> <ul> <li><span class="release-changed"></span> Added <code translate="no" dir="ltr">md5Hash</code> to <code translate="no" dir="ltr">FIRStorageMetadata</code>.</li> </ul> <h2 id="version_460_-_november_14_2017" data-text="Version 4.6.0 - November 14, 2017"><a name="4.6.0">Version 4.6.0 - November 14, 2017</a></h2> <ul> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">-FIRLoggerForceSTDERR</code> launch argument flag to force STDERR output for all Firebase logging.</li> </ul> <h3 id="analytics_52" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Resolved open issues with Google Analytics for Firebase, including a screen-tracking issue that loaded views of unloaded controllers and an issue with calling <code translate="no" dir="ltr">[UIApplication sharedApplication]</code> from a background queue.</li> </ul> <h3 id="authentication_45" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-changed"></span> Improved error handling in both the phone-number linking and reCAPTCHA flows for phone-number sign-in.</li> <li><span class="release-fixed"></span> Resolved issue with users remaining anonymous even after being linked to a phone number.</li> </ul> <h3 id="dynamic-links_29" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-changed"></span> The FDL Builder API now includes a fallback link for users on other platforms.</li> <li><span class="release-fixed"></span> Resolved open issues and improved stability in the Dynamic Links SDK.</li> </ul> <h3 id="instance_id_7" data-text="Instance ID">Instance ID</h3> <ul> <li><span class="release-changed"></span> Made token refresh weekly.</li> <li><span class="release-fixed"></span> Resolved crash that occurred during token operation.</li> </ul> <h3 id="invites_1" data-text="Invites">Invites</h3> <ul> <li><span class="release-changed"></span> Updated API to properly handle links to an app that is already installed.</li> <li><span class="release-fixed"></span> Resolved crashes that occurred when a selected Invite recipient had an empty name.</li> </ul> <h3 id="cloud-firestore_73" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Firestore now retries requests more often before considering a client offline.</li> <li><span class="release-changed"></span> You can now use <code translate="no" dir="ltr">FieldValue.delete()</code> with <code translate="no" dir="ltr">SetOptions.merge()</code>.</li> </ul> <h2 id="version_450_-_october_30_2017" data-text="Version 4.5.0 - October 30, 2017"><a name="4.5.0">Version 4.5.0 - October 30, 2017</a></h2> <ul> <li><span class="release-changed"></span> iOS 7 support in the Firebase iOS, C++, and Unity SDKs is now deprecated and will be dropped in a future release. Upgrade your apps to target iOS 8 or above. To see the breakdown of worldwide iOS versions, <a href="https://web.archive.org/web/20210128081714/https://developer.apple.com/support/app-store/">go to Apple’s App Store support page</a>.</li> </ul> <h3 id="ab_testing" data-text="A/B Testing">A/B Testing</h3> <ul> <li><span class="release-feature"></span> A/B Testing offers the ability to run experiments from the Firebase console using Remote Config. Learn more about creating experiments with A/B Testing for <a href="/web/20210128081714/https://firebase.google.com/docs/remote-config/abtest-config">Remote Config</a> and <a href="/web/20210128081714/https://firebase.google.com/docs/cloud-messaging/abtest-with-console">FCM</a>.</li> </ul> <h3 id="authentication_46" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Resolved open issues with Authentication.</li> </ul> <h3 id="cloud-firestore_74" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-fixed"></span> Improved validation of nested arrays to allow indirect nesting.</li> </ul> <h2 id="version_440_-_october_17_2017" data-text="Version 4.4.0 - October 17, 2017"><a name="4.4.0">Version 4.4.0 - October 17, 2017</a></h2> <ul> <li><span class="release-fixed"></span> Fixed new warnings that appeared in Xcode 9.</li> </ul> <h3 id="authentication_47" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-feature"></span> Account creation and last sign-in dates are now provided as user metadata.</li> <li><span class="release-fixed"></span> Invalid users are now automatically signed out earlier.</li> <li><span class="release-fixed"></span> Resolved an issue with ID token listeners not firing in some cases.</li> <li><span class="release-fixed"></span> More descriptive errors for some phone number sign-in error cases.</li> </ul> <h3 id="realtime-database_23" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-fixed"></span> Resolved warnings for callback types with missing argument specifications in XCode 9.</li> </ul> <h3 id="cloud-firestore_75" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-changed"></span> Changed the names for <code translate="no" dir="ltr">FIRSnapshotMetadata</code> and <code translate="no" dir="ltr">FIRListenerRegistration</code> to better reflect Swift naming guidelines for the Swift SDK.</li> <li><span class="release-fixed"></span> Fixed retain cycle in <code translate="no" dir="ltr">FIRDocumentReference getDocumentWithCompletion:</code>.</li> </ul> <h3 id="fcm_42" data-text="FCM">FCM</h3> <ul> <li><span class="release-changed"></span> Improved logging of notification opens, by swizzling additional <code translate="no" dir="ltr">UNUserNotificationCenterDelegate</code> method.</li> <li><span class="release-changed"></span> Improved the handling of unimplemented <code translate="no" dir="ltr">UNUserNotificationCenterDelegate methods</code>, when swizzling is enabled.</li> </ul> <h3 id="instance_id_8" data-text="Instance ID">Instance ID</h3> <ul> <li><span class="release-changed"></span> Improved support for working in shared Keychain environments.</li> </ul> <h2 id="version_430_-_october_3_2017" data-text="Version 4.3.0 - October 3, 2017"><a name="4.3.0">Version 4.3.0 - October 3, 2017</a></h2> <ul> <li><span class="release-feature"></span> The initial public beta release of the Cloud Firestore SDK for iOS is now available. To learn more, see the <a href="/web/20210128081714/https://firebase.google.com/docs/firestore">Cloud Firestore documentation</a>.</li> </ul> <h3 id="analytics_53" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Resolved open issues with Analytics.</li> </ul> <h3 id="authentication_48" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Resolved a threading issue in phone number auth.</li> </ul> <h3 id="cloud-firestore_76" data-text="Cloud Firestore">Cloud Firestore</h3> <ul> <li><span class="release-feature"></span> The initial public beta release of the Cloud Firestore SDK for iOS is now available. To learn more, see the <a href="/web/20210128081714/https://firebase.google.com/docs/firestore">Cloud Firestore documentation</a> or go directly to the <a href="/web/20210128081714/https://firebase.google.com/docs/firestore/quickstart">Quickstart</a>.</li> </ul> <h3 id="fcm_43" data-text="FCM">FCM</h3> <ul> <li><span class="release-fixed"></span> Resolved issues with FCM token associations to APNs device tokens.</li> <li><span class="release-fixed"></span> The FCM direct channel is now properly established on the first start 24 hours after being opened.</li> </ul> <h3 id="performance-monitoring_36" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-changed"></span> Added infrastructure to more easily diagnose issues.</li> </ul> <h3 id="realtime-database_24" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-feature"></span> Added <a href="/web/20210128081714/https://firebase.google.com/docs/database/usage/sharding">multi-resource</a> support.</li> </ul> <h2 id="version_420_-_september_20_2017" data-text="Version 4.2.0 - September 20, 2017"><a name="4.2.0">Version 4.2.0 - September 20, 2017</a></h2> <ul> <li><span class="release-fixed"></span> Resolved duplicate logging issue in the Xcode console.</li> </ul> <h3 id="admob_1" data-text="AdMob">AdMob</h3> <ul> <li><span class="release-fixed"></span> Resolved issue with banner ads loading beyond the viewable area on iOS 11.</li> </ul> <h3 id="authentication_49" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-feature"></span> Provided reCAPTCHA as an alternative verification method for phone number auth.</li> </ul> <h3 id="crash-reporting_3" data-text="Crash Reporting">Crash Reporting</h3> <ul> <li><span class="release-changed"></span> Optimized power consumption.</li> </ul> <h3 id="realtime-database_25" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-fixed"></span> Fixed a regression in v4.0.2 that affected the storage location of the offline cache. This caused v4.0.2 to not see data written with previous versions.</li> <li><span class="release-fixed"></span> Fixed a crash in <code translate="no" dir="ltr">FIRApp deleteApp</code> for apps that did not have active database instances.</li> </ul> <h3 id="instance_id_9" data-text="Instance ID">Instance ID</h3> <ul> <li><span class="release-fixed"></span> Resolved a race condition where a token was not being generated on first start when FCM was included and the app didn’t register for remote notifications.</li> </ul> <h3 id="fcm_44" data-text="FCM">FCM</h3> <ul> <li><span class="release-changed"></span> Additional error code logging for errors thrown when creating or opening an internal database file.</li> </ul> <h3 id="performance-monitoring_37" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Resolved symbol collisions with GoogleMobileVision.</li> <li><span class="release-fixed"></span> Resolved crash when also using Crittercism.</li> <li><span class="release-changed"></span> Now enforcing safety limits on the number of events dispatched over a period of time.</li> </ul> <h3 id="remote-config_33" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-fixed"></span> Resolved an issue with config values not updating correctly when targeted by a user property condition.</li> </ul> <h3 id="storage_23" data-text="Storage">Storage</h3> <ul> <li><span class="release-changed"></span> Clear custom <code translate="no" dir="ltr">FIRStorageMetadata</code> by setting individual properties to 'nil'.</li> </ul> <h2 id="version_411_-_august_30_2017" data-text="Version 4.1.1 - August 30, 2017"><a name="4.1.1">Version 4.1.1 - August 30, 2017</a></h2> <h3 id="admob_2" data-text="AdMob">AdMob</h3> <ul> <li><span class="release-changed"></span> Mediation adapters now get notified via <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/googlemobileads/api/reference/Protocols/GADMediatedNativeAdDelegate#-mediatednativeaddiduntrackview"><code translate="no" dir="ltr">mediatedNativeAd:didUntrackView:</code></a> when a native ad is deallocated.</li> </ul> <h3 id="authentication_50" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-changed"></span> Improved comments on some methods in the header files.</li> </ul> <h3 id="realtime-database_26" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-fixed"></span> If you try to retrieve a Realtime Database instance for a specific <code translate="no" dir="ltr">FirebaseApp</code> on an app that was deleted, Realtime Database no longer returns a stale instance.</li> <li><span class="release-changed"></span> For unindexed queries, the error message now references bandwidth usage.</li> </ul> <h3 id="instance_id_10" data-text="Instance ID">Instance ID</h3> <ul> <li><span class="release-fixed"></span> Removed a call that blocked the main thread during app startup.</li> </ul> <h3 id="cloud-messaging" data-text="Cloud Messaging">Cloud Messaging</h3> <ul> <li><span class="release-fixed"></span> Removed logic that saved the SDK version to <code translate="no" dir="ltr">NSUserDefaults</code>.</li> </ul> <h3 id="performance-monitoring_38" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Resolved open issues with Performance Monitoring.</li> <li><span class="release-changed"></span> Increased character name limits for traces and counters from 32 to 100. Traces and counters that exceed the name limit are not created.</li> </ul> <h2 id="version_410_-_august_14_2017" data-text="Version 4.1.0 - August 14, 2017"><a name="4.1.0">Version 4.1.0 - August 14, 2017</a></h2> <ul> <li><span class="release-changed"></span> Incorrectly configured bundle IDs now result in error messages instead of info messages.</li> </ul> <h3 id="analytics_54" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Improved startup time.</li> <li><span class="release-fixed"></span> Resolved an issue with campaign reporting that occurred when apps were opened through deep links on cold starts.</li> </ul> <h3 id="authentication_51" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-feature"></span> Apps can now handle deep links natively and set language codes, for example, for password reset emails.</li> <li><span class="release-fixed"></span> Users’ phone numbers now persist properly on clients.</li> <li><span class="release-fixed"></span> Recovery emails are now reported as the correct action code type.</li> <li><span class="release-fixed"></span> Improved app startup time by moving initialization off of the main thread.</li> <li><span class="release-fixed"></span> Improved error for missing emails during new user creation.</li> <li><span class="release-changed"></span> Improved logging levels for Firebase Authentication to provide consistency across Firebase iOS products.</li> </ul> <h3 id="crash-reporting_4" data-text="Crash Reporting">Crash Reporting</h3> <ul> <li><span class="release-fixed"></span> Resolved open issues with Firebase Crash Reporting.</li> </ul> <h3 id="realtime-database_27" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-changed"></span> Realtime Database now purges the local cache if it can’t be loaded.</li> <li><span class="release-fixed"></span> Removed implicit number-type conversion for some integers that were represented as doubles after round-tripping through the server.</li> <li><span class="release-fixed"></span> Realtime Database no longer crashes when messages are sent to closed WebSocket connections.</li> </ul> <h3 id="dynamic-links_30" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-feature"></span> Added basic self-diagnostic method to identify issues in Firebase Dynamic Links configurations: <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebasedynamiclinks/api/reference/Classes/FIRDynamicLinks#performdiagnosticswithcompletion"><code translate="no" dir="ltr">FIRDynamicLinks performDiagnosticsWithCompletion</code></a>.</li> <li><span class="release-fixed"></span> Improved <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebasedynamiclinks/api/reference/Type-Definitions#/c:FDLURLComponents.h@T@FIRDynamicLinkShortenerCompletion"><code translate="no" dir="ltr">FIRDynamicLinkShortenerCompletion</code></a> warnings in the iOS Builder API.</li> </ul> <h3 id="instance_id_11" data-text="Instance ID">Instance ID</h3> <ul> <li><span class="release-fixed"></span> Token and app identifier are now accessible when the device is locked.</li> <li><span class="release-fixed"></span> InstanceID no longer crashes if the bundle identifier is nil.</li> <li><span class="release-fixed"></span> Fixed a small memory leak that occurred when fetching a new token.</li> <li><span class="release-changed"></span> Improved and simplified both the token storage system and the queuing system for token fetches and deletes.</li> </ul> <h3 id="cloud-messaging_1" data-text="Cloud Messaging">Cloud Messaging</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where setting <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebasemessaging/api/reference/Classes/FIRMessaging#shouldestablishdirectchannel"><code translate="no" dir="ltr">shouldEstablishDirectChannel</code></a> in a background thread was triggering a Main Thread Sanitizer warning in Xcode 9.</li> <li><span class="release-changed"></span> Included additional error logging for method swizzling.</li> </ul> <h3 id="remote-config_34" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-fixed"></span> Resolved crashes caused when an app’s main bundle ID is missing and added an error notification to alert developers of the issue.</li> </ul> <h3 id="storage_24" data-text="Storage">Storage</h3> <ul> <li><span class="release-fixed"></span> Fixed crash in <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebasestorage/api/reference/Classes#/c:objc(cs)FIRStorageDownloadTask"><code translate="no" dir="ltr">FIRStorageDownloadTask</code></a> that occurred whenever callbacks that are no longer active are invoked.</li> <li><span class="release-changed"></span> Added <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebasestorage/api/reference/Classes/FIRStorageMetadata#size"><code translate="no" dir="ltr">size</code></a> to the NSDictionary representation of <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebasestorage/api/reference/Classes/FIRStorageMetadata"><code translate="no" dir="ltr">FIRStorageMetadata</code></a>.</li> </ul> <h2 id="version_404_-_july_12_2017" data-text="Version 4.0.4 - July 12, 2017"><a name="4.0.4">Version 4.0.4 - July 12, 2017</a></h2> <ul> <li><span class="release-changed"></span> Optimized nanoPB dependency.</li> </ul> <h2 id="version_403_-_june_29_2017" data-text="Version 4.0.3 - June 29, 2017"><a name="4.0.3">Version 4.0.3 - June 29, 2017</a></h2> <ul> <li><span class="release-fixed"></span> Resolved warnings in Xcode 9.</li> </ul> <h3 id="admob_3" data-text="AdMob">AdMob</h3> <ul> <li><span class="release-changed"></span> For interstitial ad units served on platforms that opt-out of video ads, the interstitial ads now have an immediate close option, even if an MRAID creative calls the <code translate="no" dir="ltr">useCustomClose()</code> method.</li> <li><span class="release-changed"></span> Added text on the debug menu to indicate whether the creative preview or troubleshooting modes are active.</li> </ul> <h3 id="analytics_55" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Fixed issues with automatic screen reporting.</li> </ul> <h3 id="remote-config_35" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-changed"></span> A warning now appears if the <code translate="no" dir="ltr">plist</code> file you set default values from can’t be found.</li> </ul> <h2 id="version_402_-_june_08_2017" data-text="Version 4.0.2 - June 08, 2017"><a name="4.0.2">Version 4.0.2 - June 08, 2017</a></h2> <ul> <li><span class="release-fixed"></span> Fixed issues with Analytics and Performance Monitoring.</li> </ul> <h2 id="version_401_-_june_06_2017" data-text="Version 4.0.1 - June 06, 2017"><a name="4.0.1">Version 4.0.1 - June 06, 2017</a></h2> <ul> <li><span class="release-fixed"></span> Improved diagnostic messages for the Swift SDK.</li> </ul> <h3 id="performance-monitoring_39" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-fixed"></span> Removed dependency on farmhash to prevent symbol collisions.</li> <li><span class="release-changed"></span> If an exception is thrown when you create a Trace, the Trace’s name will now be printed.</li> </ul> <h2 id="version_400_-_may_17_2017" data-text="Version 4.0.0 - May 17, 2017"><a name="4.0.0">Version 4.0.0 - May 17, 2017</a></h2> <aside class="caution"> <strong>Breaking changes in Swift:</strong> Constants, protocols, classes, enums, and type definitions have been renamed in the Swift SDK <strong>across all Firebase products</strong>. To learn more, see the <a href="/web/20210128081714/https://firebase.google.com/docs/reference/swift/naming-migration-guide">migration guide</a>. </aside> <ul> <li><span class="release-changed"></span> <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebasecore/api/reference/Classes/FIROptions"><code translate="no" dir="ltr">FIROptions</code></a> now has a simpler constructor and mutable properties.</li> </ul> <h3 id="admob_4" data-text="AdMob">AdMob</h3> <ul> <li><span class="release-changed"></span> Removed the in-app purchase ad format.</li> <li><span class="release-changed"></span> Removed support for the ARMv7s architecture.</li> </ul> <h3 id="analytics_56" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where <code translate="no" dir="ltr">user_engagement</code> and <code translate="no" dir="ltr">session_start</code> events were logged when apps were launched in the background. This addresses the related issues with inflated user engagement and session metrics.</li> </ul> <h3 id="authentication_52" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-feature"></span> Added Phone Number Authentication. To learn more, see <a href="/web/20210128081714/https://firebase.google.com/docs/auth/ios/phone-auth">Authenticate with Firebase on iOS using a Phone Number</a>.</li> <li><span class="release-feature"></span> Added methods that return additional user data from identity providers if available when authenticating users.</li> <li><span class="release-feature"></span> Improved session management by automatically refreshing tokens when possible and signing out users if the session is invalid, for example, after the user changes their password or deletes their account from another device.</li> <li><span class="release-fixed"></span> Fixed an issue where reauthentication created new user accounts if the user credential is valid but does not match the currently signed-in user.</li> <li><span class="release-fixed"></span> Switched the <code translate="no" dir="ltr">ERROR_EMAIL_ALREADY_IN_USE</code> notification to <code translate="no" dir="ltr">ERROR_ACCOUNT_EXISTS_WITH_DIFFERENT_CREDENTIAL</code> when the email account used in the <code translate="no" dir="ltr">signInWithCredential()</code> method call is already in use by another account.</li> <li><span class="release-changed"></span> The <code translate="no" dir="ltr">FIREmailPasswordAuthProvider()</code> method is now deprecated in favor of the <code translate="no" dir="ltr">FIREmailAuthProvider()</code> method.</li> <li><span class="release-changed"></span> The <code translate="no" dir="ltr">getTokenWithCompletion()</code> method is now deprecated in favor of the <code translate="no" dir="ltr">getIDTokenWithCompletion()</code> method.</li> </ul> <h3 id="crash-reporting_5" data-text="Crash Reporting">Crash Reporting</h3> <ul> <li><span class="release-feature"></span> Added the ability to disable the Crash Reporting SDK by setting the <code translate="no" dir="ltr">crashCollectionEnabled</code> setting to <code translate="no" dir="ltr">NO</code> in your app's <code translate="no" dir="ltr">Info.plist</code> file.</li> </ul> <h3 id="realtime-database_28" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-changed"></span> Now using the external CocoaPod <a href="https://web.archive.org/web/20210128081714/https://cocoapods.org/pods/leveldb-library">LevelDB library</a> as a dependency.</li> </ul> <h3 id="dynamic-links_31" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-fixed"></span> Improved pending link retrieval process, especially when custom URL schemes are not set up correctly.</li> </ul> <h3 id="cloud-messaging_2" data-text="Cloud Messaging">Cloud Messaging</h3> <ul> <li><span class="release-feature"></span> Introduced an improved interface for Swift 3 developers.</li> <li><span class="release-feature"></span> Added new properties and methods to simplify FCM token management.</li> <li><span class="release-feature"></span> Added the <code translate="no" dir="ltr">APNSToken</code> property to simplify APNs token management.</li> <li><span class="release-feature"></span> Added new delegate method to be notified of FCM token refreshes.</li> <li><span class="release-feature"></span> Added new <code translate="no" dir="ltr">shouldEstablishDirectChannel</code> property to simplify connecting directly to FCM.</li> </ul> <h3 id="performance-monitoring_40" data-text="Performance Monitoring">Performance Monitoring</h3> <ul> <li><span class="release-feature"></span> The initial public beta release of the Firebase Performance Monitoring SDK for iOS is now available. To get started with this SDK, see <a href="/web/20210128081714/https://firebase.google.com/docs/perf-mon/get-started-ios">Get Started with Firebase Performance Monitoring for iOS</a>.</li> </ul> <h3 id="remote-config_36" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-fixed"></span> The error message that was generated when getting the InstanceID has been replaced by a debug message.</li> </ul> <h2 id="version_3170_-_april_25_2017" data-text="Version 3.17.0 - April 25, 2017"><a name="3.17.0">Version 3.17.0 - April 25, 2017</a></h2> <h3 id="analytics_57" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-feature"></span> Traffic sourced from <a href="//web.archive.org/web/20210128081714/https://searchads.apple.com/">Apple Search Ads</a> is now properly attributed.</li> </ul> <h3 id="app-indexing" data-text="App Indexing">App Indexing</h3> <ul> <li><span class="release-changed"></span> <code translate="no" dir="ltr">FIRAppIndexing</code> has been removed. To index public content in your iOS app for Google Search, follow the steps in the <a href="/web/20210128081714/https://firebase.google.com/docs/app-indexing/ios/app">Firebase App Indexing documentation for iOS</a>.</li> </ul> <h3 id="invites_2" data-text="Invites">Invites</h3> <ul> <li><span class="release-changed"></span> Removed <code translate="no" dir="ltr">setDescription</code> method from <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebaseinvites/api/reference/Protocols/FIRInviteBuilder"><code translate="no" dir="ltr">FIRInviteBuilder</code></a>.</li> </ul> <h3 id="dynamic-links_32" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-feature"></span> Developers can now create long and short Dynamic Links programmatically with the <a href="/web/20210128081714/https://firebase.google.com/docs/dynamic-links/ios/create">iOS Builder API</a>.</li> </ul> <h2 id="version_3160_-_april_12_2017" data-text="Version 3.16.0 - April 12, 2017"><a name="3.16.0">Version 3.16.0 - April 12, 2017</a></h2> <ul> <li><span class="release-fixed"></span> Warnings in Xcode 8.3 no longer appearing (see Analytics).</li> </ul> <h3 id="admob_5" data-text="AdMob">AdMob</h3> <ul> <li><span class="release-fixed"></span> Correct ad size is now forwarded to mediation networks for smart banner mediation.</li> </ul> <h3 id="analytics_58" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Compiler warnings about NanoPb in Xcode 8.3 are no longer appearing.</li> </ul> <h3 id="instance_id_12" data-text="Instance ID">Instance ID</h3> <ul> <li><span class="release-fixed"></span> Improved token-fetching logic.</li> <li><span class="release-fixed"></span> Improved warnings, error messages, and console logging, including initialization error message.</li> </ul> <h3 id="invites_3" data-text="Invites">Invites</h3> <ul> <li><span class="release-fixed"></span> Improved console logging.</li> </ul> <h3 id="dynamic-links_33" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-fixed"></span> Improved Xcode warnings.</li> <li><span class="release-changed"></span> Added description for <code translate="no" dir="ltr">FIRDynamicLink</code> object.</li> </ul> <h3 id="cloud-messaging_3" data-text="Cloud Messaging">Cloud Messaging</h3> <ul> <li><span class="release-fixed"></span> Custom <code translate="no" dir="ltr">UNNotificationCenterDelegates</code> are swizzled properly when swizzling is enabled.</li> <li><span class="release-fixed"></span> Resolved issue in iOS 8.0 and 8.1 with scheduled notifications.</li> <li><span class="release-fixed"></span> Improved console logging.</li> </ul> <h2 id="version_3150_-_march_16_2017" data-text="Version 3.15.0 - March 16, 2017"><a name="3.15.0">Version 3.15.0 - March 16, 2017</a></h2> <ul> <li><span class="release-changed"></span> Removed dependency on C++ libraries for app builds.</li> </ul> <h3 id="admob_6" data-text="AdMob">AdMob</h3> <ul> <li><span class="release-feature"></span> New <code translate="no" dir="ltr">openInlineBrowser</code> method in <code translate="no" dir="ltr">google_mobile_app_ads.js</code> opens URLs in <code translate="no" dir="ltr">SFSafariViewController</code>.</li> <li><span class="release-feature"></span> New <code translate="no" dir="ltr">GADAudioVideoManagerDelegate</code> provides notifications on start and pause/stop in audio and video ad playback.</li> </ul> <h3 id="invites_4" data-text="Invites">Invites</h3> <ul> <li><span class="release-fixed"></span> Fixed a bundling issue that caused validation errors during submission to the App Store.</li> </ul> <h3 id="dynamic-links_34" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-fixed"></span> Resolved issue causing crashes on app launch after installation for subset of users.</li> </ul> <h2 id="version_3140_-_february_23_2017" data-text="Version 3.14.0 - February 23, 2017"><a name="3.14.0">Version 3.14.0 - February 23, 2017</a></h2> <h3 id="admob_7" data-text="AdMob">AdMob</h3> <ul> <li><span class="release-feature"></span> Added <code translate="no" dir="ltr">play</code>, <code translate="no" dir="ltr">pause</code> and <code translate="no" dir="ltr">setMute</code> methods to <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/googlemobileads/api/reference/Classes/GADVideoController"><code translate="no" dir="ltr">GADVideoController</code></a> to control video playback.</li> <li><span class="release-feature"></span> Added new delegate methods to <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/googlemobileads/api/reference/Protocols/GADVideoControllerDelegate"><code translate="no" dir="ltr">GADVideoControllerDelegate</code></a> to start, pause, end, mute and unmute video content.</li> <li><span class="release-changed"></span> Added support for rewarded video mediation adapters to opt into early initialization before an ad request is made.</li> </ul> <h3 id="remote-config_37" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-fixed"></span> Remote Config gets config results from the default <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebasecore/api/reference/Classes/FIRApp"><code translate="no" dir="ltr">FIRApp</code></a> configuration when multiple projects are configured.</li> <li><span class="release-fixed"></span> Existing users no longer receive empty config results.</li> </ul> <h2 id="february_15_2017" data-text="February 15, 2017">February 15, 2017</h2> <ul> <li><span class="release-feature"></span> Added the <a href="/web/20210128081714/https://firebase.google.com/docs/cloud-messaging/http-server-ref#downstream-http-messages-json"><code translate="no" dir="ltr">mutable_content</code></a> field to FCM API. When set to <code translate="no" dir="ltr">true</code>, a notification message can be updated on an iOS 10+ client before it is presented to the user using the Notification Service app extension. The <code translate="no" dir="ltr">mutable_content</code>field in the FCM API corresponds to the <code translate="no" dir="ltr">mutable-content</code> APNs field.</li> </ul> <h2 id="version_3130_-_february_14_2017" data-text="Version 3.13.0 - February 14, 2017"><a name="3.13.0">Version 3.13.0 - February 14, 2017</a></h2> <ul> <li><span class="release-feature"></span> Added the <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebasecore/api/reference/Classes/FIRConfiguration#-setloggerlevel"><code translate="no" dir="ltr">setLoggerLevel</code></a> method to the <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebasecore/api/reference/Classes/FIRConfiguration"><code translate="no" dir="ltr">FIRConfiguration</code></a> class so you can specify the verbosity of Firebase messages logged to the Xcode console.</li> </ul> <h3 id="analytics_59" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-feature"></span> Added the ability to log events used to supply referral details of a re-engagement campaign to the <code translate="no" dir="ltr">FIREventNames</code> header and related parameters to the <code translate="no" dir="ltr">FIRParameterNames</code> header.</li> <li><span class="release-feature"></span> Added the ability to get app instance IDs using the <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebaseanalytics/api/reference/Classes/FIRAnalytics#appinstanceid"><code translate="no" dir="ltr">+appInstanceID</code></a> method in the <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebaseanalytics/api/reference/Classes/FIRAnalytics"><code translate="no" dir="ltr">FIRAnalytics</code></a> class.</li> </ul> <h3 id="authentication_53" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Replaced <code translate="no" dir="ltr">InternalError</code> with more descriptive error codes in <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebaseauth/api/reference/Classes#/c:objc(cs)FIRAuthErrors"><code translate="no" dir="ltr">FIRAuth</code></a> class: <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebaseauth/api/reference/Enums/FIRAuthErrorCode#/c:@E@FIRAuthErrorCode@FIRAuthErrorCodeInvalidMessagePayload"><code translate="no" dir="ltr">InvalidMessagePayload</code></a>, <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebaseauth/api/reference/Enums/FIRAuthErrorCode#/c:@E@FIRAuthErrorCode@FIRAuthErrorCodeInvalidSender"><code translate="no" dir="ltr">InvalidSender</code></a>, and <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebaseauth/api/reference/Enums/FIRAuthErrorCode#/c:@E@FIRAuthErrorCode@FIRAuthErrorCodeInvalidRecipientEmail"><code translate="no" dir="ltr">InvalidRecipientEmail</code></a>.</li> </ul> <h3 id="realtime-database_29" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-changed"></span> Added logging when an <code translate="no" dir="ltr">observeEvent</code> call is rejected due to security rules.</li> </ul> <h3 id="storage_25" data-text="Storage">Storage</h3> <ul> <li><span class="release-fixed"></span> Fixed a crash that occurred when user-provided callbacks had a value of <code translate="no" dir="ltr">nil</code>.</li> <li><span class="release-fixed"></span> Improved upload performance on devices with intermittent connectivity.</li> </ul> <h3 id="dynamic-links_35" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-fixed"></span> Long Dynamic Links can now track Google Analytics campaign ("UTM") parameters for Google Analytics for Firebase events, including <code translate="no" dir="ltr">dynamic_link_first_open</code> and <code translate="no" dir="ltr">dynamic_link_app_open</code>.</li> </ul> <h2 id="version_3120_-_january_31_2017" data-text="Version 3.12.0 - January 31, 2017"><a name="3.12.0">Version 3.12.0 - January 31, 2017</a></h2> <h3 id="admob_8" data-text="AdMob">AdMob</h3> <ul> <li><span class="release-feature"></span> Added the <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/googlemobileads/api/reference/Protocols/GADNativeAdDelegate#-nativeaddidrecordimpression"><code translate="no" dir="ltr">nativeAdDidRecordImpression</code></a> and <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/googlemobileads/api/reference/Protocols/GADNativeAdDelegate#-nativeaddidrecordclick"><code translate="no" dir="ltr">nativeAdDidRecordClick</code></a> methods to <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/googlemobileads/api/reference/Protocols/GADNativeAdDelegate"><code translate="no" dir="ltr">GADNativeAdDelegate</code></a>.</li> </ul> <h3 id="crash-reporting_6" data-text="Crash Reporting">Crash Reporting</h3> <ul> <li><span class="release-fixed"></span> Improvements to the automation of symbol file uploads.</li> <li><span class="release-fixed"></span> Adjusted the verbosity of messages logged to the console.</li> </ul> <h3 id="dynamic-links_36" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-fixed"></span> Improved the reliability of Dynamic Links when opened on iOS 9 and iOS 10 in Facebook, Facebook Messenger, Twitter, Instagram, and Gmail.</li> </ul> <h2 id="sdk_version_3111_-_january_17_2017" data-text="SDK Version 3.11.1 - January 17, 2017"><a name="3.11.1">SDK Version 3.11.1 - January 17, 2017</a></h2> <ul> <li><span class="release-changed"></span> Reduced the verbosity of events logged by Firebase when using the Xcode debugger.</li> </ul> <h3 id="remote-config_38" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-fixed"></span> When <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebaseremoteconfig/api/reference/Classes/FIRRemoteConfig#-activatefetched"><code translate="no" dir="ltr">activateFetched</code></a> is called when an app starts, it no longer removes cached fetch results.</li> <li><span class="release-fixed"></span> If an app makes multiple fetch requests without calling <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebaseremoteconfig/api/reference/Classes/FIRRemoteConfig#-activatefetched"><code translate="no" dir="ltr">activateFetched</code></a> between requests, fetch requests will now cache recent updates from the Remote Config service.</li> </ul> <h2 id="sdk_version_3110_-_december_13_2016" data-text="SDK Version 3.11.0 - December 13, 2016"><a name="3.11.0">SDK Version 3.11.0 - December 13, 2016</a></h2> <ul> <li><span class="release-feature"></span> Adds the ability to initialize <code translate="no" dir="ltr">FIRNetwork</code> objects with either a default or custom reachability host.</li> <li><span class="release-changed"></span> Adds names to background tasks, so they can be more easily debugged in console logs.</li> <li><span class="release-fixed"></span> Properly terminates background logging tasks when the network is slow or unavailable.</li> </ul> <h3 id="admob_9" data-text="AdMob">AdMob</h3> <ul> <li><span class="release-feature"></span> Added a video controller to <code translate="no" dir="ltr">DFPBannerView</code> objects.</li> <li><span class="release-changed"></span> The <code translate="no" dir="ltr">GADNativeExpressAdView</code>, <code translate="no" dir="ltr">GADNativeContentAd</code>, <code translate="no" dir="ltr">GADNativeAppInstallAd</code> and <code translate="no" dir="ltr">GADNativeCustomTemplateAd</code> video-controller properties are now <code translate="no" dir="ltr">nonnull</code>.</li> </ul> <h3 id="authentication_54" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-feature"></span> Adds four new methods that you can use to handle action codes that were delivered to users by email, such as verifying an email address or resetting a password: <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebaseauth/api/reference/Classes/FIRAuth#/c:objc(cs)FIRAuth(im)applyActionCode:completion:"><code translate="no" dir="ltr">applyActionCode</code></a>, <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebaseauth/api/reference/Classes/FIRAuth#/c:objc(cs)FIRAuth(im)checkActionCode:completion:"><code translate="no" dir="ltr">checkActionCode</code></a>, <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebaseauth/api/reference/Classes/FIRAuth#/c:objc(cs)FIRAuth(im)confirmPasswordResetWithCode:newPassword:completion:"><code translate="no" dir="ltr">confirmPasswordReset</code></a>, and <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebaseauth/api/reference/Classes/FIRAuth#/c:objc(cs)FIRAuth(im)verifyPasswordResetCode:completion:"><code translate="no" dir="ltr">verifyPasswordResetCode</code></a>.</li> <li><span class="release-changed"></span> With this update, the Firebase SDK no longer applies the keychain workaround introduced in v3.0.5 for the iOS 10.2 simulator. This workaround is not needed because the underlying issue in the simulator has been fixed.</li> <li><span class="release-fixed"></span> Fixes nullability compilation warnings that were raised when using Swift.</li> <li><span class="release-fixed"></span> Improves reporting for errors caused by a missing password.</li> </ul> <h2 id="sdk_version_3100_-_november_21_2016" data-text="SDK Version 3.10.0 - November 21, 2016"><a name="3.10.0">SDK Version 3.10.0 - November 21, 2016</a></h2> <h3 id="admob_10" data-text="AdMob">AdMob</h3> <ul> <li><span class="release-changed"></span> In preparation for App Transport Security changes in 2017, apps should use this version of the SDK when building apps for iOS 10, and include both the <code translate="no" dir="ltr">NSAllowsArbitraryLoadsInWebContent</code> and <code translate="no" dir="ltr">NSAllowsArbitraryLoads</code> exceptions.</li> <li><p><span class="release-changed"></span> Added the <code translate="no" dir="ltr">GADMediaView</code> property to the <code translate="no" dir="ltr">GADNativeContentAd</code> and <code translate="no" dir="ltr">GADNativeCustomTemplateAd</code> classes.</p> <h3 id="analytics_60" data-text="Analytics">Analytics</h3></li> <li><p><span class="release-changed"></span> Increased the maximum length of event names and parameter names to 40 characters, and the maximum length of string parameter values to 100 characters.</p></li> </ul> <h3 id="crash-reporting_7" data-text="Crash Reporting">Crash Reporting</h3> <ul> <li><span class="release-fixed"></span> Improved the automatic upload of symbol files.</li> </ul> <h3 id="dynamic-links_37" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-changed"></span> Removed a dependency on the <a href="https://web.archive.org/web/20210128081714/https://developer.apple.com/reference/coremotion">Core Motion framework</a>.</li> </ul> <h3 id="invites_5" data-text="Invites">Invites</h3> <ul> <li><span class="release-changed"></span> Removed a dependency on the <a href="https://web.archive.org/web/20210128081714/https://developer.apple.com/reference/coremotion">Core Motion framework</a>.</li> </ul> <h3 id="storage_26" data-text="Storage">Storage</h3> <ul> <li><span class="release-changed"></span> Snapshot data is now always returned from the requested snapshot, instead of the most recent snapshot.</li> <li><span class="release-fixed"></span> Improvements to the ability to pause downloads.</li> </ul> <h3 id="realtime-database_30" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-changed"></span> Unified the logging format.</li> </ul> <h2 id="sdk_version_390_-_november_3_2016" data-text="SDK Version 3.9.0 - November 3, 2016"><a name="3.9.0">SDK Version 3.9.0 - November 3, 2016</a></h2> <h3 id="admob_11" data-text="AdMob">AdMob</h3> <ul> <li><span class="release-changed"></span> Changes to the <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/googlemobileads/api/reference/Constants#/c:@kGADAdSizeFluid"><code translate="no" dir="ltr">kGADAdSizeFluid</code></a> constant that determines the width of a banner ad no longer change the frame size of a banner ad.</li> </ul> <h2 id="sdk_version_380_-_october_24_2016" data-text="SDK Version 3.8.0 - October 24, 2016"><a name="3.8.0">SDK Version 3.8.0 - October 24, 2016</a></h2> <ul> <li><span class="release-feature"></span> The Firebase SDK for iOS <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebaseanalytics/api/reference/Classes">API Reference</a> now includes Swift 3.0 syntax, along with Objective-C syntax.</li> </ul> <h3 id="analytics_61" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-feature"></span> Added screen tracking support. Each app's current <code translate="no" dir="ltr">UIViewController</code> is automatically tracked. The current screen is tracked with the <code translate="no" dir="ltr">firebase_screen_class</code> parameter with every logged event, which provides valuable context. In addition to automatic screen tracking, you can manually track screens using the <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebaseanalytics/api/reference/Classes/FIRAnalytics#setscreennamescreenclass">FIRAnalytics#setScreenName:screenClass</a> method. This adds the <code translate="no" dir="ltr">firebase_screen</code> parameter to every event logged while those screens are visible to app users.</li> </ul> <h3 id="realtime-database_31" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-feature"></span> Reintroduced the <code translate="no" dir="ltr">persistenceCacheSizeBytes</code> setting (previously available in the 2.x SDK) to control the disk size of the Firebase offline cache.</li> <li><span class="release-fixed"></span> Use of the <code translate="no" dir="ltr">updateChildValues()</code> method now only cancels transactions that are directly included in the updated paths (not transactions in adjacent paths). For example, an update at <code translate="no" dir="ltr">/move</code> for a child node <code translate="no" dir="ltr">walk</code> will cancel transactions at <code translate="no" dir="ltr">/</code>, <code translate="no" dir="ltr">/move</code>, and <code translate="no" dir="ltr">/move/walk</code> and in any child nodes under <code translate="no" dir="ltr">/move/walk</code>. But, it will no longer cancel transactions at sibling nodes, such as <code translate="no" dir="ltr">/move/run</code>.</li> </ul> <h3 id="storage_27" data-text="Storage">Storage</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that was preventing the upload of files with filenames that contain the plus (<code translate="no" dir="ltr">+</code>) character.</li> <li><span class="release-fixed"></span> Fixed an issue that was causing timeouts for file uploads and downloads to behave incorrectly.</li> </ul> <h3 id="crash-reporting_8" data-text="Crash Reporting">Crash Reporting</h3> <ul> <li><span class="release-feature"></span> Added support for Swift 2 and Swift 3.</li> <li><span class="release-feature"></span> Analytics events are now sent to the Crash Reporting service as part of error reports.</li> </ul> <h3 id="dynamic-links_38" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-fixed"></span> Fixed a minor issue with IPv6.</li> </ul> <h3 id="invites_6" data-text="Invites">Invites</h3> <ul> <li><span class="release-fixed"></span> Fixed a minor issue with IPv6.</li> </ul> <h3 id="admob_12" data-text="AdMob">AdMob</h3> <ul> <li><span class="release-feature"></span> Added a dependency on the <a href="https://web.archive.org/web/20210128081714/https://developer.apple.com/reference/javascriptcore"><code translate="no" dir="ltr">JavaScriptCore</code></a> framework.</li> </ul> <h2 id="sdk_version_371_-_october_6_2016" data-text="SDK Version 3.7.1 - October 6, 2016"><a name="3.7.1">SDK Version 3.7.1 - October 6, 2016</a></h2> <h3 id="analytics_62" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that causes a crash for some apps that call <code translate="no" dir="ltr">FirebaseAnalytics</code>. Stack traces show that the crash occurs in <code translate="no" dir="ltr">-[FIRAAlarm cancel]</code>.</li> </ul> <h2 id="sdk_version_370_-_october_3_2016" data-text="SDK Version 3.7.0 - October 3, 2016"><a name="3.7.0">SDK Version 3.7.0 - October 3, 2016</a></h2> <h3 id="analytics_63" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-changed"></span> Analytics no longer includes the <a href="https://web.archive.org/web/20210128081714/https://developer.apple.com/reference/adsupport">AdSupport framework</a>. To include this framework in your app, you must add it. Note that user properties such as Age, Gender and Interests require this framework.</li> </ul> <h3 id="app-indexing_1" data-text="App Indexing">App Indexing</h3> <ul> <li><span class="release-changed"></span> App Indexing has been deprecated in light of recent changes to the app review guidelines for iOS. To index your app for Google search, implement <a href="https://web.archive.org/web/20210128081714/https://developer.apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html">Universal Links</a>.</li> </ul> <h3 id="admob_13" data-text="AdMob">AdMob</h3> <ul> <li><span class="release-changed"></span> Added the <code translate="no" dir="ltr">GADNativeAdViewAdOptions</code> method to <code translate="no" dir="ltr">GoogleMobileAds</code> to specify the location of AdChoices in native ads.</li> <li><span class="release-fixed"></span> Fixed a bug that causes a crash for some apps that call <code translate="no" dir="ltr">GoogleMobileAds</code>. Stack traces show that the crash occurs in <code translate="no" dir="ltr">GADStringFromCGFloat</code>.</li> </ul> <h2 id="sdk_version_360_-_september_14_2016" data-text="SDK Version 3.6.0 - September 14, 2016"><a name="3.6.0">SDK Version 3.6.0 - September 14, 2016</a></h2> <h3 id="analytics_64" data-text="Analytics">Analytics</h3> <ul> <li><p><span class="release-fixed"></span> Existing users who update to Analytics-enabled versions of an app are no longer included in <code translate="no" dir="ltr">first_open</code> metrics. This correction could cause a drop in <code translate="no" dir="ltr">first_open</code> metrics.</p></li> <li><p><span class="release-changed"></span> Conversion events are now uploaded within seconds of being logged.</p></li> <li><p><span class="release-changed"></span> Removed the feature that attributed Ads app conversions using the <a href="https://web.archive.org/web/20210128081714/https://developer.apple.com/library/ios/documentation/SafariServices/Reference/SFSafariViewController_Ref/"><code translate="no" dir="ltr">SFSafariViewController</code></a> class.</p></li> </ul> <h3 id="cloud-messaging_4" data-text="Cloud Messaging">Cloud Messaging</h3> <ul> <li><span class="release-feature"></span> Added a new API method, <code translate="no" dir="ltr">-applicationReceivedRemoteMessage:</code> to allow apps to receive data messages from FCM on devices running iOS 10 and greater.</li> </ul> <h3 id="authentication_55" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Improved the behavior of Firebase Authentication when testing apps using the iOS 10 simulator.</li> <li><span class="release-fixed"></span> Fixed an issue with error reporting when a user provides an invalid email address while signing in with an email address and password.</li> </ul> <h3 id="realtime-database_32" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue that caused transactions to fail when executed before the SDK connects to the Firebase Realtime Database service.</li> <li><span class="release-fixed"></span> Fixed a race condition where performing a transaction or adding an event observer immediately after connecting to the Firebase Realtime Database service could cause completion blocks for other operations to not be executed.</li> <li><span class="release-fixed"></span> Fixed an issue affecting apps that use offline disk persistence where large integer values could lose precision after an app restart.</li> </ul> <h3 id="remote-config_39" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-fixed"></span> Fixed issues that caused a crash when an app attempts multiple concurrent fetch requests.</li> </ul> <h3 id="dynamic-links_39" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-feature"></span> Analytics events are now automatically logged when users open your app, open your app from a Dynamic Link, and open your app for the first time from a Dynamic Link.</li> <li><span class="release-changed"></span> Dynamic Links no longer use the <a href="https://web.archive.org/web/20210128081714/https://developer.apple.com/library/ios/documentation/SafariServices/Reference/SFSafariViewController_Ref/"><code translate="no" dir="ltr">SFSafariViewController</code></a> class.</li> <li><span class="release-changed"></span> Dynamic Links no longer has a dependency on the <a href="https://web.archive.org/web/20210128081714/https://developer.apple.com/reference/corelocation">Core Location</a> framework.</li> </ul> <h3 id="admob_14" data-text="AdMob">AdMob</h3> <ul> <li><span class="release-changed"></span> AdMob no longer has a dependency on the <a href="https://web.archive.org/web/20210128081714/https://developer.apple.com/reference/corebluetooth">Core Bluetooth</a>, <a href="https://web.archive.org/web/20210128081714/https://developer.apple.com/reference/eventkit">EventKit</a>, and <a href="https://web.archive.org/web/20210128081714/https://developer.apple.com/reference/eventkitui">EventKitUI</a> frameworks. Apps no longer need to provide <code translate="no" dir="ltr">NSBluetoothPeripheralUsageDescription</code> and <code translate="no" dir="ltr">NSCalendarsUsageDescription</code> keys in their <code translate="no" dir="ltr">Info.plist</code> file.</li> <li><span class="release-changed"></span> Removed Mobile Rich-media Ad Interface Definitions (MRAID) 2.0 support for calendars and storing pictures.</li> </ul> <h2 id="sdk_version_352_-_august_26_2016" data-text="SDK Version 3.5.2 - August 26, 2016"><a name="3.5.2">SDK Version 3.5.2 - August 26, 2016</a></h2> <h3 id="admob_15" data-text="AdMob">AdMob</h3> <ul> <li><span class="release-fixed"></span> Initial improvements toward fixing a bug that causes a crash for some apps that call <code translate="no" dir="ltr">GoogleMobileAds</code>. Stack traces show that the crash occurs in <code translate="no" dir="ltr">GADStringFromCGFloat</code>.</li> </ul> <h2 id="sdk_version_351_-_august_23_2016" data-text="SDK Version 3.5.1 - August 23, 2016"><a name="3.5.1">SDK Version 3.5.1 - August 23, 2016</a></h2> <h3 id="analytics_65" data-text="Analytics">Analytics</h3> <ul> <li><p><span class="release-feature"></span> Added support for Analytics on iOS 10.</p></li> <li><p><span class="release-feature"></span> Added support for attributing AdWords app conversions from search and display web clicks on iOS 10.</p></li> <li><p><span class="release-feature"></span> Added a feature to validate the authenticity of in-app purchase events before they are reported by Google Analytics.</p></li> </ul> <h3 id="storage_28" data-text="Storage">Storage</h3> <ul> <li><span class="release-fixed"></span> Fixed issues with iOS 7 compatibility.</li> <li><span class="release-fixed"></span> Fixed an issue that prevented <code translate="no" dir="ltr">observeStatus:FIRStorageUploadTask</code> from correctly reporting progress when uploading a file.</li> </ul> <h3 id="app-indexing_2" data-text="App Indexing">App Indexing</h3> <ul> <li><span class="release-feature"></span> Added support for App Indexing on iOS 10. App Indexing still requires iOS 9 or higher.</li> </ul> <h3 id="dynamic-links_40" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-feature"></span> Added support for Dynamic Links on iOS 10.</li> </ul> <h3 id="admob_16" data-text="AdMob">AdMob</h3> <ul> <li><span class="release-feature"></span> When associating native ads with a view, the view’s <code translate="no" dir="ltr">userInteractionEnabled</code> property is changed to <code translate="no" dir="ltr">NO</code> to match the value expected by the SDK.</li> <li><span class="release-changed"></span> The Google Mobile Ads SDK now has a dependency on <a href="https://web.archive.org/web/20210128081714/https://developer.apple.com/reference/mobilecoreservices">MobileCoreServices</a>.</li> <li><span class="release-feature"></span> Added the <code translate="no" dir="ltr">-[GADMobileAds isSDKVersionAtLeastMajor:minor:patch:]</code> API method to allow ad networks to determine if a device is running at least a specified minimum version (<code translate="no" dir="ltr">major.minor.patch</code>) of the Google Mobile Ads SDK.</li> </ul> <h2 id="sdk_version_340_-_august_1_2016" data-text="SDK Version 3.4.0 - August 1, 2016"><a name="3.4.0">SDK Version 3.4.0 - August 1, 2016</a></h2> <h3 id="authentication_56" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug that causes a race condition that could crash an app running on iOS 9 with an exception from <code translate="no" dir="ltr">NSURLSession</code>.</li> </ul> <h3 id="cloud-messaging_5" data-text="Cloud Messaging">Cloud Messaging</h3> <aside class="note"><strong>Note:</strong><span> The Notifications composer uses the Cloud Messaging SDK.</span></aside> <ul> <li><span class="release-changed"></span> <code translate="no" dir="ltr">plist</code> files used by <code translate="no" dir="ltr">FIRMessaging</code> are now stored in an <code translate="no" dir="ltr">ApplicationSupport</code> directory.</li> </ul> <h3 id="remote-config_40" data-text="Remote Config">Remote Config</h3> <ul> <li><span class="release-fixed"></span> Fixed an issue where some attempts to fetch parameter values can cause a crash due to a JSON serialization failure.</li> <li><span class="release-feature"></span> Added the <code translate="no" dir="ltr">allKeysWithPrefix:</code> API method to allow developers to find parameter keys based on a key prefix.</li> </ul> <h3 id="crash-reporting_9" data-text="Crash Reporting">Crash Reporting</h3> <ul> <li><span class="release-fixed"></span> Fixed an error that occurred when building an app that uses a JSON file.</li> <li><span class="release-fixed"></span> Minidumps are now compressed separately to avoid automatically unzipping during processing.</li> <li><span class="release-fixed"></span> Fixed an issue that prevented batch-upload from working with files that contain non-ASCII characters.</li> </ul> <h3 id="app-indexing_3" data-text="App Indexing">App Indexing</h3> <ul> <li><span class="release-feature"></span> Bitcode support is now available for the App Indexing SDK for iOS.</li> </ul> <h3 id="dynamic-links_41" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-fixed"></span> Fixed a bug that caused crashes when the <code translate="no" dir="ltr">resolveLink()</code> API returns a non-JSON object.</li> </ul> <h3 id="admob_17" data-text="AdMob">AdMob</h3> <ul> <li><span class="release-feature"></span> Enhanced the quality of ad rendering with the addition of framework dependencies for GLKit, OpenGLES, CoreMotion, and CoreVideo.</li> <li><span class="release-feature"></span> Added the <code translate="no" dir="ltr">+[GADMobileAds configureWithApplicationID:]</code> method. AdMob publishers should call this method with their application ID to initialize AdMob.</li> <li><span class="release-fixed"></span> Users of DoubleClick for Publishers (DFP) who use SDK mediation will no longer see the following warning: <code translate="no" dir="ltr">mediated ad type is unknown or invalid</code></li> </ul> <h2 id="sdk_version_330_-_june_29_2016" data-text="SDK Version 3.3.0 - June 29, 2016"><a name="3.3.0">SDK Version 3.3.0 - June 29, 2016</a></h2> <h3 id="analytics_66" data-text="Analytics">Analytics</h3> <ul> <li><span class="release-feature"></span> You can now attribute AdWords app conversions from search and display web clicks on Safari using <a href="https://web.archive.org/web/20210128081714/https://developer.apple.com/library/ios/documentation/SafariServices/Reference/SFSafariViewController_Ref/"><code translate="no" dir="ltr">SFSafariViewController</code></a>, an iOS API that supports data sharing between apps and the Safari browser on the same device running iOS 9.0 or higher. This lets you measure app installs and in-app actions from app promotion ads on mobile websites. This functionality is included in the Firebase SDK, and is enabled without any changes to your app's source code.</li> </ul> <h3 id="authentication_57" data-text="Authentication">Authentication</h3> <ul> <li><span class="release-changed"></span> The bundle ID custom scheme is no longer required to support Google Sign-In.</li> <li><span class="release-fixed"></span> Minor improvements to error handling and error messages.</li> <li><span class="release-fixed"></span> User anonymity is now handled the same way for iOS as it is for other platforms.</li> </ul> <h3 id="realtime-database_33" data-text="Realtime Database">Realtime Database</h3> <ul> <li><span class="release-fixed"></span> Fixed a rare crash in <code translate="no" dir="ltr">[FSRWebSocket stream:handleEvent:]</code>.</li> <li><span class="release-fixed"></span> Improved error messages for some common mistakes configuring <code translate="no" dir="ltr">FIRApp</code>.</li> <li><span class="release-changed"></span> Firebase now logs a warning instead of throwing an exception when your database has exceeded its concurrency limit.</li> </ul> <h3 id="cloud-messaging_6" data-text="Cloud Messaging">Cloud Messaging</h3> <ul> <li><span class="release-fixed"></span> Cloud Messaging no longer registers for remote notifications on startup.</li> </ul> <h3 id="storage_29" data-text="Storage">Storage</h3> <ul> <li><span class="release-fixed"></span> A new <code translate="no" dir="ltr">QUOTA_EXCEEDED</code> error now appears when plan limits are exceeded.</li> <li><span class="release-feature"></span> Added a <code translate="no" dir="ltr">state</code> property to <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebasestorage/interface_f_i_r_storage_task_snapshot"><code translate="no" dir="ltr">FIRStorageTaskSnapshot</code></a>.</li> <li><span class="release-fixed"></span> Fixed handling of <code translate="no" dir="ltr">timeCreated</code> and <code translate="no" dir="ltr">updated</code> properties in <a href="/web/20210128081714/https://firebase.google.com/docs/reference/ios/firebasestorage/interface_f_i_r_storage_metadata"><code translate="no" dir="ltr">FIRStorageMetadata</code></a>.</li> </ul> <h3 id="the-notifications-composer" data-text="The Notifications composer">The Notifications composer</h3> <ul> <li><span class="release-feature"></span> You can now add more than three custom data fields when sending a notification. A notification should not exceed 4KB total, including message text, custom data, and any advanced options.</li> <li><span class="release-feature"></span> Reduced the refresh interval for app versions and language lists.</li> <li><span class="release-feature"></span> The conversion event counts in the Notifications composer Google Analytics funnel view now show the number of users who have triggered the conversion event at least once. Previously, it showed the raw number of triggered conversion events.</li> </ul> <h3 id="dynamic-links_42" data-text="Dynamic Links">Dynamic Links</h3> <ul> <li><span class="release-feature"></span> Google Analytics now logs all <strong>app open</strong> events driven from user clicks on Dynamic Links.</li> <li><span class="release-fixed"></span> Including Dynamic Links in your app now adds less than 70K to your app's <code translate="no" dir="ltr">.ipa</code> file, a reduction of nearly 2 MB from the previous release.</li> </ul> </div> </div> <devsite-page-rating position="footer" selected-rating="0" hover-rating-star="0"> </devsite-page-rating> <devsite-feedback position="footer" project-name="Firebase" product-id="719752" bucket="" context="" version="t-devsite-webserver-20210121-r02-rc00.432632345079321188" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="footer" project-feedback-url="https://firebase.google.com/support/contact/bugs-features/" project-icon="https://firebase.google.com/_static/firebase/images/logo.png" project-support-url="https://firebase.google.com/support/" feedback-type="star-rating"> <button> Send feedback </button> </devsite-feedback> </article> <devsite-content-footer class="nocontent"> <p>Except as otherwise noted, the content of this page is licensed under the <a href="https://web.archive.org/web/20210128081714/https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="https://web.archive.org/web/20210128081714/https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://web.archive.org/web/20210128081714/https://developers.google.com/site-policies">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p> <p>Last updated 2021-01-27 UTC.</p> </devsite-content-footer> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Learn</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/web/20210128081714/https://firebase.google.com/docs/guides/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Guides </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20210128081714/https://firebase.google.com/docs/reference/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Reference </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20210128081714/https://firebase.google.com/docs/samples/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> Samples </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20210128081714/https://firebase.google.com/docs/libraries/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Libraries </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210128081714/https://github.com/firebase/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> GitHub </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Stay connected</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210128081714/https://firebase.googleblog.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20210128081714/https://firebase.google.com/summit/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Firebase Summit </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210128081714/https://www.facebook.com/Firebase/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> Facebook </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210128081714/https://twitter.com/Firebase" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Twitter </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210128081714/https://www.youtube.com/user/Firebase" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> YouTube </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Support</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/web/20210128081714/https://firebase.google.com/support/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Contact support </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210128081714/https://stackoverflow.com/questions/tagged/firebase" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Stack Overflow </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210128081714/https://firebase.community/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> Slack community </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210128081714/https://groups.google.com/forum/#!forum/firebase-talk" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Google group </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20210128081714/https://firebase.google.com/support/releases" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> Release notes </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20210128081714/https://firebase.google.com/support/faq/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)"> FAQs </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-sites" aria-label="Other Google Developers websites"> <a href="https://web.archive.org/web/20210128081714/https://developers.google.com/" class="devsite-footer-sites-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Developers Link"> <img class="devsite-footer-sites-logo" src="https://web.archive.org/web/20210128081714im_/https://www.gstatic.com/devrel-devsite/prod/vc5f5097f7e98f45082257ed44f785e23f8176f944afb30dfad7aee218957f132/firebase/images/lockup-developers.svg" loading="lazy" alt="Google Developers"> </a> <ul class="devsite-footer-sites-list"> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20210128081714/https://developer.android.com/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Android Link"> Android </a> </li> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20210128081714/https://developer.chrome.com/home" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Chrome Link"> Chrome </a> </li> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20210128081714/https://firebase.google.com/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Firebase Link"> Firebase </a> </li> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20210128081714/https://cloud.google.com/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Cloud Platform Link"> Google Cloud Platform </a> </li> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20210128081714/https://developers.google.com/products/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer All products Link"> All products </a> </li> </ul> </nav> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/web/20210128081714/https://firebase.google.com/terms/" data-category="Site-Wide Custom Events" data-label="Footer Terms link"> Terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//web.archive.org/web/20210128081714/https://policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link"> Privacy </a> </li> </ul> <devsite-language-selector> <devsite-select class="devsite-language-selector-menu"> <select aria-label="Select your language preference." class="devsite-language-selector-select" name="language" track-name="click" track-type="languageSelector"> <option>Language</option> <option value="en" lang="en" track-metadata-original-language="en" track-metadata-selected-language="en" track-name="changed" track-type="languageSelector"> English </option> <option value="id" lang="id" track-metadata-original-language="en" track-metadata-selected-language="id" track-name="changed" track-type="languageSelector"> Bahasa Indonesia </option> <option value="es_419" lang="es_419" track-metadata-original-language="en" track-metadata-selected-language="es_419" track-name="changed" track-type="languageSelector"> Español – América Latina </option> <option value="pt_br" lang="pt_br" track-metadata-original-language="en" track-metadata-selected-language="pt_br" track-name="changed" track-type="languageSelector"> Português – Brasil </option> <option value="zh_cn" lang="zh_cn" track-metadata-original-language="en" track-metadata-selected-language="zh_cn" track-name="changed" track-type="languageSelector"> 中文 – 简体 </option> <option value="ja" lang="ja" track-metadata-original-language="en" track-metadata-selected-language="ja" track-name="changed" track-type="languageSelector"> 日本語 </option> <option value="ko" lang="ko" track-metadata-original-language="en" track-metadata-selected-language="ko" track-name="changed" track-type="languageSelector"> 한국어 </option> </select> </devsite-select> </devsite-language-selector> </nav> </div> </devsite-footer-utility> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar type="cookie-notification" data-cookie-notice="0"></devsite-snackbar> <devsite-tooltip></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics enable-analytics-iframe> <script type="application/json" analytics>[]</script> <script type="application/json" gtm>{"parameters": {"freeTrialEligibleUser": "False", "internalUser": "False", "language": {"machineTranslated": "False", "requested": "en", "served": "en"}, "pageType": "article", "projectName": "Firebase", "scriptsafe": null, "signedIn": "False", "tenant": "firebase"}, "tags": ["GTM-N84485"]}</script> </devsite-analytics> <devsite-badger></devsite-badger> <firebase-gtm></firebase-gtm> <script nonce="nZnDs/bFgse7s8MNhBnM7Tx965P1pq"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://web.archive.org/web/20210128081714/https://www.gstatic.com/devrel-devsite/prod/vc5f5097f7e98f45082257ed44f785e23f8176f944afb30dfad7aee218957f132/firebase/js/app_loader.js', '[4,"en",null,"/js/devsite_app_module.js","https://web.archive.org/web/20210128081714/https://www.gstatic.com/devrel-devsite/prod/vc5f5097f7e98f45082257ed44f785e23f8176f944afb30dfad7aee218957f132","https://web.archive.org/web/20210128081714/https://www.gstatic.com/devrel-devsite/prod/vc5f5097f7e98f45082257ed44f785e23f8176f944afb30dfad7aee218957f132/firebase","https://web.archive.org/web/20210128081714/https://firebase-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/firebase/manifest.json","/_static/images/video-placeholder.svg","https://web.archive.org/web/20210128081714/https://www.gstatic.com/devrel-devsite/prod/vc5f5097f7e98f45082257ed44f785e23f8176f944afb30dfad7aee218957f132/firebase/images/favicon.png","https://web.archive.org/web/20210128081714/https://www.gstatic.com/devrel-devsite/prod/vc5f5097f7e98f45082257ed44f785e23f8176f944afb30dfad7aee218957f132/firebase/images/lockup.png","https://web.archive.org/web/20210128081714/https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700|Material+Icons"],1,null,[1,6,8,12,14,17,21,25,40,50,63,70,75,76,80,87,88,91,92,93,97,98,100,101,102,103,105,107,111,113,115,120,122]]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html><!-- FILE ARCHIVED ON 08:17:14 Jan 28, 2021 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 14:36:19 Nov 25, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.47 exclusion.robots: 0.023 exclusion.robots.policy: 0.014 esindex: 0.01 cdx.remote: 6.037 LoadShardBlock: 167.554 (3) PetaboxLoader3.datanode: 145.147 (5) PetaboxLoader3.resolve: 108.945 (2) load_resource: 170.66 loaddict: 62.746 -->