Swift iOS15应用集成Admob横幅广告启动崩溃问题求助
问题原因&解决方案
1. 直接崩溃的核心原因
你写的Banner组件出现了无限递归调用:Banner结构体的body属性内部又初始化了Banner()本身,导致栈内存溢出,触发EXC_BAD_ACCESS崩溃。
2. 修复代码
只需要修改BannerView里的Banner结构体实现,把内部的Banner()替换为你封装好的BannerVC即可:
struct Banner:View{ var body: some View{ HStack{ Spacer() // 原代码这里错误写为Banner(),调用自身导致无限递归 BannerVC().frame(width: 320, height: 50, alignment: .center) Spacer() } } }
3. 关于4099错误日志
你移除广告逻辑后出现的报错是Xcode模拟器的系统服务异常,和AdMob集成逻辑没有关系,在真机运行时不会出现,直接忽略即可。
其他可选优化点
- 可以给
GADBannerView设置GADBannerViewDelegate代理,监听广告加载成功、失败的回调,方便排查加载问题 - 建议在AdMob初始化完成后再加载广告,避免出现偶发的初始化未完成导致的加载失败
内容的提问来源于stack exchange,提问作者Jonny69
相关产品推荐
相关产品推荐

