Repository: firebase/firebase-ios-sdk (language: cpp)

Issue:
Firebase 11 Minimum Supported version updates
### Description

In order to address Xcode warnings for no longer supported build targets and increase the ability of Firebase to use modern Swift features, update most of Firebase to a minimum iOS version of 13 and comparable versions for other platforms.

Exceptions to consider:
- Analytics and Crashlytics have historically needed to support older versions longer - proposing bumping to iOS 12, etc.
- AppCheck may have a GoogleSignIn dependency in the future - proposing bumping to iOS 12, etc.

### Reproducing the issue

_No response_

### Firebase SDK Version

11.0

### Xcode Version

15.2+

### Installation Method

N/A

### Firebase Product(s)

All

### Targeted Platforms

All

### Relevant Log Output

_No response_

### If using Swift Package Manager, the project's Package.resolved

<!--- Look below for instructions on how to share your Package.resolved. --->

<details>
<summary>Expand <code>Package.resolved</code> snippet</summary>
<br>

```json

Replace this line with the contents of your Package.resolved.

```

</details>


### If using CocoaPods, the project's Podfile.lock

<!--- Look below for instructions on how to share your Podfile.lock. --->

<details>
<summary>Expand <code>Podfile.lock</code> snippet</summary>
<br>

```yml

Replace this line with the contents of your Podfile.lock!

```

</details>



Discussion / hints:

Fix patch:
diff --git a/CoreOnly/Tests/FirebasePodTest/Podfile b/CoreOnly/Tests/FirebasePodTest/Podfile
index d5c3822537b..5724b18b03a 100644
--- a/CoreOnly/Tests/FirebasePodTest/Podfile
+++ b/CoreOnly/Tests/FirebasePodTest/Podfile
@@ -18,7 +18,6 @@ target 'FirebasePodTest' do
   pod 'FirebaseDatabase', :path => '../../../'
   pod 'FirebaseDynamicLinks', :path => '../../../'
   pod 'FirebaseFirestore', :path => '../../../'
-  pod 'FirebaseFirestoreSwift', :path => '../../../'
   pod 'FirebaseFunctions', :path => '../../../'
   pod 'FirebaseInAppMessaging', :path => '../../../'
   pod 'FirebaseInstallations', :path => '../../../'
diff --git a/Firebase.podspec b/Firebase.podspec
index bb29fb049db..d464a2205ea 100644
--- a/Firebase.podspec
+++ b/Firebase.podspec
@@ -22,20 +22,20 @@ Simplify your app development, grow your user base, and monetize more effectivel
     "CoreOnly/README.md"
   ]
   s.social_media_url = 'https://twitter.com/Firebase'
-  s.ios.deployment_target = '10.0'
-  s.osx.deployment_target = '10.13'
-  s.tvos.deployment_target = '12.0'
+  s.ios.deployment_target = '12.0'
+  s.osx.deployment_target = '10.15'
+  s.tvos.deployment_target = '13.0'
 
   s.cocoapods_version = '>= 1.12.0'
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   s.default_subspec = 'Core'
 
   s.subspec 'Core' do |ss|
-    ss.ios.deployment_target = '10.0'
-    ss.osx.deployment_target = '10.13'
-    ss.tvos.deployment_target = '12.0'
+    ss.ios.deployment_target = '12.0'
+    ss.osx.deployment_target = '10.15'
+    ss.tvos.deployment_target = '13.0'
     ss.ios.dependency 'FirebaseAnalytics', '~> 11.0.0'
     ss.osx.dependency 'FirebaseAnalytics', '~> 11.0.0'
     ss.tvos.dependency 'FirebaseAnalytics', '~> 11.0.0'
@@ -55,30 +55,30 @@ Simplify your app development, grow your user base, and monetize more effectivel
         'HEADER_SEARCH_PATHS' => "$(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources"
       }
     end
-    ss.ios.deployment_target = '10.0'
-    ss.osx.deployment_target = '10.13'
-    ss.tvos.deployment_target = '12.0'
-    ss.watchos.deployment_target = '6.0'
+    ss.ios.deployment_target = '12.0'
+    ss.osx.deployment_target = '10.15'
+    ss.tvos.deployment_target = '13.0'
+    ss.watchos.deployment_target = '7.0'
   end
 
   s.subspec 'Analytics' do |ss|
-    ss.ios.deployment_target = '10.0'
-    ss.osx.deployment_target = '10.13'
-    ss.tvos.deployment_target = '12.0'
+    ss.ios.deployment_target = '12.0'
+    ss.osx.deployment_target = '10.15'
+    ss.tvos.deployment_target = '13.0'
     ss.dependency 'Firebase/Core'
   end
 
   s.subspec 'AnalyticsWithAdIdSupport' do |ss|
-    ss.ios.deployment_target = '10.0'
-    ss.osx.deployment_target = '10.13'
-    ss.tvos.deployment_target = '12.0'
+    ss.ios.deployment_target = '12.0'
+    ss.osx.deployment_target = '10.15'
+    ss.tvos.deployment_target = '13.0'
     ss.dependency 'Firebase/Core'
   end
 
   s.subspec 'AnalyticsWithoutAdIdSupport' do |ss|
-    ss.ios.deployment_target = '10.0'
-    ss.osx.deployment_target = '10.13'
-    ss.tvos.deployment_target = '12.0'
+    ss.ios.deployment_target = '12.0'
+    ss.osx.deployment_target = '10.15'
+    ss.tvos.deployment_target = '13.0'
     ss.dependency 'FirebaseAnalytics/WithoutAdIdSupport', '~> 11.0.0'
     ss.dependency 'Firebase/CoreOnly'
   end
@@ -87,87 +87,87 @@ Simplify your app development, grow your user base, and monetize more effectivel
     ss.dependency 'Firebase/CoreOnly'
     ss.dependency 'FirebaseABTesting', '~> 11.0.0'
     # Standard platforms PLUS watchOS.
-    ss.ios.deployment_target = '11.0'
-    ss.osx.deployment_target = '10.13'
-    ss.tvos.deployment_target = '12.0'
-    ss.watchos.deployment_target = '6.0'
+    ss.ios.deployment_target = '13.0'
+    ss.osx.deployment_target = '10.15'
+    ss.tvos.deployment_target = '13.0'
+    ss.watchos.deployment_target = '7.0'
   end
 
   s.subspec 'AppDistribution' do |ss|
     ss.dependency 'Firebase/CoreOnly'
     ss.ios.dependency 'FirebaseAppDistribution', '~> 11.0.0-beta'
-    ss.ios.deployment_target = '11.0'
+    ss.ios.deployment_target = '13.0'
   end
 
   s.subspec 'AppCheck' do |ss|
     ss.dependency 'Firebase/CoreOnly'
     ss.dependency 'FirebaseAppCheck', '~> 11.0.0'
-    ss.ios.deployment_target = '11.0'
-    ss.osx.deployment_target = '10.13'
-    ss.tvos.deployment_target = '12.0'
-    ss.watchos.deployment_target = '6.0'
+    ss.ios.deployment_target = '13.0'
+    ss.osx.deployment_target = '10.15'
+    ss.tvos.deployment_target = '13.0'
+    ss.watchos.deployment_target = '7.0'
   end
 
   s.subspec 'Auth' do |ss|
     ss.dependency 'Firebase/CoreOnly'
     ss.dependency 'FirebaseAuth', '~> 11.0.0'
     # Standard platforms PLUS watchOS.
-    ss.ios.deployment_target = '11.0'
-    ss.osx.deployment_target = '10.13'
-    ss.tvos.deployment_target = '12.0'
-    ss.watchos.deployment_target = '6.0'
+    ss.ios.deployment_target = '13.0'
+    ss.osx.deployment_target = '10.15'
+    ss.tvos.deployment_target = '13.0'
+    ss.watchos.deployment_target = '7.0'
   end
 
   s.subspec 'Crashlytics' do |ss|
     ss.dependency 'Firebase/CoreOnly'
     ss.dependency 'FirebaseCrashlytics', '~> 11.0.0'
     # Standard platforms PLUS watchOS.
-    ss.ios.deployment_target = '11.0'
-    ss.osx.deployment_target = '10.13'
-    ss.tvos.deployment_target = '12.0'
-    ss.watchos.deployment_target = '6.0'
+    ss.ios.deployment_target = '13.0'
+    ss.osx.deployment_target = '10.15'
+    ss.tvos.deployment_target = '13.0'
+    ss.watchos.deployment_target = '7.0'
   end
 
   s.subspec 'Database' do |ss|
     ss.dependency 'Firebase/CoreOnly'
     ss.dependency 'FirebaseDatabase', '~> 11.0.0'
     # Standard platforms PLUS watchOS 7.
