Selaa lähdekoodia

Cherry-pick fixing Xcode 13 beta 3 build issues (#8405) (#8410)

Paul Beusterien 4 vuotta sitten
vanhempi
sitoutus
7e08e6e294
26 muutettua tiedostoa jossa 78 lisäystä ja 22 poistoa
  1. 1 0
      FirebaseAppCheck/CHANGELOG.md
  2. 23 22
      FirebaseAppCheck/Tests/Unit/Swift/AppCheckAPITests.swift
  3. 2 0
      FirebaseAppDistribution/Sources/FIRAppDistributionUIService.h
  4. 2 0
      FirebaseAppDistribution/Sources/Public/FirebaseAppDistribution/FIRAppDistribution.h
  5. 4 0
      FirebaseDynamicLinks/CHANGELOG.md
  6. 2 0
      FirebaseDynamicLinks/Sources/Public/FirebaseDynamicLinks/FIRDynamicLinks.h
  7. 3 0
      FirebaseInAppMessaging/CHANGELOG.md
  8. 2 0
      FirebaseInAppMessaging/Sources/DefaultUI/Banner/FIRIAMBannerViewController.h
  9. 1 0
      FirebaseInAppMessaging/Sources/DefaultUI/Card/FIRIAMCardViewController.h
  10. 2 0
      FirebaseInAppMessaging/Sources/DefaultUI/FIRIAMBaseRenderingViewController.h
  11. 1 0
      FirebaseInAppMessaging/Sources/DefaultUI/FIRIAMDefaultDisplayImpl.h
  12. 1 0
      FirebaseInAppMessaging/Sources/DefaultUI/FIRIAMRenderingWindowHelper.h
  13. 1 0
      FirebaseInAppMessaging/Sources/DefaultUI/ImageOnly/FIRIAMImageOnlyViewController.h
  14. 1 0
      FirebaseInAppMessaging/Sources/DefaultUI/Modal/FIRIAMModalViewController.h
  15. 2 0
      FirebaseInAppMessaging/Sources/Private/Flows/FIRIAMDisplayCheckOnAnalyticEventsFlow.h
  16. 1 0
      FirebaseInAppMessaging/Sources/Private/Flows/FIRIAMDisplayExecutor.h
  17. 1 0
      FirebaseInAppMessaging/Sources/Private/Flows/FIRIAMFetchOnAppForegroundFlow.h
  18. 1 0
      FirebaseInAppMessaging/Sources/Private/Flows/FIRIAMMessageClientCache.h
  19. 1 0
      FirebaseInAppMessaging/Sources/Private/Runtime/FIRIAMFetchFlow.h
  20. 1 0
      FirebaseInAppMessaging/Sources/Private/Runtime/FIRIAMRuntimeManager.h
  21. 2 0
      FirebaseInAppMessaging/Sources/Public/FirebaseInAppMessaging/FIRInAppMessaging.h
  22. 10 0
      FirebaseInAppMessaging/Sources/Public/FirebaseInAppMessaging/FIRInAppMessagingRendering.h
  23. 2 0
      FirebaseInAppMessaging/Sources/Runtime/FIRIAMActionURLFollower.m
  24. 9 0
      FirebaseInAppMessaging/Swift/Source/CustomInAppMessageDisplayViewModifier.swift
  25. 1 0
      Functions/Tests/CombineUnit/HTTPSCallableTests.swift
  26. 1 0
      SharedTestUtilities/FIRSampleAppUtilities.h

+ 1 - 0
FirebaseAppCheck/CHANGELOG.md

@@ -1,4 +1,5 @@
 # v8.4.0 -- M100
+- [fixed] Fixed build issues introduced in Xcode 13 beta 3. (#8401)
 - [fixed] Bump Promises dependency. (#8365)
 # v8.3.0 -- M99
 - [added] Token API for 3P use. (#8266)

+ 23 - 22
FirebaseAppCheck/Tests/Unit/Swift/AppCheckAPITests.swift

@@ -68,7 +68,7 @@ final class AppCheckAPITests {
     #if swift(>=5.5)
       if #available(iOS 15.0, macOS 12.0, macCatalyst 15.0, tvOS 15.0, watchOS 8.0, *) {
         // async/await is a Swift 5.5+ feature available on iOS 15+
-        async {
+        Task {
           do {
             try await AppCheck.appCheck().token(forcingRefresh: false)
           } catch {
@@ -102,7 +102,7 @@ final class AppCheckAPITests {
       #if swift(>=5.5)
         if #available(iOS 15.0, macOS 12.0, macCatalyst 15.0, tvOS 15.0, watchOS 8.0, *) {
           // async/await is a Swift 5.5+ feature available on iOS 15+
-          async {
+          Task {
             do {
               _ = try await debugProvider.getToken()
             } catch {
@@ -160,29 +160,30 @@ final class AppCheckAPITests {
     // MARK: - DeviceCheckProvider
 
     // `DeviceCheckProvider` initializer
-    if let app = FirebaseApp.app(), let deviceCheckProvider = DeviceCheckProvider(app: app) {
-      // Get token
-      deviceCheckProvider.getToken { token, error in
-        if let _ /* error */ = error {
-          // ...
-        } else if let _ /* token */ = token {
-          // ...
+    if #available(iOS 11.0, macOS 10.15, macCatalyst 13.0, tvOS 11.0, *) {
+      if let app = FirebaseApp.app(), let deviceCheckProvider = DeviceCheckProvider(app: app) {
+        // Get token
+        deviceCheckProvider.getToken { token, error in
+          if let _ /* error */ = error {
+            // ...
+          } else if let _ /* token */ = token {
+            // ...
+          }
         }
-      }
-
-      // Get token (async/await)
-      #if swift(>=5.5)
-        if #available(iOS 15.0, macOS 12.0, macCatalyst 15.0, tvOS 15.0, watchOS 8.0, *) {
-          // async/await is a Swift 5.5+ feature available on iOS 15+
-          async {
-            do {
-              _ = try await deviceCheckProvider.getToken()
-            } catch {
-              // ...
+        // Get token (async/await)
+        #if swift(>=5.5)
+          if #available(iOS 15.0, macOS 12.0, macCatalyst 15.0, tvOS 15.0, watchOS 8.0, *) {
+            // async/await is a Swift 5.5+ feature available on iOS 15+
+            Task {
+              do {
+                _ = try await deviceCheckProvider.getToken()
+              } catch {
+                // ...
+              }
             }
           }
-        }
-      #endif // swift(>=5.5)
+        #endif // swift(>=5.5)
+      }
     }
   }
 }

+ 2 - 0
FirebaseAppDistribution/Sources/FIRAppDistributionUIService.h

@@ -30,6 +30,8 @@ typedef void (^FIRFADUIActionCompletion)(BOOL continued)
 
 /// An instance of this class provides UI elements required for the App Distribution tester
 /// authentication flow as an AppDelegate interceptor.
+
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase App Distribution is not supported for iOS extensions.")
 @interface FIRAppDistributionUIService : NSObject <UIApplicationDelegate,
                                                    ASWebAuthenticationPresentationContextProviding,
                                                    SFSafariViewControllerDelegate>

+ 2 - 0
FirebaseAppDistribution/Sources/Public/FirebaseAppDistribution/FIRAppDistribution.h

@@ -26,6 +26,8 @@ NS_ASSUME_NONNULL_BEGIN
  * Note: The App Distribution class cannot be subclassed. If this makes testing difficult,
  * we suggest using a wrapper class or a protocol extension.
  */
+
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase App Distribution is not supported for iOS extensions.")
 NS_SWIFT_NAME(AppDistribution)
 @interface FIRAppDistribution : NSObject
 

+ 4 - 0
FirebaseDynamicLinks/CHANGELOG.md

@@ -1,3 +1,7 @@
+# v8.4.0
+- [fixed] Fixed build issues introduced in Xcode 13 beta 3. (#8401)
+- [fixed] Fixed build failures for extension targets. (#6548)
+
 # v8.2.0
 - [fixed] Fixed analyze issue introduced in Xcode 12.5. (#8208)
 

+ 2 - 0
FirebaseDynamicLinks/Sources/Public/FirebaseDynamicLinks/FIRDynamicLinks.h

@@ -33,6 +33,8 @@ NS_ASSUME_NONNULL_BEGIN
  * @class FIRDynamicLinks
  * @abstract A class that checks for pending Dynamic Links and parses URLs.
  */
+
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase Dynamic Links is not supported for iOS extensions.")
 NS_SWIFT_NAME(DynamicLinks)
 @interface FIRDynamicLinks : NSObject
 

+ 3 - 0
FirebaseInAppMessaging/CHANGELOG.md

@@ -1,3 +1,6 @@
+# 2021-7 --- v8.4.0
+- [fixed] Fixed build issues introduced in Xcode 13 beta 3. (#8401)
+
 # 2021-6 -- v.8.2.0
 - [fixed] Fixed missing constraints warnings in default UI storyboard (#8205).
 

+ 2 - 0
FirebaseInAppMessaging/Sources/DefaultUI/Banner/FIRIAMBannerViewController.h

@@ -24,6 +24,8 @@
 @protocol FIRInAppMessagingDisplayDelegate;
 
 NS_ASSUME_NONNULL_BEGIN
+
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 @interface FIRIAMBannerViewController : FIRIAMBaseRenderingViewController
 + (FIRIAMBannerViewController *)
     instantiateViewControllerWithResourceBundle:(NSBundle *)resourceBundle

+ 1 - 0
FirebaseInAppMessaging/Sources/DefaultUI/Card/FIRIAMCardViewController.h

@@ -20,6 +20,7 @@
 @protocol FIRInAppMessagingDisplayDelegate;
 
 NS_ASSUME_NONNULL_BEGIN
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 @interface FIRIAMCardViewController : FIRIAMBaseRenderingViewController
 
 + (FIRIAMCardViewController *)

+ 2 - 0
FirebaseInAppMessaging/Sources/DefaultUI/FIRIAMBaseRenderingViewController.h

@@ -22,6 +22,8 @@
 @protocol FIRInAppMessagingDisplayDelegate;
 
 NS_ASSUME_NONNULL_BEGIN
+
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 @interface FIRIAMBaseRenderingViewController : UIViewController
 @property(nonatomic, readwrite) id<FIRIAMTimeFetcher> timeFetcher;
 

+ 1 - 0
FirebaseInAppMessaging/Sources/DefaultUI/FIRIAMDefaultDisplayImpl.h

@@ -25,6 +25,7 @@ NS_SWIFT_NAME(InAppMessagingDefaultDisplayImpl)
  * would be instantiated upon SDK start-up automatically. It's exposed in public interface
  * to help UI Testing app access the UI layer directly.
  */
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 @interface FIRIAMDefaultDisplayImpl : NSObject <FIRInAppMessagingDisplay>
 
 /// Conforms to display delegate for rendering of in-app messages.

+ 1 - 0
FirebaseInAppMessaging/Sources/DefaultUI/FIRIAMRenderingWindowHelper.h

@@ -23,6 +23,7 @@ NS_ASSUME_NONNULL_BEGIN
  * The caller is supposed to set the rootViewController to be the appropriate view controller
  * for the in-app message and call setHidden:NO to make it really visible.
  */
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 @interface FIRIAMRenderingWindowHelper : NSObject
 
 /// Returns the singleton `UIWindow` object used for rendering IAM views that block

+ 1 - 0
FirebaseInAppMessaging/Sources/DefaultUI/ImageOnly/FIRIAMImageOnlyViewController.h

@@ -23,6 +23,7 @@
 @protocol FIRInAppMessagingDisplayDelegate;
 
 NS_ASSUME_NONNULL_BEGIN
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 @interface FIRIAMImageOnlyViewController : FIRIAMBaseRenderingViewController
 + (FIRIAMImageOnlyViewController *)
     instantiateViewControllerWithResourceBundle:(NSBundle *)resourceBundle

+ 1 - 0
FirebaseInAppMessaging/Sources/DefaultUI/Modal/FIRIAMModalViewController.h

@@ -22,6 +22,7 @@
 @protocol FIRInAppMessagingDisplayDelegate;
 
 NS_ASSUME_NONNULL_BEGIN
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 @interface FIRIAMModalViewController : FIRIAMBaseRenderingViewController
 + (FIRIAMModalViewController *)
     instantiateViewControllerWithResourceBundle:(NSBundle *)resourceBundle

+ 2 - 0
FirebaseInAppMessaging/Sources/Private/Flows/FIRIAMDisplayCheckOnAnalyticEventsFlow.h

@@ -18,5 +18,7 @@
 
 // An implementation of FIRIAMDisplayCheckTriggerFlow by triggering the display check when
 // a Firebase Analytics event is fired.
+
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 @interface FIRIAMDisplayCheckOnAnalyticEventsFlow : FIRIAMDisplayCheckTriggerFlow
 @end

+ 1 - 0
FirebaseInAppMessaging/Sources/Private/Flows/FIRIAMDisplayExecutor.h

@@ -38,6 +38,7 @@ NS_ASSUME_NONNULL_BEGIN
 // conditions are satisfied for the rendering
 //   1 No current in-app message is being displayed
 //   2 For non-contextual messages, the display interval in display setting is met.
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 @interface FIRIAMDisplayExecutor : NSObject
 
 - (instancetype)initWithInAppMessaging:(FIRInAppMessaging *)inAppMessaging

+ 1 - 0
FirebaseInAppMessaging/Sources/Private/Flows/FIRIAMFetchOnAppForegroundFlow.h

@@ -16,6 +16,7 @@
 #import "FirebaseInAppMessaging/Sources/Private/Runtime/FIRIAMFetchFlow.h"
 
 // an implementation of FIRIAMDisplayExecutor by triggering the display when app is foregrounded
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 @interface FIRIAMFetchOnAppForegroundFlow : FIRIAMFetchFlow
 - (void)start;
 - (void)stop;

+ 1 - 0
FirebaseInAppMessaging/Sources/Private/Flows/FIRIAMMessageClientCache.h

@@ -49,6 +49,7 @@ NS_ASSUME_NONNULL_BEGIN
 //
 // This class exists so that we can do message match more efficiently (in-memory search vs search
 // in local persistent storage) by using appropriate in-memory data structure.
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 @interface FIRIAMMessageClientCache : NSObject
 
 // used to inform the analytics event display check flow about whether it should start/stop

+ 1 - 0
FirebaseInAppMessaging/Sources/Private/Runtime/FIRIAMFetchFlow.h

@@ -43,6 +43,7 @@ typedef void (^FIRIAMFetchMessageCompletionHandler)(
 
 // Parent class for supporting different fetching flows. Subclass is supposed to trigger
 // checkAndFetch at appropriate moments based on its fetch strategy
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 @interface FIRIAMFetchFlow : NSObject
 - (instancetype)initWithSetting:(FIRIAMFetchSetting *)setting
                    messageCache:(FIRIAMMessageClientCache *)cache

+ 1 - 0
FirebaseInAppMessaging/Sources/Private/Runtime/FIRIAMRuntimeManager.h

@@ -25,6 +25,7 @@
 
 NS_ASSUME_NONNULL_BEGIN
 // A class for managing the objects/dependencies for supporting different fiam flows at runtime
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 @interface FIRIAMRuntimeManager : NSObject
 @property(nonatomic, nonnull) FIRIAMSDKSettings *currentSetting;
 @property(nonatomic, nonnull) FIRIAMActivityLogger *activityLogger;

+ 2 - 0
FirebaseInAppMessaging/Sources/Public/FirebaseInAppMessaging/FIRInAppMessaging.h

@@ -42,6 +42,8 @@ NS_ASSUME_NONNULL_BEGIN
  *   2. Set `FirebaseInAppMessagingAutomaticDataCollectionEnabled` to false in the app's plist file.
  *   3. Global Firebase data collection setting.
  **/
+
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 NS_SWIFT_NAME(InAppMessaging)
 @interface FIRInAppMessaging : NSObject
 /** @fn inAppMessaging

+ 10 - 0
FirebaseInAppMessaging/Sources/Public/FirebaseInAppMessaging/FIRInAppMessagingRendering.h

@@ -68,6 +68,7 @@ NS_SWIFT_NAME(InAppMessagingActionButton)
 
 /** Contain display data for an image for a fiam message.
  */
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 NS_SWIFT_NAME(InAppMessagingImageData)
 @interface FIRInAppMessagingImageData : NSObject
 
@@ -88,6 +89,7 @@ NS_SWIFT_NAME(InAppMessagingImageData)
 
 /** Defines the metadata for the campaign to which a FIAM message belongs.
  */
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 NS_SWIFT_NAME(InAppMessagingCampaignInfo)
 @interface FIRInAppMessagingCampaignInfo : NSObject
 
@@ -113,6 +115,7 @@ NS_SWIFT_NAME(InAppMessagingCampaignInfo)
 
 /** Defines the metadata for a FIAM action.
  */
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 NS_SWIFT_NAME(InAppMessagingAction)
 @interface FIRInAppMessagingAction : NSObject
 
@@ -138,6 +141,7 @@ NS_SWIFT_NAME(InAppMessagingAction)
  * Base class representing a FIAM message to be displayed. Don't create instance
  * of this class directly. Instantiate one of its subclasses instead.
  */
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 NS_SWIFT_NAME(InAppMessagingDisplayMessage)
 @interface FIRInAppMessagingDisplayMessage : NSObject
 
@@ -173,6 +177,7 @@ NS_SWIFT_NAME(InAppMessagingDisplayMessage)
 
 @end
 
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 NS_SWIFT_NAME(InAppMessagingCardDisplay)
 @interface FIRInAppMessagingCardDisplay : FIRInAppMessagingDisplayMessage
 
@@ -233,6 +238,7 @@ NS_SWIFT_NAME(InAppMessagingCardDisplay)
 
 /** Class for defining a modal message for display.
  */
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 NS_SWIFT_NAME(InAppMessagingModalDisplay)
 @interface FIRInAppMessagingModalDisplay : FIRInAppMessagingDisplayMessage
 
@@ -278,6 +284,7 @@ NS_SWIFT_NAME(InAppMessagingModalDisplay)
 
 /** Class for defining a banner message for display.
  */
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 NS_SWIFT_NAME(InAppMessagingBannerDisplay)
 @interface FIRInAppMessagingBannerDisplay : FIRInAppMessagingDisplayMessage
 
@@ -318,6 +325,7 @@ NS_SWIFT_NAME(InAppMessagingBannerDisplay)
 
 /** Class for defining a image-only message for display.
  */
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 NS_SWIFT_NAME(InAppMessagingImageOnlyDisplay)
 @interface FIRInAppMessagingImageOnlyDisplay : FIRInAppMessagingDisplayMessage
 
@@ -360,6 +368,7 @@ typedef NS_ENUM(NSInteger, FIAMDisplayRenderErrorType) {
  * A protocol defining those callbacks to be triggered by the message display component
  * under appropriate conditions.
  */
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 NS_SWIFT_NAME(InAppMessagingDisplayDelegate)
 @protocol FIRInAppMessagingDisplayDelegate <NSObject>
 
@@ -417,6 +426,7 @@ NS_SWIFT_NAME(InAppMessagingDisplayDelegate)
 /**
  * The protocol that a FIAM display component must implement.
  */
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 NS_SWIFT_NAME(InAppMessagingDisplay)
 @protocol FIRInAppMessagingDisplay
 

+ 2 - 0
FirebaseInAppMessaging/Sources/Runtime/FIRIAMActionURLFollower.m

@@ -23,6 +23,7 @@
 #import "FirebaseInAppMessaging/Sources/FIRCore+InAppMessaging.h"
 #import "FirebaseInAppMessaging/Sources/Private/Runtime/FIRIAMActionURLFollower.h"
 
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 @interface FIRIAMActionURLFollower ()
 @property(nonatomic, readonly, nonnull, copy) NSSet<NSString *> *appCustomURLSchemesSet;
 @property(nonatomic, readonly) BOOL isOldAppDelegateOpenURLDefined;
@@ -33,6 +34,7 @@
 @property(nonatomic, readonly, nonnull) UIApplication *mainApplication;
 @end
 
+NS_EXTENSION_UNAVAILABLE_IOS("Firebase In App Messaging is not supported for iOS extensions.")
 @implementation FIRIAMActionURLFollower
 
 + (FIRIAMActionURLFollower *)actionURLFollower {

+ 9 - 0
FirebaseInAppMessaging/Swift/Source/CustomInAppMessageDisplayViewModifier.swift

@@ -18,6 +18,7 @@ import SwiftUI
 // MARK: Image-only messages.
 
 @available(iOS 13, tvOS 13, *)
+@available(iOSApplicationExtension, unavailable)
 struct ImageOnlyInAppMessageDisplayViewModifier<DisplayMessage: View>: ViewModifier {
   var closure: (InAppMessagingImageOnlyDisplay, InAppMessagingDisplayDelegate) -> DisplayMessage
   @ObservedObject var delegateBridge = DelegateBridge.shared
@@ -39,6 +40,7 @@ struct ImageOnlyInAppMessageDisplayViewModifier<DisplayMessage: View>: ViewModif
 }
 
 @available(iOS 13, tvOS 13, *)
+@available(iOSApplicationExtension, unavailable)
 public extension View {
   /// Overrides the default display of an image only in-app message as defined on the Firebase console.
   func imageOnlyInAppMessage<Content: View>(closure: @escaping (InAppMessagingImageOnlyDisplay,
@@ -52,6 +54,7 @@ public extension View {
 // MARK: Banner messages.
 
 @available(iOS 13, tvOS 13, *)
+@available(iOSApplicationExtension, unavailable)
 struct BannerInAppMessageDisplayViewModifier<DisplayMessage: View>: ViewModifier {
   var closure: (InAppMessagingBannerDisplay, InAppMessagingDisplayDelegate) -> DisplayMessage
   @ObservedObject var delegateBridge = DelegateBridge.shared
@@ -72,6 +75,7 @@ struct BannerInAppMessageDisplayViewModifier<DisplayMessage: View>: ViewModifier
 }
 
 @available(iOS 13, tvOS 13, *)
+@available(iOSApplicationExtension, unavailable)
 public extension View {
   /// Overrides the default display of a banner in-app message as defined on the Firebase console.
   func bannerInAppMessage<Content: View>(closure: @escaping (InAppMessagingBannerDisplay,
@@ -85,6 +89,7 @@ public extension View {
 // MARK: Modal messages.
 
 @available(iOS 13, tvOS 13, *)
+@available(iOSApplicationExtension, unavailable)
 struct ModalInAppMessageDisplayViewModifier<DisplayMessage: View>: ViewModifier {
   var closure: (InAppMessagingModalDisplay, InAppMessagingDisplayDelegate) -> DisplayMessage
   @ObservedObject var delegateBridge = DelegateBridge.shared
@@ -105,6 +110,7 @@ struct ModalInAppMessageDisplayViewModifier<DisplayMessage: View>: ViewModifier
 }
 
 @available(iOS 13, tvOS 13, *)
+@available(iOSApplicationExtension, unavailable)
 public extension View {
   /// Overrides the default display of a modal in-app message as defined on the Firebase console.
   func modalInAppMessage<Content: View>(closure: @escaping (InAppMessagingModalDisplay,
@@ -118,6 +124,7 @@ public extension View {
 // MARK: Card messages.
 
 @available(iOS 13, tvOS 13, *)
+@available(iOSApplicationExtension, unavailable)
 struct CardInAppMessageDisplayViewModifier<DisplayMessage: View>: ViewModifier {
   var closure: (InAppMessagingCardDisplay, InAppMessagingDisplayDelegate) -> DisplayMessage
   @ObservedObject var delegateBridge = DelegateBridge.shared
@@ -138,6 +145,7 @@ struct CardInAppMessageDisplayViewModifier<DisplayMessage: View>: ViewModifier {
 }
 
 @available(iOS 13, tvOS 13, *)
+@available(iOSApplicationExtension, unavailable)
 public extension View {
   /// Overrides the default display of a card in-app message as defined on the Firebase console.
   func cardInAppMessage<Content: View>(closure: @escaping (InAppMessagingCardDisplay,
@@ -155,6 +163,7 @@ public extension View {
  * in-app message fetch/display/interaction flow.
  */
 @available(iOS 13, tvOS 13, *)
+@available(iOSApplicationExtension, unavailable)
 class DelegateBridge: NSObject, InAppMessagingDisplay, InAppMessagingDisplayDelegate,
   ObservableObject {
   @Published var inAppMessageData: (InAppMessagingDisplayMessage,

+ 1 - 0
Functions/Tests/CombineUnit/HTTPSCallableTests.swift

@@ -41,6 +41,7 @@ class MockFunctions: Functions {
   }
 }
 
+@available(iOS 13.0, macOS 10.15, macCatalyst 13.0, tvOS 13.0, watchOS 6.0, *)
 class HTTPSCallableTests: XCTestCase {
   override func setUp() {
     super.setUp()

+ 1 - 0
SharedTestUtilities/FIRSampleAppUtilities.h

@@ -18,6 +18,7 @@
 #if __has_include(<UIKit/UIKit.h>) && !TARGET_OS_WATCH
 #import <UIKit/UIKit.h>
 
+NS_EXTENSION_UNAVAILABLE_IOS("SampleAppUtilities is not supported for iOS extensions.")
 NS_SWIFT_NAME(SampleAppUtilities)
 @interface FIRSampleAppUtilities : NSObject