Skip to content

Commit

Permalink
Add workaround for Swift header
Browse files Browse the repository at this point in the history
  • Loading branch information
ncooke3 committed Sep 13, 2023
1 parent 38c921a commit b5dcd63
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions FirebaseInAppMessaging/Swift/Source/SPMSwiftHeaderWorkaround.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#if SWIFT_PACKAGE
@_exported import FirebaseInAppMessagingInternal

// This is a trick to force generate a `FirebaseInAppMessaging-Swift.h`
// header that re-exports `FirebaseInAppMessagingInternal` for Objective-C
// clients. It is important for the below code to reference a Remote
// Config symbol defined in Objective-C as that will import the symbol's
// module (`FirebaseInAppMessagingInternal`) in the generated header. This
// allows Objective-C clients to import Remote Config's Objective-C API
// using `@import FirebaseInAppMessaging;`. This API is not needed for Swift
// clients and is therefore unavailable in a Swift context.
@available(*, unavailable)
@objc public extension InAppMessaging {
static var __no_op: () -> Void { {} }
}
#endif // SWIFT_PACKAGE

0 comments on commit b5dcd63

Please sign in to comment.