-    ss.ios.deployment_target = '11.0'
-    ss.osx.deployment_target = '10.13'
-    ss.tvos.deployment_target = '12.0'
+    ss.ios.deployment_target = '13.0'
+    ss.osx.deployment_target = '10.15'
+    ss.tvos.deployment_target = '13.0'
     ss.watchos.deployment_target = '7.0'
   end
 
   s.subspec 'DynamicLinks' do |ss|
     ss.dependency 'Firebase/CoreOnly'
     ss.ios.dependency 'FirebaseDynamicLinks', '~> 11.0.0'
-    ss.ios.deployment_target = '11.0'
+    ss.ios.deployment_target = '13.0'
   end
 
   s.subspec 'Firestore' do |ss|
     ss.dependency 'Firebase/CoreOnly'
     ss.dependency 'FirebaseFirestore', '~> 11.0.0'
-    ss.ios.deployment_target = '11.0'
-    ss.osx.deployment_target = '10.13'
-    ss.tvos.deployment_target = '12.0'
+    ss.ios.deployment_target = '13.0'
+    ss.osx.deployment_target = '10.15'
+    ss.tvos.deployment_target = '13.0'
   end
 
   s.subspec 'Functions' do |ss|
     ss.dependency 'Firebase/CoreOnly'
     ss.dependency 'FirebaseFunctions', '~> 11.0.0'
     # Standard platforms PLUS watchOS.
-    ss.ios.deployment_target = '11.0'
-    ss.osx.deployment_target = '10.13'
-    ss.tvos.deployment_target = '12.0'
-    ss.watchos.deployment_target = '6.0'
+    ss.ios.deployment_target = '13.0'
+    ss.osx.deployment_target = '10.15'
+    ss.tvos.deployment_target = '13.0'
+    ss.watchos.deployment_target = '7.0'
   end
 
   s.subspec 'InAppMessaging' do |ss|
     ss.dependency 'Firebase/CoreOnly'
     ss.ios.dependency 'FirebaseInAppMessaging', '~> 11.0.0-beta'
     ss.tvos.dependency 'FirebaseInAppMessaging', '~> 11.0.0-beta'
-    ss.ios.deployment_target = '11.0'
-    ss.tvos.deployment_target = '12.0'
+    ss.ios.deployment_target = '13.0'
+    ss.tvos.deployment_target = '13.0'
   end
 
   s.subspec 'Installations' do |ss|
@@ -179,48 +179,48 @@ Simplify your app development, grow your user base, and monetize more effectivel
     ss.dependency 'Firebase/CoreOnly'
     ss.dependency 'FirebaseMessaging', '~> 11.0.0'
     # Standard platforms PLUS watchOS.
-    ss.ios.deployment_target = '11.0'
-    ss.osx.deployment_target = '10.13'
-    ss.tvos.deployment_target = '12.0'
-    ss.watchos.deployment_target = '6.0'
+    ss.ios.deployment_target = '13.0'
+    ss.osx.deployment_target = '10.15'
+    ss.tvos.deployment_target = '13.0'
+    ss.watchos.deployment_target = '7.0'
   end
 
   s.subspec 'MLModelDownloader' do |ss|
     ss.dependency 'Firebase/CoreOnly'
     ss.dependency 'FirebaseMLModelDownloader', '~> 11.0.0-beta'
     # Standard platforms PLUS watchOS.
-    ss.ios.deployment_target = '11.0'
-    ss.osx.deployment_target = '10.13'
-    ss.tvos.deployment_target = '12.0'
-    ss.watchos.deployment_target = '6.0'
+    ss.ios.deployment_target = '13.0'
+    ss.osx.deployment_target = '10.15'
+    ss.tvos.deployment_target = '13.0'
+    ss.watchos.deployment_target = '7.0'
   end
 
   s.subspec 'Performance' do |ss|
     ss.dependency 'Firebase/CoreOnly'
     ss.ios.dependency 'FirebasePerformance', '~> 11.0.0'
     ss.tvos.dependency 'FirebasePerformance', '~> 11.0.0'
-    ss.ios.deployment_target = '11.0'
-    ss.tvos.deployment_target = '12.0'
+    ss.ios.deployment_target = '13.0'
+    ss.tvos.deployment_target = '13.0'
   end
 
   s.subspec 'RemoteConfig' do |ss|
     ss.dependency 'Firebase/CoreOnly'
     ss.dependency 'FirebaseRemoteConfig', '~> 11.0.0'
     # Standard platforms PLUS watchOS.
-    ss.ios.deployment_target = '11.0'
-    ss.osx.deployment_target = '10.13'
-    ss.tvos.deployment_target = '12.0'
-    ss.watchos.deployment_target = '6.0'
+    ss.ios.deployment_target = '13.0'
+    ss.osx.deployment_target = '10.15'
+    ss.tvos.deployment_target = '13.0'
+    ss.watchos.deployment_target = '7.0'
   end
 
   s.subspec 'Storage' do |ss|
     ss.dependency 'Firebase/CoreOnly'
     ss.dependency 'FirebaseStorage', '~> 11.0.0'
     # Standard platforms PLUS watchOS.
-    ss.ios.deployment_target = '11.0'
-    ss.osx.deployment_target = '10.13'
-    ss.tvos.deployment_target = '12.0'
-    ss.watchos.deployment_target = '6.0'
+    ss.ios.deployment_target = '13.0'
+    ss.osx.deployment_target = '10.15'
+    ss.tvos.deployment_target = '13.0'
+    ss.watchos.deployment_target = '7.0'
   end
 
 end
diff --git a/FirebaseABTesting.podspec b/FirebaseABTesting.podspec
index e8fe7414e45..6392dae0dc7 100644
--- a/FirebaseABTesting.podspec
+++ b/FirebaseABTesting.podspec
@@ -22,10 +22,10 @@ Firebase Cloud Messaging and Firebase Remote Config in your app.
 
   s.social_media_url = 'https://twitter.com/Firebase'
 
-  ios_deployment_target = '11.0'
-  osx_deployment_target = '10.13'
-  tvos_deployment_target = '12.0'
-  watchos_deployment_target = '6.0'
+  ios_deployment_target = '13.0'
+  osx_deployment_target = '10.15'
+  tvos_deployment_target = '13.0'
+  watchos_deployment_target = '7.0'
 
   s.ios.deployment_target = ios_deployment_target
   s.osx.deployment_target = osx_deployment_target
@@ -35,7 +35,7 @@ Firebase Cloud Messaging and Firebase Remote Config in your app.
   s.cocoapods_version = '>= 1.12.0'
   s.prefix_header_file = false
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   base_dir = "FirebaseABTesting/Sources/"
   s.source_files = [
diff --git a/FirebaseAnalytics.podspec b/FirebaseAnalytics.podspec
index 6467a9ef914..822a18a3b5a 100644
--- a/FirebaseAnalytics.podspec
+++ b/FirebaseAnalytics.podspec
@@ -17,11 +17,11 @@ Pod::Spec.new do |s|
     }
 
     s.cocoapods_version = '>= 1.12.0'
-    s.swift_version     = '5.3'
+    s.swift_version     = '5.9'
 
-    s.ios.deployment_target  = '10.0'
-    s.osx.deployment_target  = '10.13'
-    s.tvos.deployment_target = '12.0'
+    s.ios.deployment_target  = '12.0'
+    s.osx.deployment_target  = '10.15'
+    s.tvos.deployment_target = '13.0'
 
     s.libraries  = 'c++', 'sqlite3', 'z'
     s.frameworks = 'StoreKit'
diff --git a/FirebaseAnalyticsOnDeviceConversion.podspec b/FirebaseAnalyticsOnDeviceConversion.podspec
index 2decdc2cac8..c8ccfe444c1 100644
--- a/FirebaseAnalyticsOnDeviceConversion.podspec
+++ b/FirebaseAnalyticsOnDeviceConversion.podspec
@@ -22,7 +22,7 @@ Pod::Spec.new do |s|
 
     s.static_framework = true
 
-    s.ios.deployment_target = '10.0'
+    s.ios.deployment_target = '12.0'
 
     s.source_files = 'FirebaseAnalyticsOnDeviceConversionWrapper/*'
 end
