要在Swift / SwiftUI中显示AdMob的测试广告,但不显示真实广告,可以按照以下步骤操作:
第1步:导入Google Mobile Ads SDK 在项目的Podfile文件中添加以下行,然后运行pod install来安装Google Mobile Ads SDK。
pod 'Google-Mobile-Ads-SDK'
第2步:设置AdMob应用ID 在您的AppDelegate.swift文件中,导入GoogleMobileAds和Firebase库,并在application:didFinishLaunchingWithOptions:方法中设置AdMob应用ID。
import GoogleMobileAds
import Firebase
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
GADMobileAds.sharedInstance().start(completionHandler: nil)
return true
}
第3步:创建AdView视图 在您的SwiftUI视图中,创建一个AdView视图,用于显示广告。首先,导入GoogleMobileAds库。
import GoogleMobileAds
然后,创建一个AdView结构体,遵循UIViewRepresentable协议。
struct AdView: UIViewRepresentable {
func makeUIView(context: UIViewRepresentableContext) -> GADBannerView {
let bannerView = GADBannerView(adSize: kGADAdSizeBanner)
bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716" // 测试广告单元ID
bannerView.rootViewController = UIApplication.shared.windows.first?.rootViewController
return bannerView
}
func updateUIView(_ uiView: GADBannerView, context: UIViewRepresentableContext) {
let request = GADRequest()
request.testDevices = [kGADSimulatorID] // 将测试设备设置为模拟器
uiView.load(request)
}
}
在makeUIView方法中,创建一个GADBannerView实例,并设置广告单元ID和根视图控制器。在updateUIView方法中,创建一个GADRequest实例,并将测试设备设置为模拟器。最后,调用uiView的load方法加载广告请求。
第4步:在SwiftUI视图中使用AdView 在您的SwiftUI视图中,使用AdView结构体来显示广告。
struct ContentView: View {
var body: some View {
VStack {
// ... 其他视图
AdView()
.frame(width: 320, height: 50) // 设置广告视图的大小
}
}
}
在VStack中,添加AdView视图,并使用frame方法设置广告视图的大小。
这样,您就可以在Swift / SwiftUI中显示AdMob的测试广告,但不显示真实广告了。请确保在发布应用时,将测试广告单元ID替换为真实广告单元ID。