From 9d157aae9055a8ac173487cda586d97be64e39e1 Mon Sep 17 00:00:00 2001 From: cherylEnkidu <96084918+cherylEnkidu@users.noreply.github.com> Date: Mon, 14 Sep 2026 13:44:30 -0400 Subject: [PATCH] Update the minimum version from C++14 to C++17 (#15074) Co-authored-by: Nick Cooke <36927374+ncooke3@users.noreply.github.com> --- .../FirebasePodTest.xcodeproj/project.pbxproj | 4 +- .../CombineSample.xcodeproj/project.pbxproj | 4 +- .../tvOSSample.xcodeproj/project.pbxproj | 4 +- .../SampleWatchApp.xcodeproj/project.pbxproj | 4 +- Firebase.podspec | 30 +++---- FirebaseAuth.podspec | 2 +- FirebaseAuthInterop.podspec | 2 +- FirebaseAuthTestingSupport.podspec | 2 +- FirebaseCoreExtension.podspec | 2 +- FirebaseCrashlytics.podspec | 4 +- FirebaseFirestore.podspec | 2 +- FirebaseFirestoreInternal.podspec | 10 +-- FirebaseMessagingInterop.podspec | 2 +- FirebaseRemoteConfig.podspec | 2 +- FirebaseRemoteConfigInterop.podspec | 2 +- Firestore/CHANGELOG.md | 5 ++ .../Firestore.xcodeproj/project.pbxproj | 84 +++++++++++++------ Firestore/Example/GoogleBenchmark.podspec | 2 +- Firestore/Example/GoogleTest.podspec | 2 +- Firestore/Example/LibFuzzer.podspec | 4 +- Firestore/Example/Podfile | 8 +- Firestore/Example/ProtobufCpp.podspec | 6 +- .../FrameworkMaker.xcodeproj/project.pbxproj | 8 +- .../core/test/unit/remote/serializer_test.cc | 25 +++--- .../test/unit/util/iterator_adaptors_test.cc | 17 +++- .../ClientApp.xcodeproj/project.pbxproj | 71 +++++++++++++++- Package.swift | 20 +++-- cmake/compiler_setup.cmake | 4 +- scripts/sync_project.rb | 20 ++++- 29 files changed, 243 insertions(+), 109 deletions(-) diff --git a/CoreOnly/Tests/FirebasePodTest/FirebasePodTest.xcodeproj/project.pbxproj b/CoreOnly/Tests/FirebasePodTest/FirebasePodTest.xcodeproj/project.pbxproj index 13dc15654b..3971e5b6ae 100644 --- a/CoreOnly/Tests/FirebasePodTest/FirebasePodTest.xcodeproj/project.pbxproj +++ b/CoreOnly/Tests/FirebasePodTest/FirebasePodTest.xcodeproj/project.pbxproj @@ -180,7 +180,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -240,7 +240,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; diff --git a/Example/CombineSample/CombineSample.xcodeproj/project.pbxproj b/Example/CombineSample/CombineSample.xcodeproj/project.pbxproj index ef3abbd577..09a28288e5 100644 --- a/Example/CombineSample/CombineSample.xcodeproj/project.pbxproj +++ b/Example/CombineSample/CombineSample.xcodeproj/project.pbxproj @@ -245,7 +245,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -306,7 +306,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; diff --git a/Example/tvOSSample/tvOSSample.xcodeproj/project.pbxproj b/Example/tvOSSample/tvOSSample.xcodeproj/project.pbxproj index b038668b28..7939018b59 100644 --- a/Example/tvOSSample/tvOSSample.xcodeproj/project.pbxproj +++ b/Example/tvOSSample/tvOSSample.xcodeproj/project.pbxproj @@ -262,7 +262,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -318,7 +318,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; diff --git a/Example/watchOSSample/SampleWatchApp.xcodeproj/project.pbxproj b/Example/watchOSSample/SampleWatchApp.xcodeproj/project.pbxproj index 25f8acb524..f47ea465b0 100644 --- a/Example/watchOSSample/SampleWatchApp.xcodeproj/project.pbxproj +++ b/Example/watchOSSample/SampleWatchApp.xcodeproj/project.pbxproj @@ -499,7 +499,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -558,7 +558,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; diff --git a/Firebase.podspec b/Firebase.podspec index 1c2084d773..ea979e023c 100644 --- a/Firebase.podspec +++ b/Firebase.podspec @@ -23,7 +23,7 @@ Simplify your app development, grow your user base, and monetize more effectivel ] s.social_media_url = 'https://twitter.com/Firebase' s.ios.deployment_target = '15.0' - s.osx.deployment_target = '10.15' + s.osx.deployment_target = '11.0' s.tvos.deployment_target = '15.0' s.cocoapods_version = '>= 1.12.0' @@ -34,7 +34,7 @@ Simplify your app development, grow your user base, and monetize more effectivel s.subspec 'Core' do |ss| ss.ios.deployment_target = '15.0' - ss.osx.deployment_target = '10.15' + ss.osx.deployment_target = '11.0' ss.tvos.deployment_target = '15.0' ss.ios.dependency 'FirebaseAnalytics', '~> 12.19.0' ss.osx.dependency 'FirebaseAnalytics', '~> 12.19.0' @@ -56,14 +56,14 @@ Simplify your app development, grow your user base, and monetize more effectivel } end ss.ios.deployment_target = '15.0' - ss.osx.deployment_target = '10.15' + ss.osx.deployment_target = '11.0' ss.tvos.deployment_target = '15.0' ss.watchos.deployment_target = '7.0' end s.subspec 'Analytics' do |ss| ss.ios.deployment_target = '15.0' - ss.osx.deployment_target = '10.15' + ss.osx.deployment_target = '11.0' ss.tvos.deployment_target = '15.0' ss.dependency 'Firebase/Core' end @@ -73,7 +73,7 @@ Simplify your app development, grow your user base, and monetize more effectivel ss.dependency 'FirebaseABTesting', '~> 12.19.0' # Standard platforms PLUS watchOS. ss.ios.deployment_target = '15.0' - ss.osx.deployment_target = '10.15' + ss.osx.deployment_target = '11.0' ss.tvos.deployment_target = '15.0' ss.watchos.deployment_target = '7.0' end @@ -88,7 +88,7 @@ Simplify your app development, grow your user base, and monetize more effectivel ss.dependency 'Firebase/CoreOnly' ss.dependency 'FirebaseAppCheck', '~> 12.19.0' ss.ios.deployment_target = '15.0' - ss.osx.deployment_target = '10.15' + ss.osx.deployment_target = '11.0' ss.tvos.deployment_target = '15.0' ss.watchos.deployment_target = '7.0' end @@ -98,7 +98,7 @@ Simplify your app development, grow your user base, and monetize more effectivel ss.dependency 'FirebaseAuth', '~> 12.19.0' # Standard platforms PLUS watchOS. ss.ios.deployment_target = '15.0' - ss.osx.deployment_target = '10.15' + ss.osx.deployment_target = '11.0' ss.tvos.deployment_target = '15.0' ss.watchos.deployment_target = '7.0' end @@ -108,7 +108,7 @@ Simplify your app development, grow your user base, and monetize more effectivel ss.dependency 'FirebaseCrashlytics', '~> 12.19.0' # Standard platforms PLUS watchOS. ss.ios.deployment_target = '15.0' - ss.osx.deployment_target = '10.15' + ss.osx.deployment_target = '11.0' ss.tvos.deployment_target = '15.0' ss.watchos.deployment_target = '7.0' end @@ -118,7 +118,7 @@ Simplify your app development, grow your user base, and monetize more effectivel ss.dependency 'FirebaseDatabase', '~> 12.19.0' # Standard platforms PLUS watchOS 7. ss.ios.deployment_target = '15.0' - ss.osx.deployment_target = '10.15' + ss.osx.deployment_target = '11.0' ss.tvos.deployment_target = '15.0' ss.watchos.deployment_target = '7.0' end @@ -127,7 +127,7 @@ Simplify your app development, grow your user base, and monetize more effectivel ss.dependency 'Firebase/CoreOnly' ss.dependency 'FirebaseFirestore', '~> 12.19.0' ss.ios.deployment_target = '15.0' - ss.osx.deployment_target = '10.15' + ss.osx.deployment_target = '11.0' ss.tvos.deployment_target = '15.0' end @@ -136,7 +136,7 @@ Simplify your app development, grow your user base, and monetize more effectivel ss.dependency 'FirebaseFunctions', '~> 12.19.0' # Standard platforms PLUS watchOS. ss.ios.deployment_target = '15.0' - ss.osx.deployment_target = '10.15' + ss.osx.deployment_target = '11.0' ss.tvos.deployment_target = '15.0' ss.watchos.deployment_target = '7.0' end @@ -159,7 +159,7 @@ Simplify your app development, grow your user base, and monetize more effectivel ss.dependency 'FirebaseMessaging', '~> 12.19.0' # Standard platforms PLUS watchOS. ss.ios.deployment_target = '15.0' - ss.osx.deployment_target = '10.15' + ss.osx.deployment_target = '11.0' ss.tvos.deployment_target = '15.0' ss.watchos.deployment_target = '7.0' end @@ -169,7 +169,7 @@ Simplify your app development, grow your user base, and monetize more effectivel ss.dependency 'FirebaseMLModelDownloader', '~> 12.19.0-beta' # Standard platforms PLUS watchOS. ss.ios.deployment_target = '15.0' - ss.osx.deployment_target = '10.15' + ss.osx.deployment_target = '11.0' ss.tvos.deployment_target = '15.0' ss.watchos.deployment_target = '7.0' end @@ -187,7 +187,7 @@ Simplify your app development, grow your user base, and monetize more effectivel ss.dependency 'FirebaseRemoteConfig', '~> 12.19.0' # Standard platforms PLUS watchOS. ss.ios.deployment_target = '15.0' - ss.osx.deployment_target = '10.15' + ss.osx.deployment_target = '11.0' ss.tvos.deployment_target = '15.0' ss.watchos.deployment_target = '7.0' end @@ -197,7 +197,7 @@ Simplify your app development, grow your user base, and monetize more effectivel ss.dependency 'FirebaseStorage', '~> 12.19.0' # Standard platforms PLUS watchOS. ss.ios.deployment_target = '15.0' - ss.osx.deployment_target = '10.15' + ss.osx.deployment_target = '11.0' ss.tvos.deployment_target = '15.0' ss.watchos.deployment_target = '7.0' end diff --git a/FirebaseAuth.podspec b/FirebaseAuth.podspec index 568050e6d5..aaf8b50c1d 100644 --- a/FirebaseAuth.podspec +++ b/FirebaseAuth.podspec @@ -20,7 +20,7 @@ supports email and password accounts, as well as several 3rd party authenticatio s.social_media_url = 'https://twitter.com/Firebase' ios_deployment_target = '15.0' - osx_deployment_target = '10.15' + osx_deployment_target = '11.0' tvos_deployment_target = '15.0' watchos_deployment_target = '7.0' diff --git a/FirebaseAuthInterop.podspec b/FirebaseAuthInterop.podspec index 75144b6279..2798a7a4de 100644 --- a/FirebaseAuthInterop.podspec +++ b/FirebaseAuthInterop.podspec @@ -21,7 +21,7 @@ Pod::Spec.new do |s| } s.social_media_url = 'https://twitter.com/Firebase' s.ios.deployment_target = '15.0' - s.osx.deployment_target = '10.15' + s.osx.deployment_target = '11.0' s.tvos.deployment_target = '15.0' s.watchos.deployment_target = '7.0' diff --git a/FirebaseAuthTestingSupport.podspec b/FirebaseAuthTestingSupport.podspec index 7ca58339e1..db01b10002 100644 --- a/FirebaseAuthTestingSupport.podspec +++ b/FirebaseAuthTestingSupport.podspec @@ -18,7 +18,7 @@ Pod::Spec.new do |s| } ios_deployment_target = '15.0' - osx_deployment_target = '10.15' + osx_deployment_target = '11.0' tvos_deployment_target = '15.0' watchos_deployment_target = '7.0' diff --git a/FirebaseCoreExtension.podspec b/FirebaseCoreExtension.podspec index affae56c9b..50fa0c9455 100644 --- a/FirebaseCoreExtension.podspec +++ b/FirebaseCoreExtension.podspec @@ -23,7 +23,7 @@ Pod::Spec.new do |s| s.swift_version = '5.9' s.ios.deployment_target = '15.0' - s.osx.deployment_target = '10.15' + s.osx.deployment_target = '11.0' s.tvos.deployment_target = '15.0' s.watchos.deployment_target = '7.0' diff --git a/FirebaseCrashlytics.podspec b/FirebaseCrashlytics.podspec index 593264d2f7..9189e3ba33 100644 --- a/FirebaseCrashlytics.podspec +++ b/FirebaseCrashlytics.podspec @@ -12,7 +12,7 @@ Pod::Spec.new do |s| } ios_deployment_target = '15.0' - osx_deployment_target = '10.15' + osx_deployment_target = '11.0' tvos_deployment_target = '15.0' watchos_deployment_target = '7.0' @@ -112,7 +112,7 @@ Pod::Spec.new do |s| # Unit tests can't run on watchOS. unit_tests.platforms = { :ios => ios_deployment_target, - :osx => '10.15', + :osx => osx_deployment_target, :tvos => tvos_deployment_target } unit_tests.source_files = 'Crashlytics/UnitTests/*.[mh]', diff --git a/FirebaseFirestore.podspec b/FirebaseFirestore.podspec index cceaa271ef..e3dd409487 100644 --- a/FirebaseFirestore.podspec +++ b/FirebaseFirestore.podspec @@ -14,7 +14,7 @@ Google Cloud Firestore is a NoSQL document database built for automatic scaling, } s.ios.deployment_target = '15.0' - s.osx.deployment_target = '10.15' + s.osx.deployment_target = '11.0' s.tvos.deployment_target = '15.0' s.swift_version = '5.9' diff --git a/FirebaseFirestoreInternal.podspec b/FirebaseFirestoreInternal.podspec index d1f8afede7..3f91612e26 100644 --- a/FirebaseFirestoreInternal.podspec +++ b/FirebaseFirestoreInternal.podspec @@ -17,7 +17,7 @@ Google Cloud Firestore is a NoSQL document database built for automatic scaling, } s.ios.deployment_target = '15.0' - s.osx.deployment_target = '10.15' + s.osx.deployment_target = '11.0' s.tvos.deployment_target = '15.0' s.swift_version = '5.9' @@ -95,7 +95,7 @@ Google Cloud Firestore is a NoSQL document database built for automatic scaling, s.dependency 'FirebaseAppCheckInterop', '~> 12.19.0' s.dependency 'FirebaseCore', '~> 12.19.0' - abseil_version = '~> 1.20240722.0' + abseil_version = '~> 1.20250512.2' s.dependency 'abseil/algorithm', abseil_version s.dependency 'abseil/base', abseil_version s.dependency 'abseil/container/flat_hash_map', abseil_version @@ -105,8 +105,8 @@ Google Cloud Firestore is a NoSQL document database built for automatic scaling, s.dependency 'abseil/time', abseil_version s.dependency 'abseil/types', abseil_version - s.dependency 'gRPC-Core', '~> 1.69.0' - s.dependency 'gRPC-C++', '~> 1.69.0' + s.dependency 'gRPC-Core', '~> 1.83.1' + s.dependency 'gRPC-C++', '~> 1.83.1' s.dependency 'leveldb-library', '~> 1.22' s.dependency 'nanopb', '~> 3.30910.0' @@ -116,7 +116,7 @@ Google Cloud Firestore is a NoSQL document database built for automatic scaling, s.library = 'c++' s.pod_target_xcconfig = { - 'CLANG_CXX_LANGUAGE_STANDARD' => 'c++14', + 'CLANG_CXX_LANGUAGE_STANDARD' => 'c++17', 'CLANG_CXX_LIBRARY' => 'libc++', 'GCC_PREPROCESSOR_DEFINITIONS' => "FIRFirestore_VERSION=#{s.version} " + diff --git a/FirebaseMessagingInterop.podspec b/FirebaseMessagingInterop.podspec index 4bb622599c..463f6120f5 100644 --- a/FirebaseMessagingInterop.podspec +++ b/FirebaseMessagingInterop.podspec @@ -21,7 +21,7 @@ Pod::Spec.new do |s| } s.social_media_url = 'https://twitter.com/Firebase' s.ios.deployment_target = '15.0' - s.osx.deployment_target = '10.15' + s.osx.deployment_target = '11.0' s.tvos.deployment_target = '15.0' s.watchos.deployment_target = '7.0' diff --git a/FirebaseRemoteConfig.podspec b/FirebaseRemoteConfig.podspec index 447b50ff2b..db7bc15261 100644 --- a/FirebaseRemoteConfig.podspec +++ b/FirebaseRemoteConfig.podspec @@ -19,7 +19,7 @@ app update. } s.social_media_url = 'https://twitter.com/Firebase' ios_deployment_target = '15.0' - osx_deployment_target = '10.15' + osx_deployment_target = '11.0' tvos_deployment_target = '15.0' watchos_deployment_target = '7.0' diff --git a/FirebaseRemoteConfigInterop.podspec b/FirebaseRemoteConfigInterop.podspec index 5ea23cbd1e..6bb38f4340 100644 --- a/FirebaseRemoteConfigInterop.podspec +++ b/FirebaseRemoteConfigInterop.podspec @@ -28,7 +28,7 @@ Pod::Spec.new do |s| # The ios deployment target must support Crashlytics. s.ios.deployment_target = '15.0' - s.osx.deployment_target = '10.15' + s.osx.deployment_target = '11.0' s.tvos.deployment_target = '15.0' s.watchos.deployment_target = '7.0' diff --git a/Firestore/CHANGELOG.md b/Firestore/CHANGELOG.md index cdbd61c312..0e3d3a73e3 100644 --- a/Firestore/CHANGELOG.md +++ b/Firestore/CHANGELOG.md @@ -1,3 +1,8 @@ +# Unreleased +- [changed] Dropped C++14 support; Firestore now requires C++17. +- [changed] Update gRPC dependency to 1.83.1. +- [changed] Update Abseil dependency to 1.20250512.2. + # 12.19.0 - [feature] Added support for `minimum` and `maximum` FieldValue operations [#16159]. diff --git a/Firestore/Example/Firestore.xcodeproj/project.pbxproj b/Firestore/Example/Firestore.xcodeproj/project.pbxproj index f68b0f8ee2..993a66b8eb 100644 --- a/Firestore/Example/Firestore.xcodeproj/project.pbxproj +++ b/Firestore/Example/Firestore.xcodeproj/project.pbxproj @@ -26,6 +26,7 @@ 020AFD89BB40E5175838BB76 /* local_serializer_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = F8043813A5D16963EC02B182 /* local_serializer_test.cc */; }; 021058F033B6BBA599DEE1FD /* sort_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 15EAAEEE767299A3CDA96132 /* sort_test.cc */; }; 022BA1619A576F6818B212C5 /* remote_store_spec_test.json in Resources */ = {isa = PBXBuildFile; fileRef = 3B843E4A1F3930A400548890 /* remote_store_spec_test.json */; }; + 028BEB67C8B486FC461F8A07 /* AsyncSequenceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 157899B132ED897A03A3B2FB /* AsyncSequenceTests.swift */; }; 02C953A7B0FA5EF87DB0361A /* FSTIntegrationTestCase.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5491BC711FB44593008B3588 /* FSTIntegrationTestCase.mm */; }; 02E1EA3818F4BEEA9CE40DAE /* timestamp_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 82DF854A7238D538FA53C908 /* timestamp_test.cc */; }; 02EB33CC2590E1484D462912 /* annotations.pb.cc in Sources */ = {isa = PBXBuildFile; fileRef = 618BBE9520B89AAC00B5BCE7 /* annotations.pb.cc */; }; @@ -152,6 +153,7 @@ 128F2B022E254E2C0006327E /* QueryToPipelineTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 128F2B002E254E2C0006327E /* QueryToPipelineTests.swift */; }; 128F2B032E254E2C0006327E /* QueryToPipelineTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 128F2B002E254E2C0006327E /* QueryToPipelineTests.swift */; }; 1290FA77A922B76503AE407C /* lru_garbage_collector_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 277EAACC4DD7C21332E8496A /* lru_garbage_collector_test.cc */; }; + 1291BC7F4E00120075F924B8 /* AsyncSequenceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 157899B132ED897A03A3B2FB /* AsyncSequenceTests.swift */; }; 1291D9F5300AFACD1FBD262D /* array_sorted_map_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 54EB764C202277B30088B8F3 /* array_sorted_map_test.cc */; }; 129A369A28CA555B005AE7E2 /* FIRCountTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 129A369928CA555B005AE7E2 /* FIRCountTests.mm */; }; 129A369B28CA555B005AE7E2 /* FIRCountTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 129A369928CA555B005AE7E2 /* FIRCountTests.mm */; }; @@ -452,7 +454,6 @@ 3C63B6ED2E494437BBAD82D7 /* mirroring_semantics_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = F3704E3BF509EE783D0B0F08 /* mirroring_semantics_test.cc */; }; 3C9DEC46FE7B3995A4EA629C /* memory_globals_cache_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 5C6DEA63FBDE19D841291723 /* memory_globals_cache_test.cc */; }; 3CCABD7BB5ED39DF1140B5F0 /* leveldb_globals_cache_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = FC44D934D4A52C790659C8D6 /* leveldb_globals_cache_test.cc */; }; - 3CD19EF20299AA20D8F71F8E /* AsyncSequenceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F3EEA0F8A85AE6E345DB1B2 /* AsyncSequenceTests.swift */; }; 3CFFA6F016231446367E3A69 /* listen_spec_test.json in Resources */ = {isa = PBXBuildFile; fileRef = 54DA12A01F315EE100DD57A1 /* listen_spec_test.json */; }; 3D1365A99984C2F86C2B8A82 /* timestamp_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 82DF854A7238D538FA53C908 /* timestamp_test.cc */; }; 3D22F56C0DE7C7256C75DC06 /* tree_sorted_map_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 549CCA4D20A36DBB00BCEB75 /* tree_sorted_map_test.cc */; }; @@ -566,6 +567,7 @@ 4DC660A62BC2B6369DA5C563 /* status_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 54A0352C20A3B3D7003E0143 /* status_test.cc */; }; 4DF18D15AC926FB7A4888313 /* lru_garbage_collector_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 277EAACC4DD7C21332E8496A /* lru_garbage_collector_test.cc */; }; 4E0777435A9A26B8B2C08A1E /* remote_document_cache_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7EB299CF85034F09CFD6F3FD /* remote_document_cache_test.cc */; }; + 4E0C084C7949DAFD0A479A46 /* LargeDocIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B09C4BFF13D17A37DDBAEDF9 /* LargeDocIntegrationTests.swift */; }; 4E2E0314F9FDD7BCED60254A /* counting_query_engine.cc in Sources */ = {isa = PBXBuildFile; fileRef = 99434327614FEFF7F7DC88EC /* counting_query_engine.cc */; }; 4E7981690432CDFA2058E3EC /* FSTTestingHooks.mm in Sources */ = {isa = PBXBuildFile; fileRef = D85AC18C55650ED230A71B82 /* FSTTestingHooks.mm */; }; 4E8C2C4BA1C682418A379880 /* disjunctive_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 2BE59C9C2992E1A580D02935 /* disjunctive_test.cc */; }; @@ -591,7 +593,6 @@ 5250AE69A391E7A3310E013B /* listen_source_spec_test.json in Resources */ = {isa = PBXBuildFile; fileRef = 4D9E51DA7A275D8B1CAEAEB2 /* listen_source_spec_test.json */; }; 52967C3DD7896BFA48840488 /* byte_string_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 5342CDDB137B4E93E2E85CCA /* byte_string_test.cc */; }; 529AB59F636060FEA21BD4FF /* garbage_collection_spec_test.json in Resources */ = {isa = PBXBuildFile; fileRef = AAED89D7690E194EF3BA1132 /* garbage_collection_spec_test.json */; }; - 52DD091174079A4BAF2F3BFA /* AsyncSequenceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F3EEA0F8A85AE6E345DB1B2 /* AsyncSequenceTests.swift */; }; 5360D52DCAD1069B1E4B0B9D /* testing_hooks_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = A002425BC4FC4E805F4175B6 /* testing_hooks_test.cc */; }; 53AB47E44D897C81A94031F6 /* write.pb.cc in Sources */ = {isa = PBXBuildFile; fileRef = 544129D921C2DDC800EFB9CC /* write.pb.cc */; }; 53BBB5CDED453F923ADD08D2 /* stream_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 5B5414D28802BC76FDADABD6 /* stream_test.cc */; }; @@ -937,6 +938,7 @@ 7264B73291F7F1EB454C45B1 /* FIRIndexingTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 795AA8FC31D2AF6864B07D39 /* FIRIndexingTests.mm */; }; 7272BD4FEC80177D38508BF1 /* complex_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = B32C2DDDEC16F6465317B8AE /* complex_test.cc */; }; 7281C2F04838AFFDF6A762DF /* memory_remote_document_cache_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1CA9800A53669EFBFFB824E3 /* memory_remote_document_cache_test.cc */; }; + 729A8B2C7BBEE285FB1470B2 /* AsyncSequenceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 157899B132ED897A03A3B2FB /* AsyncSequenceTests.swift */; }; 72AD91671629697074F2545B /* ordered_code_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = AB380D03201BC6E400D97691 /* ordered_code_test.cc */; }; 72B25B2D698E4746143D5B74 /* memory_lru_garbage_collector_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9765D47FA12FA283F4EFAD02 /* memory_lru_garbage_collector_test.cc */; }; 72B53221FD099862C4BDBA2D /* FIRFieldValueTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E04A202154AA00B64F25 /* FIRFieldValueTests.mm */; }; @@ -1435,6 +1437,7 @@ BE767D2312D2BE84484309A0 /* event_manager_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 6F57521E161450FAF89075ED /* event_manager_test.cc */; }; BE869F90074A4B0B948A3D65 /* debug_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = F6DBD8EDF0074DD0079ECCE6 /* debug_test.cc */; }; BE92E16A9B9B7AD5EB072919 /* string_format_apple_test.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9CFD366B783AE27B9E79EE7A /* string_format_apple_test.mm */; }; + BED4503BF15EF8D3D7DD05E0 /* LargeDocIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B09C4BFF13D17A37DDBAEDF9 /* LargeDocIntegrationTests.swift */; }; BEE0294A23AB993E5DE0E946 /* leveldb_util_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 332485C4DCC6BA0DBB5E31B7 /* leveldb_util_test.cc */; }; BEF0365AD2718B8B70715978 /* statusor_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 54A0352D20A3B3D7003E0143 /* statusor_test.cc */; }; BEF35ECEE80F9F5161E7743A /* filter_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = F02F734F272C3C70D1307076 /* filter_test.cc */; }; @@ -1688,6 +1691,7 @@ E6821243C510797EFFC7BCE2 /* grpc_streaming_reader_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = B6D964922154AB8F00EB9CFB /* grpc_streaming_reader_test.cc */; }; E688620D4578F1F7FBB1AF9C /* EncodableFieldValueTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1235769122B7E915007DDFA9 /* EncodableFieldValueTests.swift */; }; E6B825EE85BF20B88AF3E3CD /* memory_index_manager_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = DB5A1E760451189DA36028B3 /* memory_index_manager_test.cc */; }; + E6D9ADF7CFD7049294312929 /* LargeDocIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B09C4BFF13D17A37DDBAEDF9 /* LargeDocIntegrationTests.swift */; }; E6F8EB02A0E499F25160BB40 /* FIRFieldPathTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E04C202154AA00B64F25 /* FIRFieldPathTests.mm */; }; E72A77095FF6814267DF0F6D /* md5_testing.cc in Sources */ = {isa = PBXBuildFile; fileRef = E2E39422953DE1D3C7B97E77 /* md5_testing.cc */; }; E74D6C1056DE29969B5C4C62 /* md5_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3D050936A2D52257FD17FB6E /* md5_test.cc */; }; @@ -1734,7 +1738,6 @@ ED14A67E34AEDF55232096EF /* Validation_BloomFilterTest_MD5_5000_0001_membership_test_result.json in Resources */ = {isa = PBXBuildFile; fileRef = C8582DFD74E8060C7072104B /* Validation_BloomFilterTest_MD5_5000_0001_membership_test_result.json */; }; ED420D8F49DA5C41EEF93913 /* FIRSnapshotMetadataTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E04D202154AA00B64F25 /* FIRSnapshotMetadataTests.mm */; }; ED4E2AC80CAF2A8FDDAC3DEE /* field_mask_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 549CCA5320A36E1F00BCEB75 /* field_mask_test.cc */; }; - ED6F2E19CFE231B0251464C9 /* AsyncSequenceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F3EEA0F8A85AE6E345DB1B2 /* AsyncSequenceTests.swift */; }; ED9DF1EB20025227B38736EC /* message_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = CE37875365497FFA8687B745 /* message_test.cc */; }; EDF35B147B116F659D0D2CA8 /* Validation_BloomFilterTest_MD5_1_0001_membership_test_result.json in Resources */ = {isa = PBXBuildFile; fileRef = C939D1789E38C09F9A0C1157 /* Validation_BloomFilterTest_MD5_1_0001_membership_test_result.json */; }; EE470CC3C8FBCDA5F70A8466 /* local_store_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 307FF03D0297024D59348EBD /* local_store_test.cc */; }; @@ -1935,6 +1938,7 @@ 132E32997D781B896672D30A /* reference_set_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reference_set_test.cc; sourceTree = ""; }; 13686A75655552CE5D44751E /* Pods_Firestore_Tests_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Firestore_Tests_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 15249D092D85B40EFC8A1459 /* pipeline.pb.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = pipeline.pb.h; sourceTree = ""; }; + 157899B132ED897A03A3B2FB /* AsyncSequenceTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AsyncSequenceTests.swift; path = Unit/AsyncAwait/AsyncSequenceTests.swift; sourceTree = ""; }; 15EAAEEE767299A3CDA96132 /* sort_test.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = sort_test.cc; path = pipeline/sort_test.cc; sourceTree = ""; }; 166CE73C03AB4366AAC5201C /* leveldb_index_manager_test.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; path = leveldb_index_manager_test.cc; sourceTree = ""; }; 1924149B429A2020C3CD94D6 /* utils.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = utils.cc; path = pipeline/utils.cc; sourceTree = ""; }; @@ -1947,7 +1951,6 @@ 1C3F7302BF4AE6CBC00ECDD0 /* resource.pb.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; path = resource.pb.cc; sourceTree = ""; }; 1CA9800A53669EFBFFB824E3 /* memory_remote_document_cache_test.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; path = memory_remote_document_cache_test.cc; sourceTree = ""; }; 1E0C7C0DCD2790019E66D8CC /* bloom_filter.pb.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; path = bloom_filter.pb.cc; sourceTree = ""; }; - 1F3EEA0F8A85AE6E345DB1B2 /* AsyncSequenceTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AsyncSequenceTests.swift; path = Unit/AsyncAwait/AsyncSequenceTests.swift; sourceTree = ""; }; 1F50E872B3F117A674DA8E94 /* index_backfiller_test.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; path = index_backfiller_test.cc; sourceTree = ""; }; 1F78CD3208A1D5885B4C134E /* field_behavior.pb.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; path = field_behavior.pb.cc; sourceTree = ""; }; 214877F52A705012D6720CA0 /* object_value_test.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; path = object_value_test.cc; sourceTree = ""; }; @@ -2269,6 +2272,7 @@ AE89CFF09C6804573841397F /* leveldb_document_overlay_cache_test.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; path = leveldb_document_overlay_cache_test.cc; sourceTree = ""; }; AF924C79F49F793992A84879 /* aggregate_query_test.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = aggregate_query_test.cc; path = api/aggregate_query_test.cc; sourceTree = ""; }; B0520A41251254B3C24024A3 /* Validation_BloomFilterTest_MD5_5000_01_membership_test_result.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; name = Validation_BloomFilterTest_MD5_5000_01_membership_test_result.json; path = bloom_filter_golden_test_data/Validation_BloomFilterTest_MD5_5000_01_membership_test_result.json; sourceTree = ""; }; + B09C4BFF13D17A37DDBAEDF9 /* LargeDocIntegrationTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LargeDocIntegrationTests.swift; sourceTree = ""; }; B32C2DDDEC16F6465317B8AE /* complex_test.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = complex_test.cc; path = pipeline/complex_test.cc; sourceTree = ""; }; B37729DE4DE097CBBCB9B0DD /* error_handling_test.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = error_handling_test.cc; path = pipeline/error_handling_test.cc; sourceTree = ""; }; B5C2A94EE24E60543F62CC35 /* bundle_serializer_test.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = bundle_serializer_test.cc; path = bundle/bundle_serializer_test.cc; sourceTree = ""; }; @@ -2511,6 +2515,7 @@ 124C932B22C1642C00CA8C2D /* CodableIntegrationTests.swift */, 3355BE9391CC4857AF0BDAE3 /* DatabaseTests.swift */, 62E54B832A9E910A003347C8 /* IndexingTests.swift */, + B09C4BFF13D17A37DDBAEDF9 /* LargeDocIntegrationTests.swift */, 59BF06E5A4988F9F949DD871 /* PipelineApiTests.swift */, 0ED12BF8159EA7E3EF208036 /* PipelineSubqueryTests.swift */, 861684E49DAC993D153E60D0 /* PipelineTests.swift */, @@ -2523,10 +2528,18 @@ path = Integration; sourceTree = ""; }; - 24C7067A4A3A8C1B87B879F8 /* AsyncAwait */ = { + 2B9416F41332897C44F8AC72 /* Unit */ = { isa = PBXGroup; children = ( - 1F3EEA0F8A85AE6E345DB1B2 /* AsyncSequenceTests.swift */, + 37C209E504495E8536DF6406 /* AsyncAwait */, + ); + name = Unit; + sourceTree = ""; + }; + 37C209E504495E8536DF6406 /* AsyncAwait */ = { + isa = PBXGroup; + children = ( + 157899B132ED897A03A3B2FB /* AsyncSequenceTests.swift */, ); name = AsyncAwait; sourceTree = ""; @@ -2820,7 +2833,7 @@ 5495EB012040E90200EBA509 /* Codable */, 124C932A22C1635300CA8C2D /* Integration */, C7D3D622BB13EB3C3301DA4F /* TestHelper */, - D7C1545F948B5D9C8FE393E6 /* Unit */, + 2B9416F41332897C44F8AC72 /* Unit */, 620C1427763BA5D3CCFB5A1F /* BridgingHeader.h */, 54C9EDF52040E16300A969CD /* Info.plist */, ); @@ -3245,14 +3258,6 @@ name = TestHelper; sourceTree = ""; }; - D7C1545F948B5D9C8FE393E6 /* Unit */ = { - isa = PBXGroup; - children = ( - 24C7067A4A3A8C1B87B879F8 /* AsyncAwait */, - ); - name = Unit; - sourceTree = ""; - }; DAFF0CF621E64AC30062958F /* macOS */ = { isa = PBXGroup; children = ( @@ -4955,7 +4960,7 @@ files = ( EF6C286F29E6D22200A7D4F1 /* AggregationIntegrationTests.swift in Sources */, 062072B92773A055001655D7 /* AsyncAwaitIntegrationTests.swift in Sources */, - 3CD19EF20299AA20D8F71F8E /* AsyncSequenceTests.swift in Sources */, + 1291BC7F4E00120075F924B8 /* AsyncSequenceTests.swift in Sources */, 733AFC467B600967536BD70F /* BasicCompileTests.swift in Sources */, 79987AF2DF1FCE799008B846 /* CodableGeoPointTests.swift in Sources */, 1C79AE3FBFC91800E30D092C /* CodableIntegrationTests.swift in Sources */, @@ -5012,6 +5017,7 @@ 432056C4D1259F76C80FC2A8 /* FSTUserDataReaderTests.mm in Sources */, 3B1E27D951407FD237E64D07 /* FirestoreEncoderTests.swift in Sources */, 62E54B862A9E910B003347C8 /* IndexingTests.swift in Sources */, + E6D9ADF7CFD7049294312929 /* LargeDocIntegrationTests.swift in Sources */, 3D5F7AA7BB68529F47BE4B12 /* PipelineApiTests.swift in Sources */, 559205533927D064711DE290 /* PipelineSubqueryTests.swift in Sources */, 655F8647F57E5F2155DFF7B5 /* PipelineTests.swift in Sources */, @@ -5213,8 +5219,8 @@ 25D74F38A5EE96CC653ABB49 /* thread_safe_memoizer_testing.cc in Sources */, 688AC36AA9D0677E910D5A37 /* thread_safe_memoizer_testing_test.cc in Sources */, 6300709ECDE8E0B5A8645F8D /* time_testing.cc in Sources */, - A405A976DB6444D3ED3FCAB2 /* timestamp_test.cc in Sources */, 0CEE93636BA4852D3C5EC428 /* timestamp_test.cc in Sources */, + A405A976DB6444D3ED3FCAB2 /* timestamp_test.cc in Sources */, 95DCD082374F871A86EF905F /* to_string_apple_test.mm in Sources */, 9E656F4FE92E8BFB7F625283 /* to_string_test.cc in Sources */, 96D95E144C383459D4E26E47 /* token_test.cc in Sources */, @@ -5240,7 +5246,7 @@ files = ( EF6C286E29E6D22200A7D4F1 /* AggregationIntegrationTests.swift in Sources */, 062072B82773A055001655D7 /* AsyncAwaitIntegrationTests.swift in Sources */, - ED6F2E19CFE231B0251464C9 /* AsyncSequenceTests.swift in Sources */, + 729A8B2C7BBEE285FB1470B2 /* AsyncSequenceTests.swift in Sources */, B896E5DE1CC27347FAC009C3 /* BasicCompileTests.swift in Sources */, 722F9A798F39F7D1FE7CF270 /* CodableGeoPointTests.swift in Sources */, CF5DE1ED21DD0A9783383A35 /* CodableIntegrationTests.swift in Sources */, @@ -5297,6 +5303,7 @@ 75A176239B37354588769206 /* FSTUserDataReaderTests.mm in Sources */, 5E89B1A5A5430713C79C4854 /* FirestoreEncoderTests.swift in Sources */, 62E54B852A9E910B003347C8 /* IndexingTests.swift in Sources */, + 4E0C084C7949DAFD0A479A46 /* LargeDocIntegrationTests.swift in Sources */, DF6FBE5BBD578B0DD34CEFA1 /* PipelineApiTests.swift in Sources */, BC433C1588F1099308029C37 /* PipelineSubqueryTests.swift in Sources */, C8C2B945D84DD98391145F3F /* PipelineTests.swift in Sources */, @@ -5498,8 +5505,8 @@ CF18D52A88F4F6F62C5495EF /* thread_safe_memoizer_testing.cc in Sources */, A7669E72BCED7FBADA4B1314 /* thread_safe_memoizer_testing_test.cc in Sources */, A25FF76DEF542E01A2DF3B0E /* time_testing.cc in Sources */, - BDDAB87A7D76562BCB5D0BF8 /* timestamp_test.cc in Sources */, 1E42CD0F60EB22A5D0C86D1F /* timestamp_test.cc in Sources */, + BDDAB87A7D76562BCB5D0BF8 /* timestamp_test.cc in Sources */, F9705E595FC3818F13F6375A /* to_string_apple_test.mm in Sources */, 3BAFCABA851AE1865D904323 /* to_string_test.cc in Sources */, 1B9E54F4C4280A713B825981 /* token_test.cc in Sources */, @@ -5807,7 +5814,7 @@ files = ( EF6C286D29E6D22200A7D4F1 /* AggregationIntegrationTests.swift in Sources */, 062072B72773A055001655D7 /* AsyncAwaitIntegrationTests.swift in Sources */, - 52DD091174079A4BAF2F3BFA /* AsyncSequenceTests.swift in Sources */, + 028BEB67C8B486FC461F8A07 /* AsyncSequenceTests.swift in Sources */, F731A0CCD0220B370BC1BE8B /* BasicCompileTests.swift in Sources */, 7C5E017689012489AAB7718D /* CodableGeoPointTests.swift in Sources */, 54C3242322D3B627000FE6DD /* CodableIntegrationTests.swift in Sources */, @@ -5864,6 +5871,7 @@ F5BDECEB3B43BD1591EEADBD /* FSTUserDataReaderTests.mm in Sources */, 6F45846C159D3C063DBD3CBE /* FirestoreEncoderTests.swift in Sources */, 62E54B842A9E910B003347C8 /* IndexingTests.swift in Sources */, + BED4503BF15EF8D3D7DD05E0 /* LargeDocIntegrationTests.swift in Sources */, BD74B0E1FC752236A7376BC3 /* PipelineApiTests.swift in Sources */, 2A9BED29CBDB9815B74506D5 /* PipelineSubqueryTests.swift in Sources */, E04CB0D580980748D5DC453F /* PipelineTests.swift in Sources */, @@ -6065,8 +6073,8 @@ D928302820891CCCAD0437DD /* thread_safe_memoizer_testing.cc in Sources */, C099AEC05D44976755BA32A2 /* thread_safe_memoizer_testing_test.cc in Sources */, 2D220B9ABFA36CD7AC43D0A7 /* time_testing.cc in Sources */, - 06B8A653BC26CB2C96024993 /* timestamp_test.cc in Sources */, D91D86B29B86A60C05879A48 /* timestamp_test.cc in Sources */, + 06B8A653BC26CB2C96024993 /* timestamp_test.cc in Sources */, 60260A06871DCB1A5F3448D3 /* to_string_apple_test.mm in Sources */, ECED3B60C5718B085AAB14FB /* to_string_test.cc in Sources */, F0EA84FB66813F2BC164EF7C /* token_test.cc in Sources */, @@ -6336,6 +6344,10 @@ SDKROOT = appletvos; TARGETED_DEVICE_FAMILY = 3; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Firestore_Example_tvOS.app/Firestore_Example_tvOS"; + WARNING_CFLAGS = ( + "$(inherited)", + "-Wno-error=deprecated-declarations", + ); }; name = Debug; }; @@ -6359,6 +6371,10 @@ SDKROOT = appletvos; TARGETED_DEVICE_FAMILY = 3; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Firestore_Example_tvOS.app/Firestore_Example_tvOS"; + WARNING_CFLAGS = ( + "$(inherited)", + "-Wno-error=deprecated-declarations", + ); }; name = Release; }; @@ -6377,12 +6393,17 @@ COMBINE_HIDPI_IMAGES = YES; DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = "Tests/Tests-Info.plist"; + MACOSX_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = "com.google.Firestore-IntegrationTests-macOS"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Firestore_Example_macOS.app/Contents/MacOS/Firestore_Example_macOS"; + WARNING_CFLAGS = ( + "$(inherited)", + "-Wno-error=deprecated-declarations", + ); }; name = Debug; }; @@ -6402,12 +6423,17 @@ COPY_PHASE_STRIP = NO; DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = "Tests/Tests-Info.plist"; + MACOSX_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = "com.google.Firestore-IntegrationTests-macOS"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Firestore_Example_macOS.app/Contents/MacOS/Firestore_Example_macOS"; + WARNING_CFLAGS = ( + "$(inherited)", + "-Wno-error=deprecated-declarations", + ); }; name = Release; }; @@ -6443,7 +6469,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -6487,7 +6513,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ""; IPHONEOS_DEPLOYMENT_TARGET = 15.0; - MACOSX_DEPLOYMENT_TARGET = 10.15; + MACOSX_DEPLOYMENT_TARGET = 11.0; ONLY_ACTIVE_ARCH = YES; OTHER_CFLAGS = ""; SDKROOT = iphoneos; @@ -6501,7 +6527,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -6537,7 +6563,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ""; IPHONEOS_DEPLOYMENT_TARGET = 15.0; - MACOSX_DEPLOYMENT_TARGET = 10.15; + MACOSX_DEPLOYMENT_TARGET = 11.0; OTHER_CFLAGS = ""; SDKROOT = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; @@ -6838,6 +6864,10 @@ PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Firestore_Example_iOS.app/Firestore_Example_iOS"; + WARNING_CFLAGS = ( + "$(inherited)", + "-Wno-error=deprecated-declarations", + ); WRAPPER_EXTENSION = xctest; }; name = Debug; @@ -6863,6 +6893,10 @@ PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Firestore_Example_iOS.app/Firestore_Example_iOS"; + WARNING_CFLAGS = ( + "$(inherited)", + "-Wno-error=deprecated-declarations", + ); WRAPPER_EXTENSION = xctest; }; name = Release; diff --git a/Firestore/Example/GoogleBenchmark.podspec b/Firestore/Example/GoogleBenchmark.podspec index c91365438c..bfe67f97ff 100644 --- a/Firestore/Example/GoogleBenchmark.podspec +++ b/Firestore/Example/GoogleBenchmark.podspec @@ -34,7 +34,7 @@ Google's C++ benchmark framework. } s.ios.deployment_target = '15.0' - s.osx.deployment_target = '10.15' + s.osx.deployment_target = '11.0' s.tvos.deployment_target = '15.0' s.requires_arc = false diff --git a/Firestore/Example/GoogleTest.podspec b/Firestore/Example/GoogleTest.podspec index 82cedbe9ef..10b894d672 100644 --- a/Firestore/Example/GoogleTest.podspec +++ b/Firestore/Example/GoogleTest.podspec @@ -34,7 +34,7 @@ Google's C++ test framework. } s.ios.deployment_target = '15.0' - s.osx.deployment_target = '10.15' + s.osx.deployment_target = '11.0' s.tvos.deployment_target = '15.0' s.requires_arc = false diff --git a/Firestore/Example/LibFuzzer.podspec b/Firestore/Example/LibFuzzer.podspec index 1014d42171..635bb03a8c 100644 --- a/Firestore/Example/LibFuzzer.podspec +++ b/Firestore/Example/LibFuzzer.podspec @@ -29,7 +29,7 @@ Pod::Spec.new do |s| s.authors = 'LLVM Team' s.ios.deployment_target = '15.0' - s.osx.deployment_target = '10.15' + s.osx.deployment_target = '11.0' s.tvos.deployment_target = '15.0' s.source = { @@ -46,6 +46,6 @@ Pod::Spec.new do |s| s.library = 'c++' s.pod_target_xcconfig = { - 'CLANG_CXX_LANGUAGE_STANDARD' => 'c++11' + 'CLANG_CXX_LANGUAGE_STANDARD' => 'c++17' } end diff --git a/Firestore/Example/Podfile b/Firestore/Example/Podfile index 310c87badc..a5f9137455 100644 --- a/Firestore/Example/Podfile +++ b/Firestore/Example/Podfile @@ -99,7 +99,7 @@ if is_platform(:ios) configure_local_pods() - pod 'abseil', '~> 1.20240722.0' + pod 'abseil', '~> 1.20250512.2' target 'Firestore_Tests_iOS' do inherit! :search_paths @@ -131,11 +131,11 @@ end if is_platform(:osx) target 'Firestore_Example_macOS' do - platform :osx, '10.15' + platform :osx, '11.0' configure_local_pods() - pod 'abseil', '~> 1.20240722.0' + pod 'abseil', '~> 1.20250512.2' target 'Firestore_Tests_macOS' do inherit! :search_paths @@ -165,7 +165,7 @@ if is_platform(:tvos) configure_local_pods() - pod 'abseil', '~> 1.20240722.0' + pod 'abseil', '~> 1.20250512.2' target 'Firestore_Tests_tvOS' do inherit! :search_paths diff --git a/Firestore/Example/ProtobufCpp.podspec b/Firestore/Example/ProtobufCpp.podspec index 7ff09957ca..4bb2fda34d 100644 --- a/Firestore/Example/ProtobufCpp.podspec +++ b/Firestore/Example/ProtobufCpp.podspec @@ -30,7 +30,7 @@ Pod::Spec.new do |s| } s.ios.deployment_target = '15.0' - s.osx.deployment_target = '10.15' + s.osx.deployment_target = '11.0' s.tvos.deployment_target = '15.0' s.source_files = 'src/**/*.{h,cc,inc}', @@ -58,11 +58,11 @@ Pod::Spec.new do |s| s.header_mappings_dir = 'src/' - s.dependency 'abseil', '~> 1.20240722.0' + s.dependency 'abseil', '~> 1.20250512.2' # Set a CPP symbol so the code knows to use framework imports. s.pod_target_xcconfig = { - 'CLANG_CXX_LANGUAGE_STANDARD' => 'c++14', + 'CLANG_CXX_LANGUAGE_STANDARD' => 'c++17', 'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) ' + 'GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1 ' + diff --git a/Firestore/Protos/FrameworkMaker.xcodeproj/project.pbxproj b/Firestore/Protos/FrameworkMaker.xcodeproj/project.pbxproj index f7b4761dcf..087014456d 100644 --- a/Firestore/Protos/FrameworkMaker.xcodeproj/project.pbxproj +++ b/Firestore/Protos/FrameworkMaker.xcodeproj/project.pbxproj @@ -255,7 +255,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -288,7 +288,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 15.0; - MACOSX_DEPLOYMENT_TARGET = 10.15; + MACOSX_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -300,7 +300,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -327,7 +327,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 15.0; - MACOSX_DEPLOYMENT_TARGET = 10.15; + MACOSX_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; VALIDATE_PRODUCT = YES; diff --git a/Firestore/core/test/unit/remote/serializer_test.cc b/Firestore/core/test/unit/remote/serializer_test.cc index 5b6b8d9268..a26f39e60f 100644 --- a/Firestore/core/test/unit/remote/serializer_test.cc +++ b/Firestore/core/test/unit/remote/serializer_test.cc @@ -196,6 +196,18 @@ class SerializerTest : public ::testing::Test { ExpectDeserializationRoundTrip(key, absl::nullopt, read_time, proto); } + template + auto Decode(F decode_func, const P& proto, const Args&... args) { + ByteString bytes = ProtobufSerialize(proto); + StringReader reader{bytes}; + + auto message = Message::TryParse(&reader); + auto model = decode_func(serializer, reader.context(), *message, args...); + + EXPECT_OK(reader.status()); + return model; + } + void ExpectDeserializationRoundTrip(const WatchChange& model, const v1::ListenResponse& proto) { auto actual_model = Decode( @@ -573,19 +585,6 @@ class SerializerTest : public ::testing::Test { return writer.Release(); } - template - auto Decode(F decode_func, const P& proto, const Args&... args) -> - typename F::result_type { - ByteString bytes = ProtobufSerialize(proto); - StringReader reader{bytes}; - - auto message = Message::TryParse(&reader); - auto model = decode_func(serializer, reader.context(), *message, args...); - - EXPECT_OK(reader.status()); - return model; - } - std::string message_differences; MessageDifferencer msg_diff; }; diff --git a/Firestore/core/test/unit/util/iterator_adaptors_test.cc b/Firestore/core/test/unit/util/iterator_adaptors_test.cc index 6774d3b260..1b77e515d0 100644 --- a/Firestore/core/test/unit/util/iterator_adaptors_test.cc +++ b/Firestore/core/test/unit/util/iterator_adaptors_test.cc @@ -82,8 +82,14 @@ class IteratorAdaptorTest : public testing::Test { } template - class InlineStorageIter : public std::iterator { + class InlineStorageIter { public: + using iterator_category = std::input_iterator_tag; + using value_type = T; + using difference_type = std::ptrdiff_t; + using pointer = T*; + using reference = T&; + T* operator->() const { return get(); } @@ -567,9 +573,14 @@ TEST_F(IteratorAdaptorTest, IteratorPtrHasRandomAccessMethods) { EXPECT_EQ(88, value2); } -class MyInputIterator - : public std::iterator { +class MyInputIterator { public: + using iterator_category = std::input_iterator_tag; + using value_type = const int*; + using difference_type = std::ptrdiff_t; + using pointer = const int**; + using reference = const int*; + explicit MyInputIterator(int* x) : x_(x) { } const int* operator*() const { diff --git a/IntegrationTesting/ClientApp/ClientApp.xcodeproj/project.pbxproj b/IntegrationTesting/ClientApp/ClientApp.xcodeproj/project.pbxproj index 7c4fcaf425..592e66838e 100644 --- a/IntegrationTesting/ClientApp/ClientApp.xcodeproj/project.pbxproj +++ b/IntegrationTesting/ClientApp/ClientApp.xcodeproj/project.pbxproj @@ -38,9 +38,11 @@ EA7DF5AF29EF3328005664A7 /* FirebasePerformance in Frameworks */ = {isa = PBXBuildFile; platformFilters = (ios, tvos, ); productRef = EA7DF5AE29EF3328005664A7 /* FirebasePerformance */; }; EA7DF5B129EF3328005664A7 /* FirebaseRemoteConfig in Frameworks */ = {isa = PBXBuildFile; productRef = EA7DF5B029EF3328005664A7 /* FirebaseRemoteConfig */; }; EA7DF5B729EF3328005664A7 /* FirebaseStorageCombine-Community in Frameworks */ = {isa = PBXBuildFile; productRef = EA7DF5B629EF3328005664A7 /* FirebaseStorageCombine-Community */; }; + FB0F9C7D6CF165E9258B6298 /* Pods_ClientApp_CocoaPods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B68711824BE04672314AAE0 /* Pods_ClientApp_CocoaPods.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 7B68711824BE04672314AAE0 /* Pods_ClientApp_CocoaPods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ClientApp_CocoaPods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; EA05C7DD29F08D4B00D1014F /* objc-module-import-test.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "objc-module-import-test.m"; sourceTree = ""; }; EA05C7DF29F0911400D1014F /* objc-header-import-test.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "objc-header-import-test.m"; sourceTree = ""; }; EA1269B029EDF98800D79E66 /* ClientApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ClientApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -54,6 +56,8 @@ EA5A62932A9914F300F5711A /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; EA7DF54229EF20B9005664A7 /* swift-import-test.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "swift-import-test.swift"; sourceTree = ""; }; EA7DF54929EF2A92005664A7 /* firebase-ios-sdk */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = "firebase-ios-sdk"; path = ../../; sourceTree = ""; }; + FE7C4D7FE939B640C441AE88 /* Pods-ClientApp-CocoaPods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ClientApp-CocoaPods.release.xcconfig"; path = "Target Support Files/Pods-ClientApp-CocoaPods/Pods-ClientApp-CocoaPods.release.xcconfig"; sourceTree = ""; }; + FF50C8D76BE829FD8C27389E /* Pods-ClientApp-CocoaPods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ClientApp-CocoaPods.debug.xcconfig"; path = "Target Support Files/Pods-ClientApp-CocoaPods/Pods-ClientApp-CocoaPods.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -85,15 +89,27 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + FB0F9C7D6CF165E9258B6298 /* Pods_ClientApp_CocoaPods.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 37E8093B77D03919EB3953B7 /* Pods */ = { + isa = PBXGroup; + children = ( + FF50C8D76BE829FD8C27389E /* Pods-ClientApp-CocoaPods.debug.xcconfig */, + FE7C4D7FE939B640C441AE88 /* Pods-ClientApp-CocoaPods.release.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; DE305B6E2B7BE0B5000595B3 /* Frameworks */ = { isa = PBXGroup; children = ( + 7B68711824BE04672314AAE0 /* Pods_ClientApp_CocoaPods.framework */, ); name = Frameworks; sourceTree = ""; @@ -107,6 +123,7 @@ EA5A628A2A9914F000F5711A /* ClientApp-CocoaPods */, EA1269B129EDF98800D79E66 /* Products */, DE305B6E2B7BE0B5000595B3 /* Frameworks */, + 37E8093B77D03919EB3953B7 /* Pods */, ); sourceTree = ""; }; @@ -217,9 +234,11 @@ isa = PBXNativeTarget; buildConfigurationList = EA5A62972A9914F300F5711A /* Build configuration list for PBXNativeTarget "ClientApp-CocoaPods" */; buildPhases = ( + 58FD64FB65C2A3931D571D3F /* [CP] Check Pods Manifest.lock */, EA5A62852A9914F000F5711A /* Sources */, EA5A62862A9914F000F5711A /* Frameworks */, EA5A62872A9914F000F5711A /* Resources */, + 3946B1629DE15C11E2B01D69 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -289,6 +308,48 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 3946B1629DE15C11E2B01D69 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ClientApp-CocoaPods/Pods-ClientApp-CocoaPods-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ClientApp-CocoaPods/Pods-ClientApp-CocoaPods-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ClientApp-CocoaPods/Pods-ClientApp-CocoaPods-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 58FD64FB65C2A3931D571D3F /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-ClientApp-CocoaPods-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ EA1269AC29EDF98800D79E66 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -454,7 +515,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.15; + MACOSX_DEPLOYMENT_TARGET = 11.0; MARKETING_VERSION = 1.0; OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; PRODUCT_BUNDLE_IDENTIFIER = com.google.firebase.ClientApp; @@ -497,7 +558,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.15; + MACOSX_DEPLOYMENT_TARGET = 11.0; MARKETING_VERSION = 1.0; OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; PRODUCT_BUNDLE_IDENTIFIER = com.google.firebase.ClientApp; @@ -515,6 +576,7 @@ }; EA5A62952A9914F300F5711A /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = FF50C8D76BE829FD8C27389E /* Pods-ClientApp-CocoaPods.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -537,7 +599,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.15; + MACOSX_DEPLOYMENT_TARGET = 11.0; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = "com.google.firebase.ClientApp-CocoaPods"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -552,6 +614,7 @@ }; EA5A62962A9914F300F5711A /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = FE7C4D7FE939B640C441AE88 /* Pods-ClientApp-CocoaPods.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -574,7 +637,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.15; + MACOSX_DEPLOYMENT_TARGET = 11.0; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = "com.google.firebase.ClientApp-CocoaPods"; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/Package.swift b/Package.swift index 740aad5684..492002e5dc 100644 --- a/Package.swift +++ b/Package.swift @@ -24,11 +24,11 @@ let shouldUseSourceFirestore = Context.environment["FIREBASE_SOURCE_FIRESTORE"] let package = Package( name: "Firebase", - platforms: [.iOS(.v15), .macCatalyst(.v15), .macOS(.v10_15), .tvOS(.v15), .watchOS(.v7)], + platforms: [.iOS(.v15), .macCatalyst(.v15), .macOS(.v11), .tvOS(.v15), .watchOS(.v7)], products: packageProducts(), dependencies: packageDependencies(), targets: packageTargets(), - cxxLanguageStandard: CXXLanguageStandard.gnucxx14 + cxxLanguageStandard: CXXLanguageStandard.gnucxx17 ) // MARK: - Package Manifest Builders @@ -1458,13 +1458,15 @@ func abseilDependency() -> Package.Dependency { if shouldUseSourceFirestore { packageInfo = ( "https://github.com/firebase/abseil-cpp-SwiftPM.git", - "0.20240722.0" ..< "0.20240723.0" + "0.20250512.1" ..< "0.20250512.2" ) } else { packageInfo = ( "https://github.com/google/abseil-cpp-binary.git", - "1.2024072200.0" ..< "1.2024072300.0" + "1.2025051201.0" ..< "1.2025051202.0" ) + // TODO: Delete following line before merging. + return .package(url: packageInfo.url, revision: "c473b33da325bd2cb854ae7834fc63f9a5563464") } return .package(url: packageInfo.url, packageInfo.range) @@ -1476,9 +1478,11 @@ func grpcDependency() -> Package.Dependency { // If building Firestore from source, abseil will need to be built as source // as the headers in the binary version of abseil are unusable. if shouldUseSourceFirestore { - packageInfo = ("https://github.com/grpc/grpc-ios.git", "1.69.0" ..< "1.70.0") + packageInfo = ("https://github.com/grpc/grpc-ios.git", "1.83.1" ..< "1.84.0") } else { - packageInfo = ("https://github.com/google/grpc-binary.git", "1.69.0" ..< "1.70.0") + packageInfo = ("https://github.com/google/grpc-binary.git", "1.83.1" ..< "1.84.0") + // TODO: Delete following line before merging. + return .package(url: packageInfo.url, revision: "913d0ec56488611e32dc7a7291e627f467299aec") } return .package(url: packageInfo.url, packageInfo.range) @@ -1629,8 +1633,8 @@ func firestoreTargets() -> [Target] { } else { return .binaryTarget( name: "FirebaseFirestoreInternal", - url: "https://dl.google.com/firebase/ios/bin/firestore/12.19.0/rc0/FirebaseFirestoreInternal.zip", - checksum: "d1591c51943b0d68be5ca17c96c39e80ecac170a5e803c1c9d46e2d945d004d7" + url: "https://dl.google.com/firebase/ios/bin/firestore/13.0.0/pre_rc0/FirebaseFirestoreInternal.zip", + checksum: "dfbae6d47d6a427c31928db562344204e55a6af0c036a203c5dee8562d75b7d5" ) } }() diff --git a/cmake/compiler_setup.cmake b/cmake/compiler_setup.cmake index f214c55ca6..a5b9cfe93d 100644 --- a/cmake/compiler_setup.cmake +++ b/cmake/compiler_setup.cmake @@ -16,8 +16,8 @@ include(CheckCXXCompilerFlag) # C++ Compiler setup -# We use C++14 -set(CMAKE_CXX_STANDARD 14) +# We use C++17 +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) diff --git a/scripts/sync_project.rb b/scripts/sync_project.rb index fdf03f8d33..6b7e15780b 100755 --- a/scripts/sync_project.rb +++ b/scripts/sync_project.rb @@ -138,7 +138,10 @@ def sync_firestore(test_only) # Our public build can't include -Werror, but for development it's quite # helpful. - '-Werror' + '-Werror', + + # Ignore deprecated declaration warnings in third-party headers (such as gRPC 1.83.1) + '-Wno-error=deprecated-declarations' ] } @@ -555,6 +558,21 @@ class Syncer contents = Xcodeproj::Config.new(path) contents.merge!(requested) + + # Scalar settings must overwrite rather than concatenate with a space. + scalar_settings = [ + 'CLANG_CXX_LANGUAGE_STANDARD', + 'GCC_C_LANGUAGE_STANDARD', + 'SWIFT_OBJC_BRIDGING_HEADER', + 'SWIFT_VERSION', + 'INFOPLIST_FILE', + ] + requested.each do |key, value| + if scalar_settings.include?(key) + contents.attributes[key] = value + end + end + contents.save_as(path) end end