diff --git a/FirebaseAppCheck.podspec b/FirebaseAppCheck.podspec
index b698de23452..e04fdfd976b 100644
--- a/FirebaseAppCheck.podspec
+++ b/FirebaseAppCheck.podspec
@@ -17,12 +17,12 @@ Pod::Spec.new do |s|
   }
   s.social_media_url = 'https://twitter.com/Firebase'
 
-  ios_deployment_target = '11.0'
-  osx_deployment_target = '10.13'
-  tvos_deployment_target = '12.0'
-  watchos_deployment_target = '6.0'
+  ios_deployment_target = '13.0'
+  osx_deployment_target = '10.15'
+  tvos_deployment_target = '13.0'
+  watchos_deployment_target = '7.0'
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   s.ios.deployment_target = ios_deployment_target
   s.osx.deployment_target = osx_deployment_target
diff --git a/FirebaseAppCheckInterop.podspec b/FirebaseAppCheckInterop.podspec
index d8d372b4206..318feae1b1f 100644
--- a/FirebaseAppCheckInterop.podspec
+++ b/FirebaseAppCheckInterop.podspec
@@ -20,10 +20,10 @@ Pod::Spec.new do |s|
     :tag => 'CocoaPods-' + s.version.to_s
   }
   s.social_media_url = 'https://twitter.com/Firebase'
-  s.ios.deployment_target = '10.0'
-  s.osx.deployment_target = '10.13'
-  s.tvos.deployment_target = '12.0'
-  s.watchos.deployment_target = '6.0'
+  s.ios.deployment_target = '13.0'
+  s.osx.deployment_target = '10.15'
+  s.tvos.deployment_target = '13.0'
+  s.watchos.deployment_target = '7.0'
 
   s.source_files = 'FirebaseAppCheck/Interop/**/*.[hm]'
   s.public_header_files = 'FirebaseAppCheck/Interop/Public/FirebaseAppCheckInterop/*.h'
diff --git a/FirebaseAppDistribution.podspec b/FirebaseAppDistribution.podspec
index 50135707816..fdfbd788c3c 100644
--- a/FirebaseAppDistribution.podspec
+++ b/FirebaseAppDistribution.podspec
@@ -15,9 +15,9 @@ iOS SDK for App Distribution for Firebase.
     :tag => 'CocoaPods-' + s.version.to_s
   }
 
-  s.ios.deployment_target = '11.0'
+  s.ios.deployment_target = '13.0'
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   s.cocoapods_version = '>= 1.12.0'
   s.prefix_header_file = false
diff --git a/FirebaseAppDistribution/Sources/FIRAppDistributionUIService.m b/FirebaseAppDistribution/Sources/FIRAppDistributionUIService.m
index 2dc8abf4945..43b93570106 100644
--- a/FirebaseAppDistribution/Sources/FIRAppDistributionUIService.m
+++ b/FirebaseAppDistribution/Sources/FIRAppDistributionUIService.m
@@ -23,12 +23,8 @@
 
 @implementation FIRAppDistributionUIService
 
-API_AVAILABLE(ios(12.0))
 ASWebAuthenticationSession *_webAuthenticationVC;
 
