diff --git a/admob/integration_test/Podfile b/admob/integration_test/Podfile index 82cd92953b..f2e12fd804 100644 --- a/admob/integration_test/Podfile +++ b/admob/integration_test/Podfile @@ -4,7 +4,7 @@ platform :ios, '10.0' use_frameworks! :linkage => :static target 'integration_test' do - pod 'Firebase/Analytics', '9.1.0' + pod 'Firebase/Analytics', '9.2.0' pod 'Google-Mobile-Ads-SDK', '7.69.0-cppsdk2' end diff --git a/analytics/integration_test/Podfile b/analytics/integration_test/Podfile index 3790ca6ddd..ab38384529 100644 --- a/analytics/integration_test/Podfile +++ b/analytics/integration_test/Podfile @@ -5,12 +5,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '10.0' - pod 'Firebase/Analytics', '9.1.0' + pod 'Firebase/Analytics', '9.2.0' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Analytics', '9.1.0' + pod 'Firebase/Analytics', '9.2.0' end post_install do |installer| diff --git a/analytics/ios_headers/FIREventNames.h b/analytics/ios_headers/FIREventNames.h index 202f81022c..ca1c6623f7 100644 --- a/analytics/ios_headers/FIREventNames.h +++ b/analytics/ios_headers/FIREventNames.h @@ -1,6 +1,6 @@ // Copyright 2022 Google LLC -// Copied from Firebase Analytics iOS SDK 9.1.0. +// Copied from Firebase Analytics iOS SDK 9.2.0. /// @file FIREventNames.h /// diff --git a/analytics/ios_headers/FIRParameterNames.h b/analytics/ios_headers/FIRParameterNames.h index 136f0f5d85..99544d75ff 100644 --- a/analytics/ios_headers/FIRParameterNames.h +++ b/analytics/ios_headers/FIRParameterNames.h @@ -1,6 +1,6 @@ // Copyright 2022 Google LLC -// Copied from Firebase Analytics iOS SDK 9.1.0. +// Copied from Firebase Analytics iOS SDK 9.2.0. /// @file FIRParameterNames.h /// diff --git a/analytics/ios_headers/FIRUserPropertyNames.h b/analytics/ios_headers/FIRUserPropertyNames.h index f1c7f267dd..edac8f3c1d 100644 --- a/analytics/ios_headers/FIRUserPropertyNames.h +++ b/analytics/ios_headers/FIRUserPropertyNames.h @@ -1,6 +1,6 @@ // Copyright 2022 Google LLC -// Copied from Firebase Analytics iOS SDK 9.1.0. +// Copied from Firebase Analytics iOS SDK 9.2.0. /// @file FIRUserPropertyNames.h /// diff --git a/app/integration_test/Podfile b/app/integration_test/Podfile index 2b6d6dd224..340907fbe8 100644 --- a/app/integration_test/Podfile +++ b/app/integration_test/Podfile @@ -4,7 +4,7 @@ platform :ios, '10.0' use_frameworks! :linkage => :static target 'integration_test' do - pod 'Firebase/Analytics', '9.1.0' + pod 'Firebase/Analytics', '9.2.0' end post_install do |installer| diff --git a/auth/integration_test/Podfile b/auth/integration_test/Podfile index b08f1f8862..8fb592bbde 100644 --- a/auth/integration_test/Podfile +++ b/auth/integration_test/Podfile @@ -4,12 +4,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '10.0' - pod 'Firebase/Auth', '9.1.0' + pod 'Firebase/Auth', '9.2.0' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Auth', '9.1.0' + pod 'Firebase/Auth', '9.2.0' end post_install do |installer| diff --git a/cmake/external/firestore.cmake b/cmake/external/firestore.cmake index d6a2849d02..8d105c196a 100644 --- a/cmake/external/firestore.cmake +++ b/cmake/external/firestore.cmake @@ -20,7 +20,7 @@ endif() # If the format of the line below changes, then be sure to update # https://github.com/firebase/firebase-cpp-sdk/blob/fd054fa016/.github/workflows/update-dependencies.yml#L81 -set(version CocoaPods-9.1.0) +set(version CocoaPods-9.2.0) function(GetReleasedDep) message("Getting released firebase-ios-sdk @ ${version}") @@ -36,7 +36,7 @@ function(GetReleasedDep) BUILD_COMMAND "" INSTALL_COMMAND "" TEST_COMMAND "" - PATCH_COMMAND patch -Np1 -i ${CMAKE_CURRENT_LIST_DIR}/firestore_snappy.patch.txt + PATCH_COMMAND patch -Np1 -i ${CMAKE_CURRENT_LIST_DIR}/firestore.patch.txt HTTP_HEADER "${EXTERNAL_PROJECT_HTTP_HEADER}" ) endfunction() @@ -57,7 +57,7 @@ function(GetTag t) BUILD_COMMAND "" INSTALL_COMMAND "" TEST_COMMAND "" - PATCH_COMMAND patch -Np1 -i ${CMAKE_CURRENT_LIST_DIR}/firestore_snappy.patch.txt + PATCH_COMMAND patch -Np1 -i ${CMAKE_CURRENT_LIST_DIR}/firestore.patch.txt HTTP_HEADER "${EXTERNAL_PROJECT_HTTP_HEADER}" ) endfunction() diff --git a/cmake/external/firestore.patch.txt b/cmake/external/firestore.patch.txt new file mode 100644 index 0000000000..fa029b4ac1 --- /dev/null +++ b/cmake/external/firestore.patch.txt @@ -0,0 +1,25 @@ +diff --git a/cmake/external/leveldb.cmake b/cmake/external/leveldb.cmake +index 920bf2928..c5c9cc7ee 100644 +--- a/cmake/external/leveldb.cmake ++++ b/cmake/external/leveldb.cmake +@@ -24,7 +24,10 @@ if(TARGET leveldb) + return() + endif() + +-set(version 1.22) ++# This version must be kept in sync with cmake/external/leveldb.cmake ++# in the firebase-cpp-sdk. If this version ever changes then make sure ++# to update leveldb.cmake in the firebase-cpp-sdk accordingly. ++set(version 1.23) + + ExternalProject_Get_property(snappy SOURCE_DIR) + set(snappy_source_dir "${SOURCE_DIR}") +@@ -39,7 +42,7 @@ ExternalProject_Add( + DOWNLOAD_DIR ${FIREBASE_DOWNLOAD_DIR} + DOWNLOAD_NAME leveldb-${version}.tar.gz + URL https://github.com/google/leveldb/archive/${version}.tar.gz +- URL_HASH SHA256=55423cac9e3306f4a9502c738a001e4a339d1a38ffbee7572d4a07d5d63949b2 ++ URL_HASH SHA256=9a37f8a6174f09bd622bc723b55881dc541cd50747cbd08831c2a82d620f6d76 + + PREFIX ${PROJECT_BINARY_DIR} + diff --git a/cmake/external/firestore_snappy.patch.txt b/cmake/external/firestore_snappy.patch.txt deleted file mode 100644 index f1742fb965..0000000000 --- a/cmake/external/firestore_snappy.patch.txt +++ /dev/null @@ -1,684 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 29458bf13..7be37691d 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -227,6 +227,12 @@ if(NOT ZLIB_FOUND) - endif() - - -+# Snappy -+set(SNAPPY_BUILD_TESTS OFF CACHE BOOL "Firestore disabled") -+set(SNAPPY_BUILD_BENCHMARKS OFF CACHE BOOL "Firestore disabled") -+add_external_subdirectory(snappy) -+firebase_ios_add_alias(Snappy::Snappy snappy) -+ - # LevelDB - set(LEVELDB_BUILD_TESTS OFF CACHE BOOL "Firestore disabled") - set(LEVELDB_BUILD_BENCHMARKS OFF CACHE BOOL "Firestore disabled") -diff --git a/cmake/external/CMakeLists.txt b/cmake/external/CMakeLists.txt -index 2179633a8..c1de37b6d 100644 ---- a/cmake/external/CMakeLists.txt -+++ b/cmake/external/CMakeLists.txt -@@ -35,6 +35,7 @@ include(c-ares) - include(googletest) - include(GoogleUtilities) - include(grpc) -+include(snappy) - include(leveldb) - include(libfuzzer) - include(nanopb) -diff --git a/cmake/external/leveldb.cmake b/cmake/external/leveldb.cmake -index b71a77535..2556d7041 100644 ---- a/cmake/external/leveldb.cmake -+++ b/cmake/external/leveldb.cmake -@@ -13,20 +13,27 @@ - # limitations under the License. - - include(ExternalProject) -+include(FindPythonInterp) - - if(TARGET leveldb) - return() - endif() - --set(version 1.22) -+set(version 1.23) -+ -+ExternalProject_Get_property(snappy SOURCE_DIR) -+set(snappy_source_dir "${SOURCE_DIR}") -+ExternalProject_Get_property(snappy BINARY_DIR) -+set(snappy_binary_dir "${BINARY_DIR}") - - ExternalProject_Add( - leveldb - -+ DEPENDS snappy -+ - DOWNLOAD_DIR ${FIREBASE_DOWNLOAD_DIR} - DOWNLOAD_NAME leveldb-${version}.tar.gz - URL https://github.com/google/leveldb/archive/${version}.tar.gz -- URL_HASH SHA256=55423cac9e3306f4a9502c738a001e4a339d1a38ffbee7572d4a07d5d63949b2 - - PREFIX ${PROJECT_BINARY_DIR} - -@@ -34,6 +41,7 @@ ExternalProject_Add( - BUILD_COMMAND "" - INSTALL_COMMAND "" - TEST_COMMAND "" -+ PATCH_COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/leveldb_patch.py --snappy-source-dir ${snappy_source_dir} --snappy-binary-dir ${snappy_binary_dir} - - HTTP_HEADER "${EXTERNAL_PROJECT_HTTP_HEADER}" - ) -diff --git a/cmake/external/leveldb_patch.py b/cmake/external/leveldb_patch.py -new file mode 100644 -index 000000000..51a62d54a ---- /dev/null -+++ b/cmake/external/leveldb_patch.py -@@ -0,0 +1,144 @@ -+# Copyright 2022 Google LLC -+# -+# Licensed under the Apache License, Version 2.0 (the "License"); -+# you may not use this file except in compliance with the License. -+# You may obtain a copy of the License at -+# -+# http://www.apache.org/licenses/LICENSE-2.0 -+# -+# Unless required by applicable law or agreed to in writing, software -+# distributed under the License is distributed on an "AS IS" BASIS, -+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+# See the License for the specific language governing permissions and -+# limitations under the License. -+ -+""" -+Modify the CMakeLists.txt from LevelDb to staticly link Snappy compression -+support. -+""" -+ -+import argparse -+import dataclasses -+import os -+import pathlib -+from typing import Iterable, Sequence -+ -+ -+def main() -> None: -+ arg_parser = argparse.ArgumentParser() -+ arg_parser.add_argument("--snappy-source-dir", required=True) -+ arg_parser.add_argument("--snappy-binary-dir", required=True) -+ parsed_args = arg_parser.parse_args() -+ del arg_parser -+ snappy_source_dir = pathlib.Path(parsed_args.snappy_source_dir) -+ snappy_binary_dir = pathlib.Path(parsed_args.snappy_binary_dir) -+ del parsed_args -+ -+ cmakelists_txt_file = pathlib.Path("CMakeLists.txt") -+ with cmakelists_txt_file.open("rt", encoding="utf8") as f: -+ lines = tuple(f) -+ -+ patcher = CMakeListsPatcher( -+ lines, -+ os.path.abspath(__file__), -+ snappy_source_dir, -+ snappy_binary_dir, -+ ) -+ -+ patched_lines = tuple(patcher.patch()) -+ -+ with cmakelists_txt_file.open("wt", encoding="utf8") as f: -+ f.writelines(patched_lines) -+ -+ -+@dataclasses.dataclass(frozen=True) -+class LineComponents: -+ full: str -+ indent: str -+ line: str -+ eol: str -+ -+ -+class CMakeListsPatcher: -+ -+ SNAPPY_DETECT_LINE = \ -+ """check_library_exists(snappy snappy_compress "" HAVE_SNAPPY)""" -+ SNAPPY_INCLUDE_LINE = \ -+ "target_include_directories(leveldb" -+ SNAPPY_LINK_LINE = \ -+ "target_link_libraries(leveldb snappy)" -+ -+ def __init__( -+ self, -+ lines: Sequence[str], -+ script_name: str, -+ snappy_source_dir: pathlib.Path, -+ snappy_binary_dir: pathlib.Path) -> None: -+ self.i = 0 -+ self.lines = lines -+ self.script_name = script_name -+ self.snappy_source_dir_str = snappy_source_dir.as_posix() -+ self.snappy_binary_dir_str = snappy_binary_dir.as_posix() -+ -+ def patch(self) -> Iterable[str]: -+ while self.i < len(self.lines): -+ full_line = self.lines[self.i] -+ line = self._split_line(full_line) -+ self.i += 1 -+ -+ if line.line == self.SNAPPY_DETECT_LINE: -+ yield from self._on_snappy_detect_line(line) -+ elif line.line == self.SNAPPY_INCLUDE_LINE: -+ yield full_line -+ yield from self._on_leveldb_include_start() -+ elif line.line == self.SNAPPY_LINK_LINE: -+ yield from self._on_leveldb_snappy_link_line(line) -+ else: -+ yield full_line -+ -+ def _begin_mod_line(self, mod_name: str) -> str: -+ return f"# BEGIN: {mod_name} modification by {self.script_name}" -+ -+ def _end_mod_line(self, mod_name: str) -> str: -+ return f"# END: {mod_name} modification by {self.script_name}" -+ -+ def _on_snappy_detect_line(self, line: LineComponents) -> Iterable[str]: -+ yield self._begin_mod_line("snappy_detect_line") + line.eol -+ yield line.indent + "# " + line.line + line.eol -+ yield line.indent + """set(HAVE_SNAPPY ON CACHE BOOL "")""" + line.eol -+ yield self._end_mod_line("snappy_detect_line") + line.eol -+ -+ def _on_leveldb_include_start(self) -> Iterable[str]: -+ line1 = self._split_line(self.lines[self.i]) -+ line2 = self._split_line(self.lines[self.i + 1]) -+ begin_mod_line = self._begin_mod_line("leveldb_include_start") -+ -+ if line1.line == begin_mod_line: -+ return -+ -+ yield begin_mod_line + line1.eol -+ yield line1.indent + "PRIVATE" + line1.eol -+ yield line2.indent + self.snappy_source_dir_str + line2.eol -+ yield line2.indent + self.snappy_binary_dir_str + line2.eol -+ yield self._end_mod_line("leveldb_include_start") + line1.eol -+ -+ def _on_leveldb_snappy_link_line(self, line: LineComponents) -> Iterable[str]: -+ yield self._begin_mod_line("leveldb_snappy_link_line") + line.eol -+ yield line.indent + "# " + line.line + line.eol -+ yield line.indent + f"target_link_libraries(leveldb Snappy::Snappy)" + line.eol -+ yield self._end_mod_line("leveldb_snappy_link_line") + line.eol -+ -+ def _split_line(self, line: str) -> LineComponents: -+ line_rstripped = line.rstrip() -+ eol = line[len(line_rstripped):] -+ line_stripped = line_rstripped.strip() -+ indent = line_rstripped[:len(line_rstripped) - len(line_stripped)] -+ return LineComponents(full=line, indent=indent, line=line_stripped, eol=eol) -+ -+ -+class LeveDbPatchException(Exception): -+ pass -+ -+ -+if __name__ == "__main__": -+ main() -diff --git a/cmake/external/leveldb_patch_test.py b/cmake/external/leveldb_patch_test.py -new file mode 100644 -index 000000000..b1d62526b ---- /dev/null -+++ b/cmake/external/leveldb_patch_test.py -@@ -0,0 +1,328 @@ -+# Copyright 2022 Google LLC -+# -+# Licensed under the Apache License, Version 2.0 (the "License"); -+# you may not use this file except in compliance with the License. -+# You may obtain a copy of the License at -+# -+# http://www.apache.org/licenses/LICENSE-2.0 -+# -+# Unless required by applicable law or agreed to in writing, software -+# distributed under the License is distributed on an "AS IS" BASIS, -+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+# See the License for the specific language governing permissions and -+# limitations under the License. -+ -+import leveldb_patch -+import pathlib -+import unittest -+ -+ -+class CMakeListsPatcherTest(unittest.TestCase): -+ -+ def setUp(self): -+ super().setUp() -+ self.sample_snappy_source_dir = pathlib.Path("a/b/snappy_source_dir") -+ self.sample_snappy_binary_dir = pathlib.Path("a/b/snappy_binary_dir") -+ -+ def test_snappy_detect_line_is_commented_and_replaced(self): -+ lines = ( -+ """check_library_exists(snappy snappy_compress "" HAVE_SNAPPY)""", -+ ) -+ patcher = leveldb_patch.CMakeListsPatcher( -+ lines, -+ "MyCoolScript", -+ self.sample_snappy_source_dir, -+ self.sample_snappy_binary_dir, -+ ) -+ -+ patched_lines = tuple(patcher.patch()) -+ -+ self.assertSequenceEqual(patched_lines, [ -+ "# BEGIN: snappy_detect_line modification by MyCoolScript", -+ """# check_library_exists(snappy snappy_compress "" HAVE_SNAPPY)""", -+ """set(HAVE_SNAPPY ON CACHE BOOL "")""", -+ "# END: snappy_detect_line modification by MyCoolScript", -+ ]) -+ -+ def test_snappy_detect_line_has_indent_and_eol_preserved(self): -+ lines = ( -+ """ check_library_exists(snappy snappy_compress "" HAVE_SNAPPY) \n""", -+ ) -+ patcher = leveldb_patch.CMakeListsPatcher( -+ lines, -+ "MyCoolScript", -+ self.sample_snappy_source_dir, -+ self.sample_snappy_binary_dir, -+ ) -+ -+ patched_lines = tuple(patcher.patch()) -+ -+ self.assertSequenceEqual(patched_lines, [ -+ "# BEGIN: snappy_detect_line modification by MyCoolScript \n", -+ """ # check_library_exists(snappy snappy_compress "" HAVE_SNAPPY) \n""", -+ """ set(HAVE_SNAPPY ON CACHE BOOL "") \n""", -+ "# END: snappy_detect_line modification by MyCoolScript \n", -+ ]) -+ -+ def test_snappy_detect_line_does_not_affect_surrounding_lines(self): -+ lines = ( -+ "aaa", -+ "bbb", -+ """check_library_exists(snappy snappy_compress "" HAVE_SNAPPY)""", -+ "ccc", -+ "ddd", -+ ) -+ patcher = leveldb_patch.CMakeListsPatcher( -+ lines, -+ "MyCoolScript", -+ self.sample_snappy_source_dir, -+ self.sample_snappy_binary_dir, -+ ) -+ -+ patched_lines = tuple(patcher.patch()) -+ -+ self.assertSequenceEqual(patched_lines, [ -+ "aaa", -+ "bbb", -+ "# BEGIN: snappy_detect_line modification by MyCoolScript", -+ """# check_library_exists(snappy snappy_compress "" HAVE_SNAPPY)""", -+ """set(HAVE_SNAPPY ON CACHE BOOL "")""", -+ "# END: snappy_detect_line modification by MyCoolScript", -+ "ccc", -+ "ddd", -+ ]) -+ -+ def test_snappy_include_is_amended(self): -+ lines = ( -+ "target_include_directories(leveldb", -+ "PUBLIC", -+ "path1", -+ "path2", -+ ")", -+ ) -+ patcher = leveldb_patch.CMakeListsPatcher( -+ lines, -+ script_name="MyCoolSript", -+ snappy_source_dir=pathlib.Path("a/b"), -+ snappy_binary_dir=pathlib.Path("c/d"), -+ ) -+ -+ patched_lines = tuple(patcher.patch()) -+ -+ self.assertSequenceEqual(patched_lines, [ -+ "target_include_directories(leveldb", -+ "# BEGIN: leveldb_include_start modification by MyCoolSript", -+ "PRIVATE", -+ "a/b", -+ "c/d", -+ "# END: leveldb_include_start modification by MyCoolSript", -+ "PUBLIC", -+ "path1", -+ "path2", -+ ")", -+ ]) -+ -+ def test_snappy_include_lines_adopt_indenting_and_eol_convention(self): -+ lines = ( -+ "target_include_directories(leveldb\n", -+ " PUBLIC \n", -+ " path1 \n", -+ " path2 \n", -+ ")\n", -+ ) -+ patcher = leveldb_patch.CMakeListsPatcher( -+ lines, -+ script_name="MyCoolSript", -+ snappy_source_dir=pathlib.Path("a/b"), -+ snappy_binary_dir=pathlib.Path("c/d"), -+ ) -+ -+ patched_lines = tuple(patcher.patch()) -+ -+ self.assertSequenceEqual(patched_lines, [ -+ "target_include_directories(leveldb\n", -+ "# BEGIN: leveldb_include_start modification by MyCoolSript \n", -+ " PRIVATE \n", -+ " a/b \n", -+ " c/d \n", -+ "# END: leveldb_include_start modification by MyCoolSript \n", -+ " PUBLIC \n", -+ " path1 \n", -+ " path2 \n", -+ ")\n", -+ ]) -+ -+ def test_snappy_include_line_does_not_affect_surrounding_lines(self): -+ lines = ( -+ "aaa", -+ "bbb", -+ "target_include_directories(leveldb", -+ "PUBLIC", -+ "path1", -+ "path2", -+ ")", -+ "ccc", -+ "ddd", -+ ) -+ patcher = leveldb_patch.CMakeListsPatcher( -+ lines, -+ script_name="MyCoolSript", -+ snappy_source_dir=pathlib.Path("a/b"), -+ snappy_binary_dir=pathlib.Path("c/d"), -+ ) -+ -+ patched_lines = tuple(patcher.patch()) -+ -+ self.assertSequenceEqual(patched_lines, [ -+ "aaa", -+ "bbb", -+ "target_include_directories(leveldb", -+ "# BEGIN: leveldb_include_start modification by MyCoolSript", -+ "PRIVATE", -+ "a/b", -+ "c/d", -+ "# END: leveldb_include_start modification by MyCoolSript", -+ "PUBLIC", -+ "path1", -+ "path2", -+ ")", -+ "ccc", -+ "ddd", -+ ]) -+ -+ def test_leveldb_snappy_link_line_is_commented_and_replaced(self): -+ lines = ( -+ "target_link_libraries(leveldb snappy)", -+ ) -+ patcher = leveldb_patch.CMakeListsPatcher( -+ lines, -+ script_name="MyCoolSript", -+ snappy_source_dir=pathlib.Path("a/b"), -+ snappy_binary_dir=pathlib.Path("c/d"), -+ ) -+ -+ patched_lines = tuple(patcher.patch()) -+ -+ self.assertSequenceEqual(patched_lines, [ -+ "# BEGIN: leveldb_snappy_link_line modification by MyCoolSript", -+ "# target_link_libraries(leveldb snappy)", -+ "target_link_libraries(leveldb Snappy::Snappy)", -+ "# END: leveldb_snappy_link_line modification by MyCoolSript", -+ ]) -+ -+ def test_leveldb_snappy_link_line_has_indent_and_eol_preserved(self): -+ lines = ( -+ " target_link_libraries(leveldb snappy) \n", -+ ) -+ patcher = leveldb_patch.CMakeListsPatcher( -+ lines, -+ script_name="MyCoolSript", -+ snappy_source_dir=pathlib.Path("a/b"), -+ snappy_binary_dir=pathlib.Path("c/d"), -+ ) -+ -+ patched_lines = tuple(patcher.patch()) -+ -+ self.assertSequenceEqual(patched_lines, [ -+ "# BEGIN: leveldb_snappy_link_line modification by MyCoolSript \n", -+ " # target_link_libraries(leveldb snappy) \n", -+ " target_link_libraries(leveldb Snappy::Snappy) \n", -+ "# END: leveldb_snappy_link_line modification by MyCoolSript \n", -+ ]) -+ -+ def test_leveldb_snappy_link_line_does_not_affect_surrounding_lines(self): -+ lines = ( -+ "aaa", -+ "bbb", -+ "target_link_libraries(leveldb snappy)", -+ "ccc", -+ "ddd", -+ ) -+ patcher = leveldb_patch.CMakeListsPatcher( -+ lines, -+ script_name="MyCoolSript", -+ snappy_source_dir=pathlib.Path("a/b"), -+ snappy_binary_dir=pathlib.Path("c/d"), -+ ) -+ -+ patched_lines = tuple(patcher.patch()) -+ -+ self.assertSequenceEqual(patched_lines, [ -+ "aaa", -+ "bbb", -+ "# BEGIN: leveldb_snappy_link_line modification by MyCoolSript", -+ "# target_link_libraries(leveldb snappy)", -+ "target_link_libraries(leveldb Snappy::Snappy)", -+ "# END: leveldb_snappy_link_line modification by MyCoolSript", -+ "ccc", -+ "ddd", -+ ]) -+ -+ def test_all_patches_combined(self): -+ lines = ( -+ """check_library_exists(snappy snappy_compress "" HAVE_SNAPPY)""", -+ "target_include_directories(leveldb", -+ "PUBLIC", -+ "path1", -+ ")", -+ "target_link_libraries(leveldb snappy)", -+ ) -+ -+ patcher = leveldb_patch.CMakeListsPatcher( -+ lines, -+ script_name="MyCoolSript", -+ snappy_source_dir=pathlib.Path("a/b"), -+ snappy_binary_dir=pathlib.Path("c/d"), -+ ) -+ patched_lines = tuple(patcher.patch()) -+ -+ self.assertSequenceEqual(patched_lines, [ -+ "# BEGIN: snappy_detect_line modification by MyCoolSript", -+ """# check_library_exists(snappy snappy_compress "" HAVE_SNAPPY)""", -+ """set(HAVE_SNAPPY ON CACHE BOOL "")""", -+ "# END: snappy_detect_line modification by MyCoolSript", -+ "target_include_directories(leveldb", -+ "# BEGIN: leveldb_include_start modification by MyCoolSript", -+ "PRIVATE", -+ "a/b", -+ "c/d", -+ "# END: leveldb_include_start modification by MyCoolSript", -+ "PUBLIC", -+ "path1", -+ ")", -+ "# BEGIN: leveldb_snappy_link_line modification by MyCoolSript", -+ "# target_link_libraries(leveldb snappy)", -+ "target_link_libraries(leveldb Snappy::Snappy)", -+ "# END: leveldb_snappy_link_line modification by MyCoolSript", -+ ]) -+ -+ def test_idempotence(self): -+ lines = ( -+ """check_library_exists(snappy snappy_compress "" HAVE_SNAPPY)\n""", -+ "target_include_directories(leveldb", -+ "PUBLIC", -+ "path1", -+ ")", -+ "target_link_libraries(leveldb snappy)", -+ ) -+ -+ patcher1 = leveldb_patch.CMakeListsPatcher( -+ lines, -+ script_name="MyCoolSript", -+ snappy_source_dir=pathlib.Path("a/b"), -+ snappy_binary_dir=pathlib.Path("c/d"), -+ ) -+ patched_lines1 = tuple(patcher1.patch()) -+ patcher2 = leveldb_patch.CMakeListsPatcher( -+ patched_lines1, -+ script_name="MyCoolSript", -+ snappy_source_dir=pathlib.Path("a/b"), -+ snappy_binary_dir=pathlib.Path("c/d"), -+ ) -+ patched_lines2 = tuple(patcher2.patch()) -+ -+ self.assertSequenceEqual(patched_lines1, patched_lines2) -+ -+ -+if __name__ == "__main__": -+ unittest.main() -diff --git a/cmake/external/snappy.cmake b/cmake/external/snappy.cmake -new file mode 100644 -index 000000000..9f25c03d0 ---- /dev/null -+++ b/cmake/external/snappy.cmake -@@ -0,0 +1,40 @@ -+# Copyright 2022 Google LLC -+# -+# Licensed under the Apache License, Version 2.0 (the "License"); -+# you may not use this file except in compliance with the License. -+# You may obtain a copy of the License at -+# -+# http://www.apache.org/licenses/LICENSE-2.0 -+# -+# Unless required by applicable law or agreed to in writing, software -+# distributed under the License is distributed on an "AS IS" BASIS, -+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+# See the License for the specific language governing permissions and -+# limitations under the License. -+ -+include(ExternalProject) -+ -+if(TARGET snappy) -+ return() -+endif() -+ -+set(version 1.1.9) -+ -+ExternalProject_Add( -+ snappy -+ -+ DOWNLOAD_DIR ${FIREBASE_DOWNLOAD_DIR} -+ DOWNLOAD_NAME snappy-${version}.tar.gz -+ URL https://github.com/google/snappy/archive/refs/tags/${version}.tar.gz -+ URL_HASH SHA256=75c1fbb3d618dd3a0483bff0e26d0a92b495bbe5059c8b4f1c962b478b6e06e7 -+ -+ PREFIX ${PROJECT_BINARY_DIR} -+ -+ CONFIGURE_COMMAND "" -+ BUILD_COMMAND "" -+ INSTALL_COMMAND "" -+ TEST_COMMAND "" -+ PATCH_COMMAND patch -Np1 -i ${CMAKE_CURRENT_LIST_DIR}/snappy.patch -+ -+ HTTP_HEADER "${EXTERNAL_PROJECT_HTTP_HEADER}" -+) -diff --git a/cmake/external/snappy.patch b/cmake/external/snappy.patch -new file mode 100644 -index 000000000..28bfb0837 ---- /dev/null -+++ b/cmake/external/snappy.patch -@@ -0,0 +1,12 @@ -+diff -Naur snappy/snappy.cc snappy_patched/snappy.cc -+--- snappy/snappy.cc 2022-04-12 20:44:55.000000000 -0400 -++++ snappy_patched/snappy.cc 2022-04-12 20:47:05.000000000 -0400 -+@@ -1014,7 +1014,7 @@ -+ } -+ -+ SNAPPY_ATTRIBUTE_ALWAYS_INLINE -+-size_t AdvanceToNextTag(const uint8_t** ip_p, size_t* tag) { -++inline size_t AdvanceToNextTag(const uint8_t** ip_p, size_t* tag) { -+ const uint8_t*& ip = *ip_p; -+ // This section is crucial for the throughput of the decompression loop. -+ // The latency of an iteration is fundamentally constrained by the -diff --git a/Firestore/core/src/model/value_util.cc b/Firestore/core/src/model/value_util.cc -index 1b6bf07e0..41d1d6d26 100644 ---- a/Firestore/core/src/model/value_util.cc -+++ b/Firestore/core/src/model/value_util.cc -@@ -53,26 +53,6 @@ const char* kRawMaxValueFieldValue = "__max__"; - pb_bytes_array_s* kMaxValueFieldValue = - nanopb::MakeBytesArray(kRawMaxValueFieldValue); - --/** The special map field value entry of a maximum proto value. */ --google_firestore_v1_MapValue_FieldsEntry kMaxValueFieldEntry = { -- .key = kMaxValueFieldKey, -- .value = { -- .which_value_type = google_firestore_v1_Value_string_value_tag, -- .string_value = const_cast(kMaxValueFieldValue)}}; -- --/** The special map value of a maximum proto value. */ --_google_firestore_v1_MapValue kMaxValueMapValue = { -- .fields_count = 1, .fields = &kMaxValueFieldEntry}; -- --/** -- * A maximum value that is larger than any other Firestore values. Underlying it -- * is a map value with a special map field that SDK user cannot possibly -- * construct. -- */ --google_firestore_v1_Value kMaxValue = { -- .which_value_type = google_firestore_v1_Value_map_value_tag, -- .map_value = kMaxValueMapValue}; -- - } // namespace - - using nanopb::Message; -@@ -703,8 +683,32 @@ bool IsMinValue(const google_firestore_v1_Value& value) { - return IsNullValue(value); - } - -+/** -+ * Creates and returns a maximum value that is larger than any other Firestore -+ * values. Underlying it is a map value with a special map field that SDK user -+ * cannot possibly construct. -+ */ - google_firestore_v1_Value MaxValue() { -- return kMaxValue; -+ google_firestore_v1_Value value; -+ value.which_value_type = google_firestore_v1_Value_string_value_tag; -+ value.string_value = kMaxValueFieldValue; -+ -+ // Make `field_entry` static so that it has a memory address that outlives -+ // this function's scope; otherwise, using its address in the `map_value` -+ // variable below would be invalid by the time the caller accessed it. -+ static google_firestore_v1_MapValue_FieldsEntry field_entry; -+ field_entry.key = kMaxValueFieldKey; -+ field_entry.value = value; -+ -+ google_firestore_v1_MapValue map_value; -+ map_value.fields_count = 1; -+ map_value.fields = &field_entry; -+ -+ google_firestore_v1_Value max_value; -+ max_value.which_value_type = google_firestore_v1_Value_map_value_tag; -+ max_value.map_value = map_value; -+ -+ return max_value; - } - - bool IsMaxValue(const google_firestore_v1_Value& value) { diff --git a/cmake/external/leveldb.cmake b/cmake/external/leveldb.cmake index a8a154bb4e..866e82ac6e 100644 --- a/cmake/external/leveldb.cmake +++ b/cmake/external/leveldb.cmake @@ -18,6 +18,9 @@ if(TARGET leveldb) return() endif() +# This version must be kept in sync with the version in firestore.patch.txt. +# If this version ever changes then make sure to update the version in +# firestore.patch.txt accordingly. set(version 1.23) ExternalProject_Add( diff --git a/database/integration_test/Podfile b/database/integration_test/Podfile index 0f48f8d03a..e6162e6eee 100644 --- a/database/integration_test/Podfile +++ b/database/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '10.0' - pod 'Firebase/Database', '9.1.0' - pod 'Firebase/Auth', '9.1.0' + pod 'Firebase/Database', '9.2.0' + pod 'Firebase/Auth', '9.2.0' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Database', '9.1.0' - pod 'Firebase/Auth', '9.1.0' + pod 'Firebase/Database', '9.2.0' + pod 'Firebase/Auth', '9.2.0' end post_install do |installer| diff --git a/dynamic_links/integration_test/Podfile b/dynamic_links/integration_test/Podfile index 7141ef86bc..aa2bd21ca9 100644 --- a/dynamic_links/integration_test/Podfile +++ b/dynamic_links/integration_test/Podfile @@ -4,7 +4,7 @@ platform :ios, '10.0' use_frameworks! :linkage => :static target 'integration_test' do - pod 'Firebase/DynamicLinks', '9.1.0' + pod 'Firebase/DynamicLinks', '9.2.0' end post_install do |installer| diff --git a/firestore/integration_test/Podfile b/firestore/integration_test/Podfile index d106fbcf81..6868cb50f7 100644 --- a/firestore/integration_test/Podfile +++ b/firestore/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '10.0' - pod 'Firebase/Firestore', '9.1.0' - pod 'Firebase/Auth', '9.1.0' + pod 'Firebase/Firestore', '9.2.0' + pod 'Firebase/Auth', '9.2.0' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Firestore', '9.1.0' - pod 'Firebase/Auth', '9.1.0' + pod 'Firebase/Firestore', '9.2.0' + pod 'Firebase/Auth', '9.2.0' end post_install do |installer| diff --git a/firestore/integration_test_internal/Podfile b/firestore/integration_test_internal/Podfile index 86c2bec605..7b3902c474 100644 --- a/firestore/integration_test_internal/Podfile +++ b/firestore/integration_test_internal/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '10.0' - pod 'Firebase/Firestore', '9.1.0' - pod 'Firebase/Auth', '9.1.0' + pod 'Firebase/Firestore', '9.2.0' + pod 'Firebase/Auth', '9.2.0' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Firestore', '9.1.0' - pod 'Firebase/Auth', '9.1.0' + pod 'Firebase/Firestore', '9.2.0' + pod 'Firebase/Auth', '9.2.0' end post_install do |installer| diff --git a/functions/integration_test/Podfile b/functions/integration_test/Podfile index c843f66614..f61860b07b 100644 --- a/functions/integration_test/Podfile +++ b/functions/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '10.0' - pod 'Firebase/Functions', '9.1.0' - pod 'Firebase/Auth', '9.1.0' + pod 'Firebase/Functions', '9.2.0' + pod 'Firebase/Auth', '9.2.0' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Functions', '9.1.0' - pod 'Firebase/Auth', '9.1.0' + pod 'Firebase/Functions', '9.2.0' + pod 'Firebase/Auth', '9.2.0' end post_install do |installer| diff --git a/installations/integration_test/Podfile b/installations/integration_test/Podfile index 1329967794..6c834f1af4 100644 --- a/installations/integration_test/Podfile +++ b/installations/integration_test/Podfile @@ -4,8 +4,8 @@ platform :ios, '10.0' use_frameworks! :linkage => :static target 'integration_test' do - pod 'Firebase/Analytics', '9.1.0' - pod 'Firebase/Installations', '9.1.0' + pod 'Firebase/Analytics', '9.2.0' + pod 'Firebase/Installations', '9.2.0' end post_install do |installer| diff --git a/ios_pod/Podfile b/ios_pod/Podfile index b5a4597ac2..7c80b73d31 100644 --- a/ios_pod/Podfile +++ b/ios_pod/Podfile @@ -3,19 +3,19 @@ platform :ios, '10.0' use_frameworks! target 'GetPods' do - pod 'Firebase/Core', '9.1.0' + pod 'Firebase/Core', '9.2.0' pod 'Google-Mobile-Ads-SDK', '7.69.0-cppsdk2' - pod 'Firebase/Analytics', '9.1.0' - pod 'Firebase/Auth', '9.1.0' - pod 'Firebase/Crashlytics', '9.1.0' - pod 'Firebase/Database', '9.1.0' - pod 'Firebase/DynamicLinks', '9.1.0' - pod 'Firebase/Firestore', '9.1.0' - pod 'Firebase/Functions', '9.1.0' - pod 'Firebase/Installations', '9.1.0' - pod 'Firebase/Messaging', '9.1.0' - pod 'Firebase/RemoteConfig', '9.1.0' - pod 'Firebase/Storage', '9.1.0' + pod 'Firebase/Analytics', '9.2.0' + pod 'Firebase/Auth', '9.2.0' + pod 'Firebase/Crashlytics', '9.2.0' + pod 'Firebase/Database', '9.2.0' + pod 'Firebase/DynamicLinks', '9.2.0' + pod 'Firebase/Firestore', '9.2.0' + pod 'Firebase/Functions', '9.2.0' + pod 'Firebase/Installations', '9.2.0' + pod 'Firebase/Messaging', '9.2.0' + pod 'Firebase/RemoteConfig', '9.2.0' + pod 'Firebase/Storage', '9.2.0' end diff --git a/ios_pod/swift_headers/FirebaseAnalyticsSwift-Swift.h b/ios_pod/swift_headers/FirebaseAnalyticsSwift-Swift.h index ca90341c73..6c84acc691 100644 --- a/ios_pod/swift_headers/FirebaseAnalyticsSwift-Swift.h +++ b/ios_pod/swift_headers/FirebaseAnalyticsSwift-Swift.h @@ -1,5 +1,5 @@ // Copyright 2022 Google LLC -// Copied from Firebase iOS SDK 9.1.0. +// Copied from Firebase iOS SDK 9.2.0. // Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 // clang-1316.0.20.8) diff --git a/ios_pod/swift_headers/FirebaseCoreInternal-Swift.h b/ios_pod/swift_headers/FirebaseCoreInternal-Swift.h index 8ed11a3e85..43652a24c8 100644 --- a/ios_pod/swift_headers/FirebaseCoreInternal-Swift.h +++ b/ios_pod/swift_headers/FirebaseCoreInternal-Swift.h @@ -1,5 +1,5 @@ // Copyright 2022 Google LLC -// Copied from Firebase iOS SDK 9.1.0. +// Copied from Firebase iOS SDK 9.2.0. // Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 clang-1316.0.20.8) #ifndef FIREBASECOREINTERNAL_SWIFT_H diff --git a/ios_pod/swift_headers/FirebaseDatabaseSwift-Swift.h b/ios_pod/swift_headers/FirebaseDatabaseSwift-Swift.h index ebc49239ed..28123ea5c6 100644 --- a/ios_pod/swift_headers/FirebaseDatabaseSwift-Swift.h +++ b/ios_pod/swift_headers/FirebaseDatabaseSwift-Swift.h @@ -1,5 +1,5 @@ // Copyright 2022 Google LLC -// Copied from Firebase iOS SDK 9.1.0. +// Copied from Firebase iOS SDK 9.2.0. // Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 // clang-1316.0.20.8) diff --git a/ios_pod/swift_headers/FirebaseFirestoreSwift-Swift.h b/ios_pod/swift_headers/FirebaseFirestoreSwift-Swift.h index 49a83129fd..dc8ba3c87e 100644 --- a/ios_pod/swift_headers/FirebaseFirestoreSwift-Swift.h +++ b/ios_pod/swift_headers/FirebaseFirestoreSwift-Swift.h @@ -1,5 +1,5 @@ // Copyright 2022 Google LLC -// Copied from Firebase iOS SDK 9.1.0. +// Copied from Firebase iOS SDK 9.2.0. // Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 // clang-1316.0.20.8) diff --git a/ios_pod/swift_headers/FirebaseFunctions-Swift.h b/ios_pod/swift_headers/FirebaseFunctions-Swift.h index 77640fee74..2aa246a84e 100644 --- a/ios_pod/swift_headers/FirebaseFunctions-Swift.h +++ b/ios_pod/swift_headers/FirebaseFunctions-Swift.h @@ -1,5 +1,5 @@ // Copyright 2022 Google LLC -// Copied from Firebase iOS SDK 9.1.0. +// Copied from Firebase iOS SDK 9.2.0. // Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 clang-1316.0.20.8) #ifndef FIREBASEFUNCTIONS_SWIFT_H diff --git a/ios_pod/swift_headers/FirebaseInAppMessagingSwift-Swift.h b/ios_pod/swift_headers/FirebaseInAppMessagingSwift-Swift.h index fd40256f0c..207828a527 100644 --- a/ios_pod/swift_headers/FirebaseInAppMessagingSwift-Swift.h +++ b/ios_pod/swift_headers/FirebaseInAppMessagingSwift-Swift.h @@ -1,5 +1,5 @@ // Copyright 2022 Google LLC -// Copied from Firebase iOS SDK 9.1.0. +// Copied from Firebase iOS SDK 9.2.0. // Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 // clang-1316.0.20.8) diff --git a/ios_pod/swift_headers/FirebaseMLModelDownloader-Swift.h b/ios_pod/swift_headers/FirebaseMLModelDownloader-Swift.h index 33256545fd..fc9ec35250 100644 --- a/ios_pod/swift_headers/FirebaseMLModelDownloader-Swift.h +++ b/ios_pod/swift_headers/FirebaseMLModelDownloader-Swift.h @@ -1,5 +1,5 @@ // Copyright 2022 Google LLC -// Copied from Firebase iOS SDK 9.1.0. +// Copied from Firebase iOS SDK 9.2.0. // Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 // clang-1316.0.20.8) diff --git a/ios_pod/swift_headers/FirebaseRemoteConfigSwift-Swift.h b/ios_pod/swift_headers/FirebaseRemoteConfigSwift-Swift.h index 5aa1f94856..b000c21fd5 100644 --- a/ios_pod/swift_headers/FirebaseRemoteConfigSwift-Swift.h +++ b/ios_pod/swift_headers/FirebaseRemoteConfigSwift-Swift.h @@ -1,5 +1,5 @@ // Copyright 2022 Google LLC -// Copied from Firebase iOS SDK 9.1.0. +// Copied from Firebase iOS SDK 9.2.0. // Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 // clang-1316.0.20.8) diff --git a/ios_pod/swift_headers/FirebaseSharedSwift-Swift.h b/ios_pod/swift_headers/FirebaseSharedSwift-Swift.h index df7978fd00..1d745a30aa 100644 --- a/ios_pod/swift_headers/FirebaseSharedSwift-Swift.h +++ b/ios_pod/swift_headers/FirebaseSharedSwift-Swift.h @@ -1,5 +1,5 @@ // Copyright 2022 Google LLC -// Copied from Firebase iOS SDK 9.1.0. +// Copied from Firebase iOS SDK 9.2.0. // Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 // clang-1316.0.20.8) diff --git a/ios_pod/swift_headers/FirebaseStorage-Swift.h b/ios_pod/swift_headers/FirebaseStorage-Swift.h index 3a24d43f41..ed880f91ca 100644 --- a/ios_pod/swift_headers/FirebaseStorage-Swift.h +++ b/ios_pod/swift_headers/FirebaseStorage-Swift.h @@ -1,5 +1,5 @@ // Copyright 2022 Google LLC -// Copied from Firebase iOS SDK 9.1.0. +// Copied from Firebase iOS SDK 9.2.0. // Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 clang-1316.0.20.8) #ifndef FIREBASESTORAGE_SWIFT_H diff --git a/ios_pod/swift_headers/SwiftProtobuf-Swift.h b/ios_pod/swift_headers/SwiftProtobuf-Swift.h index 0e02a6606f..76963811eb 100644 --- a/ios_pod/swift_headers/SwiftProtobuf-Swift.h +++ b/ios_pod/swift_headers/SwiftProtobuf-Swift.h @@ -1,5 +1,5 @@ // Copyright 2022 Google LLC -// Copied from Firebase iOS SDK 9.1.0. +// Copied from Firebase iOS SDK 9.2.0. // Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 // clang-1316.0.20.8) diff --git a/messaging/integration_test/Podfile b/messaging/integration_test/Podfile index 8443485695..d120a21c50 100644 --- a/messaging/integration_test/Podfile +++ b/messaging/integration_test/Podfile @@ -4,12 +4,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '10.0' - pod 'Firebase/Messaging', '9.1.0' + pod 'Firebase/Messaging', '9.2.0' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Messaging', '9.1.0' + pod 'Firebase/Messaging', '9.2.0' end post_install do |installer| diff --git a/release_build_files/readme.md b/release_build_files/readme.md index 3612c95164..809924af91 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -216,46 +216,46 @@ Feature | Required Frameworks and Cocoapods -------------------------- | --------------------------------------- Firebase AdMob | firebase_admob.xcframework | | firebase.xcframework -| | Firebase/Analytics Cocoapod (9.1.0) +| | Firebase/Analytics Cocoapod (9.2.0) | | Google-Mobile-Ads-SDK Cocoapod (7.69.0-cppsdk2) Firebase Analytics | firebase_analytics.xcframework | | firebase.xcframework -| | Firebase/Analytics Cocoapod (9.1.0) +| | Firebase/Analytics Cocoapod (9.2.0) Firebase Authentication | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Auth Cocoapod (9.1.0) +| | Firebase/Auth Cocoapod (9.2.0) Firebase Dynamic Links | firebase_dynamic_links.xcframework | | firebase.xcframework -| | Firebase/DynamicLinks Cocoapod (9.1.0) +| | Firebase/DynamicLinks Cocoapod (9.2.0) Cloud Firestore | firebase_firestore.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Firestore Cocoapod (9.1.0) -| | Firebase/Auth Cocoapod (9.1.0) +| | Firebase/Firestore Cocoapod (9.2.0) +| | Firebase/Auth Cocoapod (9.2.0) Firebase Functions | firebase_functions.xcframework | | firebase_auth.xcframework (optional) | | firebase.xcframework -| | Firebase/Functions Cocoapod (9.1.0) -| | Firebase/Auth Cocoapod (9.1.0) +| | Firebase/Functions Cocoapod (9.2.0) +| | Firebase/Auth Cocoapod (9.2.0) Firebase Installations | firebase_installations.xcframework | | firebase.xcframework -| | FirebaseInstallations Cocoapod (9.1.0) +| | FirebaseInstallations Cocoapod (9.2.0) Firebase Cloud Messaging | firebase_messaging.xcframework | | firebase.xcframework -| | Firebase/Messaging Cocoapod (9.1.0) +| | Firebase/Messaging Cocoapod (9.2.0) Firebase Realtime Database | firebase_database.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Database Cocoapod (9.1.0) -| | Firebase/Auth Cocoapod (9.1.0) +| | Firebase/Database Cocoapod (9.2.0) +| | Firebase/Auth Cocoapod (9.2.0) Firebase Remote Config | firebase_remote_config.xcframework | | firebase.xcframework -| | Firebase/RemoteConfig Cocoapod (9.1.0) +| | Firebase/RemoteConfig Cocoapod (9.2.0) Firebase Storage | firebase_storage.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Storage Cocoapod (9.1.0) -| | Firebase/Auth Cocoapod (9.1.0) +| | Firebase/Storage Cocoapod (9.2.0) +| | Firebase/Auth Cocoapod (9.2.0) Important: Each version of the Firebase C++ SDK supports a specific version of the Firebase iOS SDK. Please ensure that you reference the Cocoapod versions @@ -280,46 +280,46 @@ Feature | Required Libraries and Cocoapods -------------------------- | ----------------------------------------- Firebase AdMob | libfirebase_admob.a | | libfirebase_app.a -| | Firebase/Analytics Cocoapod (9.1.0) +| | Firebase/Analytics Cocoapod (9.2.0) | | Google-Mobile-Ads-SDK Cocoapod (7.69.0-cppsdk2) Firebase Analytics | libfirebase_analytics.a | | libfirebase_app.a -| | Firebase/Analytics Cocoapod (9.1.0) +| | Firebase/Analytics Cocoapod (9.2.0) Firebase Authentication | libfirebase_auth.a | | libfirebase_app.a -| | Firebase/Auth Cocoapod (9.1.0) +| | Firebase/Auth Cocoapod (9.2.0) Firebase Dynamic Links | libfirebase_dynamic_links.a | | libfirebase_app.a -| | Firebase/DynamicLinks Cocoapod (9.1.0) +| | Firebase/DynamicLinks Cocoapod (9.2.0) Cloud Firestore | libfirebase_firestore.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Firestore Cocoapod (9.1.0) -| | Firebase/Auth Cocoapod (9.1.0) +| | Firebase/Firestore Cocoapod (9.2.0) +| | Firebase/Auth Cocoapod (9.2.0) Firebase Functions | libfirebase_functions.a | | libfirebase_app.a | | libfirebase_auth.a (optional) -| | Firebase/Functions Cocoapod (9.1.0) -| | Firebase/Auth Cocoapod (9.1.0) +| | Firebase/Functions Cocoapod (9.2.0) +| | Firebase/Auth Cocoapod (9.2.0) Firebase Installations | libfirebase_installations.a | | libfirebase_app.a -| | FirebaseInstallations Cocoapod (9.1.0) +| | FirebaseInstallations Cocoapod (9.2.0) Firebase Cloud Messaging | libfirebase_messaging.a | | libfirebase_app.a -| | Firebase/CloudMessaging Cocoapod (9.1.0) +| | Firebase/CloudMessaging Cocoapod (9.2.0) Firebase Realtime Database | libfirebase_database.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Database Cocoapod (9.1.0) -| | Firebase/Auth Cocoapod (9.1.0) +| | Firebase/Database Cocoapod (9.2.0) +| | Firebase/Auth Cocoapod (9.2.0) Firebase Remote Config | libfirebase_remote_config.a | | libfirebase_app.a -| | Firebase/RemoteConfig Cocoapod (9.1.0) +| | Firebase/RemoteConfig Cocoapod (9.2.0) Firebase Storage | libfirebase_storage.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Storage Cocoapod (9.1.0) -| | Firebase/Auth Cocoapod (9.1.0) +| | Firebase/Storage Cocoapod (9.2.0) +| | Firebase/Auth Cocoapod (9.2.0) Important: Each version of the Firebase C++ SDK supports a specific version of the Firebase iOS SDK. Please ensure that you reference the Cocoapod versions diff --git a/remote_config/integration_test/Podfile b/remote_config/integration_test/Podfile index e0e1c1916d..4b99581faf 100644 --- a/remote_config/integration_test/Podfile +++ b/remote_config/integration_test/Podfile @@ -4,12 +4,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '10.0' - pod 'Firebase/RemoteConfig', '9.1.0' + pod 'Firebase/RemoteConfig', '9.2.0' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/RemoteConfig', '9.1.0' + pod 'Firebase/RemoteConfig', '9.2.0' end post_install do |installer| diff --git a/storage/integration_test/Podfile b/storage/integration_test/Podfile index 6a6a445c7c..11ba18b0c5 100644 --- a/storage/integration_test/Podfile +++ b/storage/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '10.0' - pod 'Firebase/Storage', '9.1.0' - pod 'Firebase/Auth', '9.1.0' + pod 'Firebase/Storage', '9.2.0' + pod 'Firebase/Auth', '9.2.0' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Storage', '9.1.0' - pod 'Firebase/Auth', '9.1.0' + pod 'Firebase/Storage', '9.2.0' + pod 'Firebase/Auth', '9.2.0' end post_install do |installer|