我創建了這個示例 Swift 框架,GoogleMobileAds它通過 Cocoapods 集成在其中。我有一個NativeAdView繼承自GADNativeAdView.
import GoogleMobileAds
@objc public class NativeAdView: GADNativeAdView {
}
我還有一個示例目標,它是一個 Objective-C 應用程式。我在AppDelegate.m 中匯入如下的框架頭檔案。
#import <SampleFramework/SampleFramework-Swift.h>
現在,當我運行 Objective-C 目標時,它會在檔案SampleFramework-Swift.h 中引發錯誤
@import GoogleMobileAds; -------- Module 'GoogleMobileAds' not found.
但是,如果我將 的父類更改NativeAdView為 Google 廣告類以外的任何內容,錯誤就會消失并且構建編譯并成功運行。
也@import GoogleMobileAds;行遠離SampleFramework-Swift.h檔案
我無法弄清楚發生了什么。
Github 鏈接 - https://github.com/rishabdutta/FrameworkSample
uj5u.com熱心網友回復:
首先,將目標 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
但是這樣您將面臨運行時警告“類 APMAdExposureReporter 已在兩者中實作......”,但該應用程式可以正常作業,警告不會引起真正的問題 -此處已討論,但我個人不知道最佳實踐如何處理。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/329177.html
上一篇:iOS禁用“選擇更多照片”警報
下一篇:如何知道iOS會殺死我的應用擴展