-// TODO: Remove this when the deployment target becomes iOS 12+
-SFAuthenticationSession *_safariAuthenticationVC;
-
 - (instancetype)init {
   self = [super init];
 
@@ -66,15 +62,8 @@ + (NSError *_Nullable)mapErrorToAppDistributionError:(NSError *_Nullable)error {
   if (!error) {
     return nil;
   }
-
-  if (@available(iOS 12.0, *)) {
-    if ([error code] == ASWebAuthenticationSessionErrorCodeCanceledLogin) {
-      return [self getAppDistributionError:FIRAppDistributionErrorAuthenticationCancelled];
-    }
-  } else {
-    if ([error code] == SFAuthenticationErrorCanceledLogin) {
-      return [self getAppDistributionError:FIRAppDistributionErrorAuthenticationCancelled];
-    }
+  if ([error code] == ASWebAuthenticationSessionErrorCodeCanceledLogin) {
+    return [self getAppDistributionError:FIRAppDistributionErrorAuthenticationCancelled];
   }
 
   return [self getAppDistributionError:FIRAppDistributionErrorAuthenticationFailure];
@@ -88,39 +77,24 @@ - (void)appDistributionRegistrationFlow:(NSURL *)URL
   FIRFADInfoLog(@"Registration URL: %@", URL);
   FIRFADInfoLog(@"Callback URL: %@", callbackURL);
 
-  if (@available(iOS 12.0, *)) {
-    ASWebAuthenticationSession *authenticationVC = [[ASWebAuthenticationSession alloc]
-              initWithURL:URL
-        callbackURLScheme:callbackURL
-        completionHandler:^(NSURL *_Nullable callbackURL, NSError *_Nullable error) {
-          [self resetUIState];
-          [self logRegistrationCompletion:error authType:[ASWebAuthenticationSession description]];
-          NSError *_Nullable appDistributionError =
-              [[self class] mapErrorToAppDistributionError:error];
-          completion(appDistributionError);
-        }];
-
-    if (@available(iOS 13.0, *)) {
-      authenticationVC.presentationContextProvider = self;
-    }
-
-    _webAuthenticationVC = authenticationVC;
+  ASWebAuthenticationSession *authenticationVC = [[ASWebAuthenticationSession alloc]
+            initWithURL:URL
+      callbackURLScheme:callbackURL
+      completionHandler:^(NSURL *_Nullable callbackURL, NSError *_Nullable error) {
+        [self resetUIState];
+        [self logRegistrationCompletion:error authType:[ASWebAuthenticationSession description]];
+        NSError *_Nullable appDistributionError =
+            [[self class] mapErrorToAppDistributionError:error];
+        completion(appDistributionError);
+      }];
 
-    [authenticationVC start];
-  } else {
-    _safariAuthenticationVC = [[SFAuthenticationSession alloc]
-              initWithURL:URL
-        callbackURLScheme:callbackURL
-        completionHandler:^(NSURL *_Nullable callbackURL, NSError *_Nullable error) {
-          [self resetUIState];
-          [self logRegistrationCompletion:error authType:[SFAuthenticationSession description]];
-          NSError *_Nullable appDistributionError =
-              [[self class] mapErrorToAppDistributionError:error];
-          completion(appDistributionError);
-        }];
-
-    [_safariAuthenticationVC start];
+  if (@available(iOS 13.0, *)) {
+    authenticationVC.presentationContextProvider = self;
   }
+
+  _webAuthenticationVC = authenticationVC;
+
+  [authenticationVC start];
 }
 
 - (void)showUIAlert:(UIAlertController *)alertController {
@@ -234,13 +208,7 @@ - (void)resetUIState {
 
   self.registrationFlowCompletion = nil;
 
-  if (@available(iOS 12.0, *)) {
-    _webAuthenticationVC = nil;
-  }
-  // TODO: Remove this when the deployment target becomes iOS 12+
-  // `_safariAuthenticationVC` is cleared unconditionally just in case;
-  // It’s supposed to be assigned only when run on iOS 11.
-  _safariAuthenticationVC = nil;
+  _webAuthenticationVC = nil;
 }
 
 - (void)safariViewControllerDidFinish:(SFSafariViewController *)controller {
diff --git a/FirebaseAuth.podspec b/FirebaseAuth.podspec
index 773fa9e5a21..2ce91b86c03 100644
--- a/FirebaseAuth.podspec
+++ b/FirebaseAuth.podspec
@@ -24,7 +24,7 @@ supports email and password accounts, as well as several 3rd party authenticatio
   tvos_deployment_target = '13.0'
   watchos_deployment_target = '7.0'
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   s.ios.deployment_target = ios_deployment_target
   s.osx.deployment_target = osx_deployment_target
diff --git a/FirebaseAuthInterop.podspec b/FirebaseAuthInterop.podspec
index f60eb9aa0be..2765250ac45 100644
--- a/FirebaseAuthInterop.podspec
+++ b/FirebaseAuthInterop.podspec
@@ -20,10 +20,10 @@ Pod::Spec.new do |s|
     :tag => 'CocoaPods-' + s.version.to_s
   }
   s.social_media_url = 'https://twitter.com/Firebase'
-  s.ios.deployment_target = '11.0'
-  s.osx.deployment_target = '10.13'
-  s.tvos.deployment_target = '12.0'
-  s.watchos.deployment_target = '6.0'
+  s.ios.deployment_target = '13.0'
+  s.osx.deployment_target = '10.15'
+  s.tvos.deployment_target = '13.0'
+  s.watchos.deployment_target = '7.0'
 
   s.source_files = 'FirebaseAuth/Interop/**/*.[hm]'
   s.public_header_files = 'FirebaseAuth/Interop/Public/FirebaseAuthInterop/*.h'
diff --git a/FirebaseAuthTestingSupport.podspec b/FirebaseAuthTestingSupport.podspec
index f581d15d40e..3cf9b5128b5 100644
--- a/FirebaseAuthTestingSupport.podspec
+++ b/FirebaseAuthTestingSupport.podspec
@@ -18,11 +18,11 @@ Pod::Spec.new do |s|
   }
 
   ios_deployment_target = '13.0'
-  osx_deployment_target = '10.13'
+  osx_deployment_target = '10.15'
   tvos_deployment_target = '13.0'
   watchos_deployment_target = '7.0'
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   s.ios.deployment_target = ios_deployment_target
   s.osx.deployment_target = osx_deployment_target
@@ -39,7 +39,7 @@ Pod::Spec.new do |s|
     base_dir + 'Sources/**/*.swift',
   ]
 
-  s.dependency 'FirebaseAuth', '~> 10.22'
+  s.dependency 'FirebaseAuth', '~> 11.0'
 
   s.test_spec 'unit' do |unit_tests|
     unit_tests.scheme = { :code_coverage => true }
diff --git a/FirebaseCombineSwift.podspec b/FirebaseCombineSwift.podspec
index 6f5ad6bcfc9..1670e68b9d4 100644
--- a/FirebaseCombineSwift.podspec
+++ b/FirebaseCombineSwift.podspec
@@ -1,6 +1,6 @@
 Pod::Spec.new do |s|
   s.name             = 'FirebaseCombineSwift'
-  s.version          = '10.0.0'
+  s.version          = '11.0.0'
   s.summary          = 'Swift extensions with Combine support for Firebase'
 
   s.description      = <<-DESC
@@ -19,12 +19,12 @@ for internal testing only. It should not be published.
 
   s.social_media_url = 'https://twitter.com/Firebase'
 
-  s.swift_version         = '5.3'
+  s.swift_version       = '5.9'
 
   ios_deployment_target = '13.0'
   osx_deployment_target = '10.15'
   tvos_deployment_target = '13.0'
-  watchos_deployment_target = '6.0'
+  watchos_deployment_target = '7.0'
 
   s.ios.deployment_target = ios_deployment_target
   s.osx.deployment_target = osx_deployment_target
@@ -51,11 +51,11 @@ for internal testing only. It should not be published.
   s.osx.framework = 'AppKit'
   s.tvos.framework = 'UIKit'
 
-  s.dependency 'FirebaseCore', '~> 10.0'
-  s.dependency 'FirebaseAuth', '~> 10.0'
-  s.dependency 'FirebaseFunctions', '~> 10.0'
-  s.dependency 'FirebaseFirestore', '~> 10.0'
-  s.dependency 'FirebaseStorage', '~> 10.0'
+  s.dependency 'FirebaseCore', '~> 11.0'
+  s.dependency 'FirebaseAuth', '~> 11.0'
+  s.dependency 'FirebaseFunctions', '~> 11.0'
+  s.dependency 'FirebaseFirestore', '~> 11.0'
+  s.dependency 'FirebaseStorage', '~> 11.0'
 
   s.pod_target_xcconfig = {
     'HEADER_SEARCH_PATHS' => '"${PODS_TARGET_SRCROOT}"',
@@ -104,6 +104,6 @@ for internal testing only. It should not be published.
     int_tests.resources = 'FirebaseStorage/Tests/Integration/Resources/1mb.dat',
                           'FirebaseStorage/Tests/Integration/Resources/GoogleService-Info.plist',
                           'FirebaseStorage/Tests/Integration/Resources/HomeImprovement.numbers'
-    int_tests.dependency 'FirebaseAuth', '~> 10.0'
+    int_tests.dependency 'FirebaseAuth', '~> 11.0'
   end
 end
diff --git a/FirebaseCore.podspec b/FirebaseCore.podspec
index 9364d54bc8d..c740a159fa9 100644
--- a/FirebaseCore.podspec
+++ b/FirebaseCore.podspec
@@ -18,10 +18,10 @@ Firebase Core includes FIRApp and FIROptions which provide central configuration
 
   s.social_media_url = 'https://twitter.com/Firebase'
 
-  ios_deployment_target = '10.0'
-  osx_deployment_target = '10.13'
-  tvos_deployment_target = '12.0'
-  watchos_deployment_target = '6.0'
+  ios_deployment_target = '12.0'
+  osx_deployment_target = '10.15'
+  tvos_deployment_target = '13.0'
+  watchos_deployment_target = '7.0'
 
   s.ios.deployment_target = ios_deployment_target
   s.osx.deployment_target = osx_deployment_target
@@ -40,7 +40,7 @@ Firebase Core includes FIRApp and FIROptions which provide central configuration
     "#{s.module_name}_Privacy" => 'FirebaseCore/Sources/Resources/PrivacyInfo.xcprivacy'
   }
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   s.public_header_files = 'FirebaseCore/Sources/Public/FirebaseCore/*.h'
 
diff --git a/FirebaseCore/CHANGELOG.md b/FirebaseCore/CHANGELOG.md
index 33f31986a49..be7014d50b1 100644
--- a/FirebaseCore/CHANGELOG.md
+++ b/FirebaseCore/CHANGELOG.md
@@ -1,3 +1,14 @@
+# Firebase 11.0.0
+- [changed] **Breaking change**: Firebase's minimum supported versions have
+  updated for the following platforms:
+    - | Platform  | Firebase 11 |
+      | ------------- | ------------- |
+      | iOS  | **13.0**  |
+      | tvOS  | **13.0**  |
+      | macOS  | **10.15**  |
+      | watchOS  | 7.0  |
+  - FirebaseAnalytics and FirebaseCrashlytics also continue to support iOS 12.0.
+
 # Firebase 10.25.0
 - [changed] Firebase now requires at least Xcode 15.2. See
   https://developer.apple.com/news/?id=fxu2qp7b for more info.
diff --git a/FirebaseCoreExtension.podspec b/FirebaseCoreExtension.podspec
index 833ef4e5522..dfeecc3b2b4 100644
--- a/FirebaseCoreExtension.podspec
+++ b/FirebaseCoreExtension.podspec
@@ -20,12 +20,12 @@ Pod::Spec.new do |s|
     }
     s.social_media_url = 'https://twitter.com/Firebase'
 
-    s.swift_version = '5.3'
+    s.swift_version = '5.9'
 
-    s.ios.deployment_target = '10.0'
-    s.osx.deployment_target = '10.13'
-    s.tvos.deployment_target = '12.0'
-    s.watchos.deployment_target = '6.0'
+    s.ios.deployment_target = '12.0'
+    s.osx.deployment_target = '10.15'
+    s.tvos.deployment_target = '13.0'
+    s.watchos.deployment_target = '7.0'
 
     s.source_files = 'FirebaseCore/Extension/*.[hm]'
     s.public_header_files = 'FirebaseCore/Extension/*.h'
diff --git a/FirebaseCoreInternal.podspec b/FirebaseCoreInternal.podspec
index a2dd33a0458..bd2ce688b2d 100644
--- a/FirebaseCoreInternal.podspec
+++ b/FirebaseCoreInternal.podspec
@@ -18,10 +18,10 @@ Pod::Spec.new do |s|
   }
   s.social_media_url = 'https://twitter.com/Firebase'
 
-  ios_deployment_target = '10.0'
-  osx_deployment_target = '10.13'
-  tvos_deployment_target = '12.0'
-  watchos_deployment_target = '6.0'
+  ios_deployment_target = '12.0'
+  osx_deployment_target = '10.15'
+  tvos_deployment_target = '13.0'
+  watchos_deployment_target = '7.0'
 
   s.ios.deployment_target = ios_deployment_target
   s.osx.deployment_target = osx_deployment_target
@@ -36,7 +36,7 @@ Pod::Spec.new do |s|
     "#{s.module_name}_Privacy" => 'FirebaseCore/Internal/Sources/Resources/PrivacyInfo.xcprivacy'
   }
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   s.dependency 'GoogleUtilities/NSData+zlib', '~> 8.0'
 
diff --git a/FirebaseCrashlytics.podspec b/FirebaseCrashlytics.podspec
index 365376a02ee..be080d77522 100644
--- a/FirebaseCrashlytics.podspec
+++ b/FirebaseCrashlytics.podspec
@@ -11,12 +11,12 @@ Pod::Spec.new do |s|
     :tag => 'CocoaPods-' + s.version.to_s
   }
 
