在 'Framework' -Swift.h 文件中找不到模块
Module not found inside 'Framework' -Swift.h file
我创建了这个示例 Swift 框架,其中 GoogleMobileAds
通过 Cocoapods 集成。我有一个 class NativeAdView
继承自 GADNativeAdView
.
import GoogleMobileAds
@objc public class NativeAdView: GADNativeAdView {
}
我还有一个示例目标,它是一个 Objective-C 应用程序。我在 AppDelegate.m.
中导入框架 header,如下所示
#import <SampleFramework/SampleFramework-Swift.h>
现在,当我 运行 Objective-C 目标时,它会在文件 SampleFramework-Swift.h[ 中引发错误=42=]
@import GoogleMobileAds; -------- Module 'GoogleMobileAds' not found.
但是,如果我将 NativeAdView
的 parent class 更改为 Google 广告 class 以外的任何内容,错误就会消失并且构建编译并 运行s 成功。
另外 @import GoogleMobileAds;
行从 SampleFramework-Swift.h 文件
我不知道发生了什么。
Github link - https://github.com/rishabdutta/FrameworkSample
首先,将您的目标 SampleFramework、SampleSwift、SampleObjc 的包标识符更新为不同的。
尝试按如下方式更新 Podfile。 Cocoapods 的工作方式是,在您的设置中,您必须为每个使用它的目标指定 'Google-Mobile-Ads-SDK',但为了避免复制该行,您可以使用 abstract_target
,以便自动将依赖项添加到内部的所有目标:
use_frameworks!
abstract_target 'Common' do
pod 'Google-Mobile-Ads-SDK'
target 'SampleFramework' do
end
target 'SampleObjc' do
end
target 'SampleSwift' do
end
end
但这样您将面临运行时警告“Class APMAdExposureReporter 已在两者中实现...”,但该应用程序可以运行,警告不会导致实际问题 - , 但我个人不知道如何处理它的最佳实践。
我创建了这个示例 Swift 框架,其中 GoogleMobileAds
通过 Cocoapods 集成。我有一个 class NativeAdView
继承自 GADNativeAdView
.
import GoogleMobileAds
@objc public class NativeAdView: GADNativeAdView {
}
我还有一个示例目标,它是一个 Objective-C 应用程序。我在 AppDelegate.m.
中导入框架 header,如下所示#import <SampleFramework/SampleFramework-Swift.h>
现在,当我 运行 Objective-C 目标时,它会在文件 SampleFramework-Swift.h[ 中引发错误=42=]
@import GoogleMobileAds; -------- Module 'GoogleMobileAds' not found.
但是,如果我将 NativeAdView
的 parent class 更改为 Google 广告 class 以外的任何内容,错误就会消失并且构建编译并 运行s 成功。
另外 @import GoogleMobileAds;
行从 SampleFramework-Swift.h 文件
我不知道发生了什么。
Github link - https://github.com/rishabdutta/FrameworkSample
首先,将您的目标 SampleFramework、SampleSwift、SampleObjc 的包标识符更新为不同的。
尝试按如下方式更新 Podfile。 Cocoapods 的工作方式是,在您的设置中,您必须为每个使用它的目标指定 'Google-Mobile-Ads-SDK',但为了避免复制该行,您可以使用 abstract_target
,以便自动将依赖项添加到内部的所有目标:
use_frameworks!
abstract_target 'Common' do
pod 'Google-Mobile-Ads-SDK'
target 'SampleFramework' do
end
target 'SampleObjc' do
end
target 'SampleSwift' do
end
end
但这样您将面临运行时警告“Class APMAdExposureReporter 已在两者中实现...”,但该应用程序可以运行,警告不会导致实际问题 -