-  ios_deployment_target = '11.0'
-  osx_deployment_target = '10.13'
-  tvos_deployment_target = '12.0'
-  watchos_deployment_target = '6.0'
+  ios_deployment_target = '12.0'
+  osx_deployment_target = '10.15'
+  tvos_deployment_target = '13.0'
+  watchos_deployment_target = '7.0'
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   s.ios.deployment_target = ios_deployment_target
   s.osx.deployment_target = osx_deployment_target
diff --git a/FirebaseDatabase.podspec b/FirebaseDatabase.podspec
index 71360409d13..6884a7a5539 100644
--- a/FirebaseDatabase.podspec
+++ b/FirebaseDatabase.podspec
@@ -17,12 +17,12 @@ Simplify your iOS development, grow your user base, and monetize more effectivel
   }
   s.social_media_url = 'https://twitter.com/Firebase'
 
-  ios_deployment_target = '11.0'
-  osx_deployment_target = '10.13'
-  tvos_deployment_target = '12.0'
+  ios_deployment_target = '13.0'
+  osx_deployment_target = '10.15'
+  tvos_deployment_target = '13.0'
   watchos_deployment_target = '7.0'
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   s.ios.deployment_target = ios_deployment_target
   s.osx.deployment_target = osx_deployment_target
diff --git a/FirebaseDatabaseSwift.podspec b/FirebaseDatabaseSwift.podspec
index 3e066ab7a0f..1701905ec67 100644
--- a/FirebaseDatabaseSwift.podspec
+++ b/FirebaseDatabaseSwift.podspec
@@ -16,10 +16,10 @@ Simplify your iOS development, grow your user base, and monetize more effectivel
     :tag => 'CocoaPods-' + s.version.to_s
   }
 
-  s.swift_version           = '5.3'
-  s.ios.deployment_target   = '11.0'
-  s.osx.deployment_target   = '10.13'
-  s.tvos.deployment_target  = '12.0'
+  s.swift_version           = '5.9'
+  s.ios.deployment_target   = '13.0'
+  s.osx.deployment_target   = '10.15'
+  s.tvos.deployment_target  = '13.0'
 
   s.cocoapods_version       = '>= 1.12.0'
   s.prefix_header_file      = false
diff --git a/FirebaseDynamicLinks.podspec b/FirebaseDynamicLinks.podspec
index 08d3bcb940d..ad9606e0b76 100644
--- a/FirebaseDynamicLinks.podspec
+++ b/FirebaseDynamicLinks.podspec
@@ -16,9 +16,9 @@ Firebase Dynamic Links are deep links that enhance user experience and increase
     :tag => 'CocoaPods-' + s.version.to_s
   }
   s.social_media_url = 'https://twitter.com/Firebase'
-  s.ios.deployment_target = '11.0'
+  s.ios.deployment_target = '13.0'
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   s.cocoapods_version = '>= 1.12.0'
   s.prefix_header_file = false
diff --git a/FirebaseFirestore.podspec b/FirebaseFirestore.podspec
index bd33677cd4a..8334d81e7e7 100644
--- a/FirebaseFirestore.podspec
+++ b/FirebaseFirestore.podspec
@@ -13,11 +13,11 @@ Google Cloud Firestore is a NoSQL document database built for automatic scaling,
     :tag => 'CocoaPods-' + s.version.to_s
   }
 
-  s.ios.deployment_target = '11.0'
-  s.osx.deployment_target = '10.13'
-  s.tvos.deployment_target = '12.0'
+  s.ios.deployment_target = '13.0'
+  s.osx.deployment_target = '10.15'
+  s.tvos.deployment_target = '13.0'
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   s.weak_framework = 'FirebaseFirestoreInternal'
 
diff --git a/FirebaseFirestoreInternal.podspec b/FirebaseFirestoreInternal.podspec
index bd3694dfda3..5e9288ad6c9 100644
--- a/FirebaseFirestoreInternal.podspec
+++ b/FirebaseFirestoreInternal.podspec
@@ -16,11 +16,11 @@ Google Cloud Firestore is a NoSQL document database built for automatic scaling,
     :tag => 'CocoaPods-' + s.version.to_s
   }
 
-  s.ios.deployment_target = '11.0'
-  s.osx.deployment_target = '10.13'
-  s.tvos.deployment_target = '12.0'
+  s.ios.deployment_target = '13.0'
+  s.osx.deployment_target = '10.15'
+  s.tvos.deployment_target = '13.0'
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   s.cocoapods_version = '>= 1.12.0'
   s.prefix_header_file = false
diff --git a/FirebaseFirestoreSwift.podspec b/FirebaseFirestoreSwift.podspec
index 4582f9f240f..511c8d1bff3 100644
--- a/FirebaseFirestoreSwift.podspec
+++ b/FirebaseFirestoreSwift.podspec
@@ -21,10 +21,10 @@ Google Cloud Firestore is a NoSQL document database built for automatic scaling,
     :tag => 'CocoaPods-' + s.version.to_s
   }
 
-  s.swift_version           = '5.3'
-  s.ios.deployment_target   = '11.0'
-  s.osx.deployment_target   = '10.13'
-  s.tvos.deployment_target  = '12.0'
+  s.swift_version           = '5.9'
+  s.ios.deployment_target   = '13.0'
+  s.osx.deployment_target   = '10.15'
+  s.tvos.deployment_target  = '13.0'
 
   s.cocoapods_version       = '>= 1.12.0'
   s.prefix_header_file      = false
diff --git a/FirebaseFirestoreTestingSupport.podspec b/FirebaseFirestoreTestingSupport.podspec
index c2c13ccb23e..a28ab450c3f 100644
--- a/FirebaseFirestoreTestingSupport.podspec
+++ b/FirebaseFirestoreTestingSupport.podspec
@@ -17,12 +17,12 @@ Pod::Spec.new do |s|
     :tag => 'CocoaPods-' + s.version.to_s
   }
 
-  ios_deployment_target = '11.0'
-  osx_deployment_target = '10.13'
-  tvos_deployment_target = '12.0'
-  watchos_deployment_target = '6.0'
+  ios_deployment_target = '13.0'
+  osx_deployment_target = '10.15'
+  tvos_deployment_target = '13.0'
+  watchos_deployment_target = '7.0'
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   s.ios.deployment_target = ios_deployment_target
   s.osx.deployment_target = osx_deployment_target
@@ -42,7 +42,7 @@ Pod::Spec.new do |s|
 
   s.public_header_files = base_dir + '**/*.h'
 
-  s.dependency 'FirebaseFirestore', '~> 10.0'
+  s.dependency 'FirebaseFirestore', '~> 11.0'
 
   s.pod_target_xcconfig = {
     'GCC_C_LANGUAGE_STANDARD' => 'c99',
diff --git a/FirebaseFunctions.podspec b/FirebaseFunctions.podspec
index 4383ae29317..2d069da346b 100644
--- a/FirebaseFunctions.podspec
+++ b/FirebaseFunctions.podspec
@@ -16,12 +16,12 @@ Cloud Functions for Firebase.
     :tag => 'CocoaPods-' + s.version.to_s
   }
 
-  s.swift_version    = '5.3'
+  s.swift_version    = '5.9'
 
-  ios_deployment_target = '11.0'
-  osx_deployment_target = '10.13'
-  tvos_deployment_target = '12.0'
-  watchos_deployment_target = '6.0'
+  ios_deployment_target = '13.0'
+  osx_deployment_target = '10.15'
+  tvos_deployment_target = '13.0'
+  watchos_deployment_target = '7.0'
 
   s.ios.deployment_target = ios_deployment_target
   s.osx.deployment_target = osx_deployment_target
@@ -31,8 +31,6 @@ Cloud Functions for Firebase.
   s.cocoapods_version = '>= 1.12.0'
   s.prefix_header_file = false
 
-  s.swift_version = '5.3'
-
   s.source_files = [
     'FirebaseFunctions/Sources/**/*.swift',
   ]
diff --git a/FirebaseInAppMessaging.podspec b/FirebaseInAppMessaging.podspec
index 557b84d94ca..42eaf9ecb84 100644
--- a/FirebaseInAppMessaging.podspec
+++ b/FirebaseInAppMessaging.podspec
@@ -17,10 +17,10 @@ See more product details at https://firebase.google.com/products/in-app-messagin
     :tag => 'CocoaPods-' + s.version.to_s
   }
   s.social_media_url = 'https://twitter.com/Firebase'
-  s.ios.deployment_target = '11.0'
-  s.tvos.deployment_target = '12.0'
+  s.ios.deployment_target = '13.0'
+  s.tvos.deployment_target = '13.0'
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   s.cocoapods_version = '>= 1.12.0'
   s.prefix_header_file = false
diff --git a/FirebaseInAppMessaging/Sources/DefaultUI/Banner/FIRIAMBannerViewController.m b/FirebaseInAppMessaging/Sources/DefaultUI/Banner/FIRIAMBannerViewController.m
index ad7a95252aa..0e5b1ca8483 100644
--- a/FirebaseInAppMessaging/Sources/DefaultUI/Banner/FIRIAMBannerViewController.m
+++ b/FirebaseInAppMessaging/Sources/DefaultUI/Banner/FIRIAMBannerViewController.m
@@ -160,15 +160,13 @@ - (void)viewDidLoad {
   self.view.layer.shadowOpacity = 0.4;
 
   // Calculate status bar height.
-  CGFloat statusBarHeight = 0;
-  if (@available(iOS 13.0, tvOS 13.0, *)) {
-    UIStatusBarManager *manager =
-        [UIApplication sharedApplication].keyWindow.windowScene.statusBarManager;
-
-    statusBarHeight = manager.statusBarFrame.size.height;
-  } else {
-    statusBarHeight = [[UIApplication sharedApplication] statusBarFrame].size.height;
-  }
+  // TODO(#13068) : Fix keyWindow deprecation.
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+  UIStatusBarManager *manager =
+      [UIApplication sharedApplication].keyWindow.windowScene.statusBarManager;
+#pragma clang diagnostic pop
+  CGFloat statusBarHeight = manager.statusBarFrame.size.height;
 
   // Pin title label below status bar with cushion.
   [[self.titleLabel.topAnchor constraintEqualToAnchor:self.view.topAnchor
diff --git a/FirebaseInAppMessaging/Tests/Integration/DefaultUITestApp/Podfile b/FirebaseInAppMessaging/Tests/Integration/DefaultUITestApp/Podfile
index ff1c70c111b..d7eac8d3b1e 100644
--- a/FirebaseInAppMessaging/Tests/Integration/DefaultUITestApp/Podfile
+++ b/FirebaseInAppMessaging/Tests/Integration/DefaultUITestApp/Podfile
@@ -10,7 +10,7 @@ pod 'FirebaseInstallations', :path => '../../../..'
 pod 'FirebaseABTesting', :path => '../../../..'
 
 target 'FiamDisplaySwiftExample' do
-  platform :ios, '11.0'
+  platform :ios, '13.0'
   pod 'FirebaseInAppMessaging', :path => '../../../..'
 end
 
diff --git a/FirebaseInAppMessaging/Tests/Integration/FunctionalTestApp/Podfile b/FirebaseInAppMessaging/Tests/Integration/FunctionalTestApp/Podfile
index 7597b44e9fc..50db2923845 100644
--- a/FirebaseInAppMessaging/Tests/Integration/FunctionalTestApp/Podfile
+++ b/FirebaseInAppMessaging/Tests/Integration/FunctionalTestApp/Podfile
@@ -10,7 +10,7 @@ pod 'FirebaseInstallations', :path => '../../../..'
 pod 'FirebaseABTesting', :path => '../../../..'
 
 target 'InAppMessaging_Example_iOS' do
-  platform :ios, '11.0'
+  platform :ios, '13.0'
 
   pod 'FirebaseInAppMessaging', :path => '../../../..'
   pod 'FirebaseDynamicLinks',  :path => '../../../..'
diff --git a/FirebaseInstallations.podspec b/FirebaseInstallations.podspec
index 458e1654936..990dd505411 100644
--- a/FirebaseInstallations.podspec
+++ b/FirebaseInstallations.podspec
@@ -17,12 +17,12 @@ Pod::Spec.new do |s|
   }
   s.social_media_url = 'https://twitter.com/Firebase'
 
-  ios_deployment_target = '10.0'
-  osx_deployment_target = '10.13'
-  tvos_deployment_target = '12.0'
-  watchos_deployment_target = '6.0'
+  ios_deployment_target = '12.0'
+  osx_deployment_target = '10.15'
+  tvos_deployment_target = '13.0'
+  watchos_deployment_target = '7.0'
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   s.ios.deployment_target = ios_deployment_target
   s.osx.deployment_target = osx_deployment_target
diff --git a/FirebaseMLModelDownloader.podspec b/FirebaseMLModelDownloader.podspec
index 1118c479d1c..a45f5b93216 100644
--- a/FirebaseMLModelDownloader.podspec
+++ b/FirebaseMLModelDownloader.podspec
@@ -16,12 +16,12 @@ Pod::Spec.new do |s|
     :tag => 'CocoaPods-' + s.version.to_s
   }
   s.social_media_url = 'https://twitter.com/Firebase'
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
-  ios_deployment_target = '11.0'
-  osx_deployment_target = '10.13'
-  tvos_deployment_target = '12.0'
-  watchos_deployment_target = '6.0'
+  ios_deployment_target = '13.0'
+  osx_deployment_target = '10.15'
+  tvos_deployment_target = '13.0'
+  watchos_deployment_target = '7.0'
 
   s.ios.deployment_target = ios_deployment_target
   s.osx.deployment_target = osx_deployment_target
diff --git a/FirebaseMLModelDownloader/Apps/Sample/Podfile b/FirebaseMLModelDownloader/Apps/Sample/Podfile
index 24d21a9d4de..cb632e9d85f 100644
--- a/FirebaseMLModelDownloader/Apps/Sample/Podfile
+++ b/FirebaseMLModelDownloader/Apps/Sample/Podfile
@@ -1,4 +1,4 @@
-platform :ios, '11.0'
+platform :ios, '13.0'
 use_frameworks!
 
 source 'https://github.com/firebase/SpecsDev.git'
diff --git a/FirebaseMessaging.podspec b/FirebaseMessaging.podspec
index bbabbcdc201..0e056c8a17a 100644
--- a/FirebaseMessaging.podspec
+++ b/FirebaseMessaging.podspec
@@ -20,12 +20,12 @@ device, and it is completely free.
   }
   s.social_media_url = 'https://twitter.com/Firebase'
 
-  ios_deployment_target = '11.0'
-  osx_deployment_target = '10.13'
-  tvos_deployment_target = '12.0'
-  watchos_deployment_target = '6.0'
+  ios_deployment_target = '13.0'
+  osx_deployment_target = '10.15'
+  tvos_deployment_target = '13.0'
+  watchos_deployment_target = '7.0'
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   s.ios.deployment_target = ios_deployment_target
   s.osx.deployment_target = osx_deployment_target
diff --git a/FirebaseMessagingInterop.podspec b/FirebaseMessagingInterop.podspec
index 31d03220e3c..3e7e1b6d8cb 100644
--- a/FirebaseMessagingInterop.podspec
+++ b/FirebaseMessagingInterop.podspec
@@ -20,10 +20,10 @@ Pod::Spec.new do |s|
     :tag => 'CocoaPods-' + s.version.to_s
   }
   s.social_media_url = 'https://twitter.com/Firebase'
-  s.ios.deployment_target = '11.0'
-  s.osx.deployment_target = '10.13'
-  s.tvos.deployment_target = '12.0'
-  s.watchos.deployment_target = '6.0'
+  s.ios.deployment_target = '13.0'
+  s.osx.deployment_target = '10.15'
+  s.tvos.deployment_target = '13.0'
+  s.watchos.deployment_target = '7.0'
 
   s.source_files = 'FirebaseMessaging/Interop/*.[hm]'
   s.public_header_files = 'FirebaseMessaging/Interop/*.h'
diff --git a/FirebasePerformance.podspec b/FirebasePerformance.podspec
index 9a0f48d3acf..6bcf58249df 100644
--- a/FirebasePerformance.podspec
+++ b/FirebasePerformance.podspec
@@ -17,10 +17,10 @@ Firebase Performance library to measure performance of Mobile and Web Apps.
   }
   s.social_media_url = 'https://twitter.com/Firebase'
 
-  ios_deployment_target = '11.0'
-  tvos_deployment_target = '12.0'
+  ios_deployment_target = '13.0'
+  tvos_deployment_target = '13.0'
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   s.ios.deployment_target = ios_deployment_target
   s.tvos.deployment_target = tvos_deployment_target
diff --git a/FirebasePerformance/Sources/Instrumentation/UIKit/FPRUIViewControllerInstrument.m b/FirebasePerformance/Sources/Instrumentation/UIKit/FPRUIViewControllerInstrument.m
index c5e04efc947..147b53c516a 100644
--- a/FirebasePerformance/Sources/Instrumentation/UIKit/FPRUIViewControllerInstrument.m
+++ b/FirebasePerformance/Sources/Instrumentation/UIKit/FPRUIViewControllerInstrument.m
@@ -69,9 +69,12 @@ void InstrumentViewDidAppear(FPRUIViewControllerInstrument *instrument,
 
     // This has to be called on the main thread and so it's done here instead of in
     // FPRScreenTraceTracker.
-    // TODO: Replace keyWindow usage (deprecated in iOS and unavailable in visionOS).
+    // TODO(#13067): Replace keyWindow usage (deprecated in iOS and unavailable in visionOS).
 #if !defined(TARGET_OS_VISION) || !TARGET_OS_VISION
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
     if ([((UIViewController *)_self).view isDescendantOfView:FPRSharedApplication().keyWindow]) {
+#pragma clang diagnostic pop
       [[FPRScreenTraceTracker sharedInstance] viewControllerDidAppear:_self];
     }
 #endif
diff --git a/FirebaseRemoteConfig.podspec b/FirebaseRemoteConfig.podspec
index 6c81684decb..a69cdbed484 100644
--- a/FirebaseRemoteConfig.podspec
+++ b/FirebaseRemoteConfig.podspec
@@ -18,12 +18,12 @@ app update.
     :tag => 'CocoaPods-' + s.version.to_s
   }
   s.social_media_url = 'https://twitter.com/Firebase'
-  ios_deployment_target = '11.0'
-  osx_deployment_target = '10.13'
-  tvos_deployment_target = '12.0'
-  watchos_deployment_target = '6.0'
+  ios_deployment_target = '13.0'
+  osx_deployment_target = '10.15'
+  tvos_deployment_target = '13.0'
+  watchos_deployment_target = '7.0'
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   s.ios.deployment_target = ios_deployment_target
   s.osx.deployment_target = osx_deployment_target
diff --git a/FirebaseRemoteConfig/Tests/Sample/Podfile b/FirebaseRemoteConfig/Tests/Sample/Podfile
index bfff53e6fea..bdce061ec49 100644
--- a/FirebaseRemoteConfig/Tests/Sample/Podfile
+++ b/FirebaseRemoteConfig/Tests/Sample/Podfile
@@ -1,5 +1,4 @@
-# Uncomment the next line to define a global platform for your project
-# platform :ios, '9.0'
+platform :ios, '13.0'
 
 source 'https://github.com/firebase/SpecsDev.git'
 source 'https://github.com/firebase/SpecsStaging.git'
diff --git a/FirebaseRemoteConfigInterop.podspec b/FirebaseRemoteConfigInterop.podspec
index c9d9a9c30d8..6f9ea69cba2 100644
--- a/FirebaseRemoteConfigInterop.podspec
+++ b/FirebaseRemoteConfigInterop.podspec
@@ -20,15 +20,17 @@ Pod::Spec.new do |s|
     :tag => 'CocoaPods-' + s.version.to_s
   }
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
   s.cocoapods_version = '>= 1.12.0'
   s.prefix_header_file = false
 
   s.social_media_url = 'https://twitter.com/Firebase'
-  s.ios.deployment_target = '11.0'
-  s.osx.deployment_target = '10.13'
-  s.tvos.deployment_target = '12.0'
-  s.watchos.deployment_target = '6.0'
+
+  # The ios deployment target must support Crashlytics.
+  s.ios.deployment_target = '12.0'
+  s.osx.deployment_target = '10.15'
+  s.tvos.deployment_target = '13.0'
+  s.watchos.deployment_target = '7.0'
 
   s.source_files = 'FirebaseRemoteConfig/Interop/*.swift'
 end
diff --git a/FirebaseRemoteConfigSwift.podspec b/FirebaseRemoteConfigSwift.podspec
index 3f0b3b3174e..7474d09616f 100644
--- a/FirebaseRemoteConfigSwift.podspec
+++ b/FirebaseRemoteConfigSwift.podspec
@@ -19,12 +19,12 @@ app update.
     :tag => 'CocoaPods-' + s.version.to_s
   }
 
-  s.swift_version           = '5.3'
+  s.swift_version           = '5.9'
 
-  ios_deployment_target = '11.0'
-  osx_deployment_target = '10.13'
-  tvos_deployment_target = '12.0'
-  watchos_deployment_target = '6.0'
+  ios_deployment_target = '13.0'
+  osx_deployment_target = '10.15'
+  tvos_deployment_target = '13.0'
+  watchos_deployment_target = '7.0'
 
   s.ios.deployment_target = ios_deployment_target
   s.osx.deployment_target = osx_deployment_target
diff --git a/FirebaseSessions.podspec b/FirebaseSessions.podspec
index 6c282296e9a..8685d6c61af 100644
--- a/FirebaseSessions.podspec
+++ b/FirebaseSessions.podspec
@@ -18,12 +18,12 @@ Pod::Spec.new do |s|
   }
   s.social_media_url = 'https://twitter.com/Firebase'
 
-  ios_deployment_target = '11.0'
-  osx_deployment_target = '10.13'
-  tvos_deployment_target = '12.0'
-  watchos_deployment_target = '6.0'
+  ios_deployment_target = '12.0'
+  osx_deployment_target = '10.15'
+  tvos_deployment_target = '13.0'
+  watchos_deployment_target = '7.0'
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   s.ios.deployment_target = ios_deployment_target
   s.osx.deployment_target = osx_deployment_target
diff --git a/FirebaseSharedSwift.podspec b/FirebaseSharedSwift.podspec
index 0b2ab17a71d..e0e8f4fec9c 100644
--- a/FirebaseSharedSwift.podspec
+++ b/FirebaseSharedSwift.podspec
@@ -18,12 +18,12 @@ Firebase products. FirebaseSharedSwift is not supported for non-Firebase usage.
     :tag => 'CocoaPods-' + s.version.to_s
   }
 
-  s.swift_version           = '5.3'
+  s.swift_version           = '5.9'
 
-  ios_deployment_target = '11.0'
-  osx_deployment_target = '10.13'
-  tvos_deployment_target = '12.0'
-  watchos_deployment_target = '6.0'
+  ios_deployment_target = '13.0'
+  osx_deployment_target = '10.15'
+  tvos_deployment_target = '13.0'
+  watchos_deployment_target = '7.0'
 
   s.ios.deployment_target = ios_deployment_target
   s.osx.deployment_target = osx_deployment_target
diff --git a/FirebaseStorage.podspec b/FirebaseStorage.podspec
index 5322597a81c..17729ae3d28 100644
--- a/FirebaseStorage.podspec
+++ b/FirebaseStorage.podspec
@@ -27,7 +27,7 @@ Firebase Storage provides robust, secure file uploads and downloads from Firebas
   s.tvos.deployment_target = tvos_deployment_target
   s.watchos.deployment_target = watchos_deployment_target
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   s.cocoapods_version = '>= 1.12.0'
   s.prefix_header_file = false
diff --git a/FirebaseVertexAI-Docs.not_podspec b/FirebaseVertexAI-Docs.not_podspec
index 7967cc616c4..4c447335f65 100644
--- a/FirebaseVertexAI-Docs.not_podspec
+++ b/FirebaseVertexAI-Docs.not_podspec
@@ -34,7 +34,7 @@ Pod::Spec.new do |s|
     'FirebaseVertexAI/Sources/**/*.swift',
   ]
 
-  s.swift_version = '5.3'
+  s.swift_version = '5.9'
 
   s.framework = 'Foundation'
   s.ios.framework = 'UIKit'
diff --git a/Firestore/Example/GoogleBenchmark.podspec b/Firestore/Example/GoogleBenchmark.podspec
index ae7fc81cd98..c0024acced3 100644
--- a/Firestore/Example/GoogleBenchmark.podspec
+++ b/Firestore/Example/GoogleBenchmark.podspec
@@ -33,9 +33,9 @@ Google's C++ benchmark framework.
       :tag => 'v' + s.version.to_s
   }
 
-  s.ios.deployment_target = '11.0'
-  s.osx.deployment_target = '10.13'
-  s.tvos.deployment_target = '12.0'
+  s.ios.deployment_target = '13.0'
+  s.osx.deployment_target = '10.15'
+  s.tvos.deployment_target = '13.0'
 
   s.requires_arc = false
 
diff --git a/Firestore/Example/GoogleTest.podspec b/Firestore/Example/GoogleTest.podspec
index 87788e99d8b..f7dd32cde06 100644
--- a/Firestore/Example/GoogleTest.podspec
+++ b/Firestore/Example/GoogleTest.podspec
@@ -33,9 +33,9 @@ Google's C++ test framework.
     :commit => 'bf66935e07825318ae519675d73d0f3e313b3ec6'
   }
 
-  s.ios.deployment_target = '11.0'
-  s.osx.deployment_target = '10.13'
-  s.tvos.deployment_target = '12.0'
+  s.ios.deployment_target = '13.0'
+  s.osx.deployment_target = '10.15'
+  s.tvos.deployment_target = '13.0'
 
   s.requires_arc = false
 
diff --git a/Firestore/Example/LibFuzzer.podspec b/Firestore/Example/LibFuzzer.podspec
index ea654f48fcc..c4b7b5f34a8 100644
--- a/Firestore/Example/LibFuzzer.podspec
+++ b/Firestore/Example/LibFuzzer.podspec
@@ -28,9 +28,9 @@ Pod::Spec.new do |s|
   s.license             = { :type => 'BSD-Like' }
   s.authors             = 'LLVM Team'
 
-  s.ios.deployment_target = '11.0'
-  s.osx.deployment_target = '10.13'
-  s.tvos.deployment_target = '12.0'
+  s.ios.deployment_target = '13.0'
+  s.osx.deployment_target = '10.15'
+  s.tvos.deployment_target = '13.0'
 
   s.source              = {
     :git => 'https://github.com/llvm/llvm-project.git'
diff --git a/Firestore/Example/Podfile b/Firestore/Example/Podfile
index 99bb2815390..c5417d9068d 100644
--- a/Firestore/Example/Podfile
+++ b/Firestore/Example/Podfile
@@ -95,7 +95,7 @@ end
 
 if is_platform(:ios)
   target 'Firestore_Example_iOS' do
-    platform :ios, '11.0'
+    platform :ios, '13.0'
 
     configure_local_pods()
 
@@ -120,7 +120,6 @@ if is_platform(:ios)
     target 'Firestore_IntegrationTests_iOS' do
       inherit! :search_paths
 
-      pod 'FirebaseFirestoreSwift', :path => '../../'
       pod 'GoogleBenchmark', :podspec => 'GoogleBenchmark.podspec'
       pod 'GoogleTest', :podspec => 'GoogleTest.podspec'
       pod 'ProtobufCpp', :podspec => 'ProtobufCpp.podspec'
@@ -130,7 +129,7 @@ if is_platform(:ios)
 
     target 'Firestore_FuzzTests_iOS' do
       inherit! :search_paths
-      platform :ios, '11.0'
+      platform :ios, '13.0'
 
       pod 'LibFuzzer', :podspec => 'LibFuzzer.podspec', :inhibit_warnings => true
     end
@@ -139,7 +138,7 @@ end
 
 if is_platform(:osx)
   target 'Firestore_Example_macOS' do
-    platform :osx, '10.13'
+    platform :osx, '10.15'
 
     configure_local_pods()
 
@@ -158,7 +157,6 @@ if is_platform(:osx)
     target 'Firestore_IntegrationTests_macOS' do
       inherit! :search_paths
 
-      pod 'FirebaseFirestoreSwift', :path => '../../'
       pod 'GoogleBenchmark', :podspec => 'GoogleBenchmark.podspec'
       pod 'GoogleTest', :podspec => 'GoogleTest.podspec'
       pod 'ProtobufCpp', :podspec => 'ProtobufCpp.podspec'
@@ -170,7 +168,7 @@ end
 
 if is_platform(:tvos)
   target 'Firestore_Example_tvOS' do
-    platform :tvos, '12.0'
+    platform :tvos, '13.0'
 
     configure_local_pods()
 
@@ -189,7 +187,6 @@ if is_platform(:tvos)
     target 'Firestore_IntegrationTests_tvOS' do
       inherit! :search_paths
 
-      pod 'FirebaseFirestoreSwift', :path => '../../'
       pod 'GoogleBenchmark', :podspec => 'GoogleBenchmark.podspec'
       pod 'GoogleTest', :podspec => 'GoogleTest.podspec'
       pod 'ProtobufCpp', :podspec => 'ProtobufCpp.podspec'
diff --git a/Firestore/Example/ProtobufCpp.podspec b/Firestore/Example/ProtobufCpp.podspec
index 956f9d3186c..7012de8d076 100644
--- a/Firestore/Example/ProtobufCpp.podspec
+++ b/Firestore/Example/ProtobufCpp.podspec
@@ -29,9 +29,9 @@ Pod::Spec.new do |s|
     :tag => "v#{s.version}"
   }
 
-  s.ios.deployment_target = '11.0'
-  s.osx.deployment_target = '10.13'
-  s.tvos.deployment_target = '12.0'
+  s.ios.deployment_target = '13.0'
+  s.osx.deployment_target = '10.15'
+  s.tvos.deployment_target = '13.0'
 
   s.source_files = 'src/**/*.{h,cc,inc}',
                    # utf8_range is needed too, to avoid build errors.
diff --git a/GoogleAppMeasurement.podspec b/GoogleAppMeasurement.podspec
index f893a310310..b69681f1520 100644
--- a/GoogleAppMeasurement.podspec
+++ b/GoogleAppMeasurement.podspec
@@ -21,9 +21,9 @@ Pod::Spec.new do |s|
 
     s.cocoapods_version = '>= 1.12.0'
 
-    s.ios.deployment_target  = '10.0'
-    s.osx.deployment_target  = '10.13'
-    s.tvos.deployment_target = '12.0'
+    s.ios.deployment_target  = '12.0'
+    s.osx.deployment_target  = '10.15'
+    s.tvos.deployment_target = '13.0'
 
     s.libraries  = 'c++', 'sqlite3', 'z'
     s.frameworks = 'StoreKit'
diff --git a/GoogleAppMeasurementOnDeviceConversion.podspec b/GoogleAppMeasurementOnDeviceConversion.podspec
index a1810fb012c..0c816c4f9c4 100644
--- a/GoogleAppMeasurementOnDeviceConversion.podspec
+++ b/GoogleAppMeasurementOnDeviceConversion.podspec
@@ -22,7 +22,7 @@ Pod::Spec.new do |s|
 
     s.cocoapods_version = '>= 1.12.0'
 
-    s.ios.deployment_target  = '10.0'
+    s.ios.deployment_target  = '12.0'
 
     s.libraries  = 'c++'
 
diff --git a/IntegrationTesting/ClientApp/Podfile b/IntegrationTesting/ClientApp/Podfile
index e2abd6876dd..29810fab6ad 100644
--- a/IntegrationTesting/ClientApp/Podfile
+++ b/IntegrationTesting/ClientApp/Podfile
@@ -3,7 +3,7 @@ source 'https://github.com/firebase/SpecsStaging.git'
 source 'https://cdn.cocoapods.org/'
 
 target 'ClientApp-CocoaPods' do
-  platform :ios, '12.0'
+  platform :ios, '13.0'
 
   use_frameworks!
 
@@ -24,7 +24,6 @@ target 'ClientApp-CocoaPods' do
   pod 'FirebaseDatabaseSwift', :path => '../../'
   pod 'FirebaseDynamicLinks', :path => '../../'
   pod 'FirebaseFirestore', :path => '../../'
-  pod 'FirebaseFirestoreSwift', :path => '../../'
   pod 'FirebaseFunctions', :path => '../../'
   pod 'FirebaseInAppMessaging', :path => '../../'
   pod 'FirebaseMessaging', :path => '../../'
diff --git a/Package.swift b/Package.swift
index 3da098725da..87174d0fb70 100644
--- a/Package.swift
+++ b/Package.swift
@@ -23,7 +23,7 @@ let firebaseVersion = "11.0.0"
 
 let package = Package(
   name: "Firebase",
-  platforms: [.iOS(.v12), .macCatalyst(.v13), .macOS(.v10_13), .tvOS(.v12), .watchOS(.v7)],
+  platforms: [.iOS(.v12), .macCatalyst(.v15), .macOS(.v10_15), .tvOS(.v13), .watchOS(.v7)],
   products: [
     .library(
       name: "FirebaseAnalytics",


Test patch: