Skip to content

IOS SDK常见问题

文档简介

欢迎使用我们的SDK!此文档将全面指导您将如何解决在接入TobidSDK过程中遇到的问题,如有疑问请联系Tobid技术支持🫰。

让我们现在快速开始了解分类吧~

1. Crash相关问题

1、启动崩溃(App Crashes on Launching)

Build Settings中的Other Linker Flags缺失-ObjC flag配置项

如果你遇到了这种错误,您可以在Xcode导航到Build Settings中,找到Other Linker Flags 双击它,点击**+并添加-ObjC**即可:

: Linker Flags 是需要区分大小写的

2、引入快手SDK编译崩溃

您遇到这个崩溃是因为快手sdk为动态库,需要将KSAdSDK.frameworkEmbed修改为Embed&Sign即可

注: 如果您的应用程序导入了快手的SDK,请保证您的app配置了以上操作且关闭了bitcode。

3、iOS激励视频快手渠道,横屏展示异常或崩溃

平台配置的广告方向应和实际请求的广告横竖屏方向一致

4、引入Admob的SDK后,程序启动崩溃

崩溃原因:添加了Admob的SDK,但是没有在info.plist中配置AppID请参考下图配置:

xml
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-9488501426181082/7319780494</string>
<key>GADIsAdManagerApp</key>
<true/>

如下图:

注: 如果您的应用程序导入了Admob的SDK,请保证您的app配置了以上操作。

5、iOS 端激励视频点击反馈按钮后,出现界面卡住、倒计时停滞的问题,如何解决?

因设置 window.windowLevel = UIWindow.Level.alert + 1 ,导致意见反馈弹窗无法正常弹出,引发激励视频点击反馈按钮后卡住、倒计时停滞。需调整广告窗口层级优先级,避免窗口层级冲突。

2. 集成相关问题

1、原生自渲染广告,没有曝光上报

(1).主要的view(以优量汇为例GDTUnifiedNativeAdView)没展示出来,导致广点通没有给曝光

(2).项目中集成了M7CrashProtector这个框架会导致原生自渲染不给曝光回调

(3).广告展示没有超过80%(有没有在最上层或者被其它弹窗遮盖)

2、iOS广告从回调里获取的ecpm为什么会返回负数(-2)?

如果在广告加载完成时尝试获取ecpm但未能成功,会返回 -2,建议在展示回调中进行调用,以确保能够正确获取ecpm值。

3、iOS初始化接口 [WindMillAds setupSDKWithAppId:@""] 是否可以异步初始化?

是的,支持异步初始化,请确保初始化完成后再请求广告

4、iOS端初始化与开启日志接口分别只调用了一次,开发者工具日志里发现渠道所有的Log都是打印2次。

此现象由开发者工具的配置引起。请在开发者工具的Arguments设置中,将OS_ACTIVITY_MODE参数调整为disable,以禁用重复日志打印功能。

5、异步初始化SDK的情况下,是否在子线程执行完startWithAppId方法后就能知道SDK是否初始化成功?

可以通过该方法判断获取初始化状态,

objective-c
//返回是个BOOL类型,成功YES,失败NO
+ (B00L)hasInitsuccessed;

6、iOS端展示原生视频广告后,主动调用了play,为什么只有广告声音没有画面?

视频组件需要设置约束

7、iOS端接入聚合后报错SKStoreProductViewController,摇一摇崩溃了

媒体先检查是否 使用了SKStoreProductViewController。TOBID聚合 hook了SKStoreProductViewController 做了相关事件的打点,媒体如果不方便改自己的逻辑,可以hook这个方法addStoreKitProductLoadObserver即可,只会影响store_kit打点,此打点非重要事件。

8、GDTMobSDK 优量汇 (4.15.30)静态库变成动态库developers.adnet.qq.com

如您遇到iOS端编译出现 “Undefined symbols” 报错,即便引入 CoreML.framework 库,错误仍持续。手动导入 SDK 后,CoreHaptics.framework 导入正常,但应用启动时崩溃。

“Library not loaded: '@rpath/GDTMobSDK.framework/GDTMobSDK'(未加载库:GDTMobSDK.framework),Reason: tried: '' (no such file)...(尝试寻找该库,但所有路径均未找到文件)”

请将 GDTMobSDK 动态库的设置改为 “Embed”(嵌入),确保应用能正确加载该动态库。

9、美数、倍孜渠道开屏广告不展示品牌条,其他渠道正常?

有些渠道要求在创建开屏广告对象的时候传入品牌条相关的组件或是load时传入,开发者如果是在show的是传入的,就会导致不展示品牌条

10、iOS端穿山甲开屏广告点击触发没有响应?

请检查传入的vc是否为null,如果没有传入viewcontroller ,穿山甲开屏无法点击 如图:

11、iOS 开屏的所有回调都不走,开屏广告卡住了?

部分广告平台出于安全或兼容性考虑,不允许开发者在传入的 rootViewController 上再 present 其他控制器,否则会出现冲突或崩溃。

12、手动导入集成TobidSDK后,运行报错:SMDatabase columnExists:inTableWithName

需要在Xcode中选择项目的Targets->Build Settings,配置Other Linker Flags 增加 -ObjC。

13、iOS端 如何解决优量汇广告播放时,系统音乐被暂停或音量降低的问题?

#import <GDTMobSDK/GDTSDKConfig.h>
 /**
 在播放音频时是否使用SDK内部对AVAudioSession设置的category及options,默认使用,若不使用,SDK内部不做任何处理,由调用方在展示广告时自行设置;
 SDK设置的category为AVAudioSessionCategoryAmbient,options为AVAudioSessionCategoryOptionDuckOthers
 */
 [GDTSDKConfig enableDefaultAudioSessionSetting:NO];

在 ToBid 初始化前调用调用此方法,设置NO,GDT的SDK内部不做任何处理,走媒体默认的音频模式。

14、为什么iPad展示Sigmob和穿山甲广告会有透明遮罩导致点击无反应?

代码中可能额外添加了 addSubview 操作或其他 UIView 相关设置,从而在广告上层覆盖了透明遮罩,拦截了点击事件。请检查代码,查看是否有额外的 addSubview 调用以及其他可能影响视图层级的 UIView 相关操作,若有则进行调整或移除,确保广告视图能正常接收点击事件。

15、iOS端 原生自渲染广告如何将联盟的logo改变位置,或者隐藏呢?

可通过将 logo 对应的视图(logoView)的 hidden 属性设置为 YES,来实现隐藏联盟 logo 的效果。若要调整位置,则需结合视图布局相关的方法(如 Auto Layout 约束调整等),对 logoView 的位置参数进行修改。

16、IOS端Tobid聚合增加自定义渠道,Swift代码实现适配器,渠道一直没有被调用,这是为什么?

请检查Swift 类定义是否有加上@objc。

17、IOS端,为什么广告源报错 穿山甲 错误码98765,错误描述Invalid SDK Framework. Please check the framework, you can find more info in xcode console log?

请检查Unity打包时是否有导出来Bundle,如果没有导出会导致穿山甲初始化失败。

18、iOS端请求美数渠道,原生自渲染视频素材类广告,只有icon,视频素材加载不出来,是什么原因?

/**
设置media视图frame,需要在refreshData之后调用,美数渠道
*/
- (void)setMediaViewSize:(CGSize)size;

19、IOS端Banner广告的宽度无法占全屏幕宽度,如何解决?

1.建议开发者先进行居中显示,调用如下代码:

CGSize adSize = bannerAdView.adSize;
CGFloat space = (UIScreen.mainScreen.bounds.size.width - adSize.width)/2.0;
//bannerAdView.frame = CGRectMake(space, 0, adSize.width, adSize.height);

2.在请求的时候传入期望的大小,接口如下

20、IOS广告请求报表800110?报错样例:UserInfo={NSLocalizedDescription=无广告返回,各adn的详细错误信息请在广告平台相关报表查看, code=800110}

A:聚合维度报错无广告填充,可多次请求尝试,如尝试无果 1. 可在聚合平台->瀑布流管理->广告源诊断里查看报错原因。

3. 错误码相关问题

Admob

常见错误解决方案
1广告请求无效;检查广告源参数配置
2由于网络连接,广告请求失败。检查是否翻墙

更多的Admob的错误信息请查看: Admob错误码

穿山甲(Pangle)

常见错误解决方案
40029检查穿山甲代码位的渲染类型,Sigmob后台穿山甲广告源的配置需与穿山甲后台的配置保持一致
40018 - 媒体包名与录入不一致代码中配置的包名与穿山甲后台的不一致
102 - 主模板没有下载到本地导致,偶发在首次请求广告时,偶现属于正常情况,出现之后请多尝试多次请求。建议升级到穿山甲2955及以上版本SDK可多请求几次广告进行尝试
103 - 偶发在接入初期,没有匹配到模板导致。待SDK将模板下载成功后不会出现,出现之后请多尝试多次请求。建议升级到穿山甲2955及以上版本SDK。可多请求几次广告进行尝试
107 - 网络原因或者硬件原因导致渲染失败,可以更换手机或者网络环境测试。建议升级到穿山甲2955及以上版本SDK。可多请求几次广告进行尝试

更多的Pangle的错误信息请查看:(需登录) Pangle错误码

Mintegral

错误码msg描述解决方案
-1EXCEPTION_RETURN_EMPTY没有广告填充,可能导致的原因:1.您在测试期间所获取的广告均为Mintegral的正式广告,因此会受到算法智能优化的影响,若一段时间内大量加载和展示广告,可能导致一段时间后没有广告填充的现象。国内版: 1、确保Mintegral后台-应用设置中开启了是否接受apk广告投放 海外版: 1、检查是否翻墙或者VPN到美国地区

更多的Mintegral的错误信息请查看: Mintegral错误码

腾讯广告

错误码描述
4013系统不支持,原生视频模板广告只支持 iOS 9 及以上系统
4020window为空,需要在AppDelegate中添加window属性
5006包名校验非法 代码中配置的包名与广点通后台的不一致
6000未知错误,联系腾讯广告商务同事协助排查。
107077请求包名段数不得小于开发者在优量汇平台上注册的媒体的全包名段数

更多的腾讯广告的错误信息请查看: Tencent Ad错误码

AppLovin

常见错误解决方案
204无填充,可通过Applovin后台开启测试模式进行测试

更多的AppLovin的错误信息请查看: AppLovin错误码

Vungle

常见错误解决方案
获取不到广告通过Vungle后台开启测试模式进行测试
预加载了Vungle的激励视频和插屏广告并且成功后,播放了其中一个Vungle的广告,另一个广告的isAdReady()返回falseVungle的激励视频和插屏广告存在共用同一份广告源资源的情况

更多的Vungle的错误信息请查看: Vungle错误码

快手

常见错误解决方案
40003 - 广告数据为空必现时,联系快手相关人员
310004 - packageName与注册的packageName不一致代码中配置的包名与快手后台的不一致

更多的快手的错误信息请查看:(需登录下载) 快手错误码

UnityAds

更多的UnityAds的错误信息请查看: UnityAds错误码

Ironsource

更多的Ironsource的错误信息请查看: Ironsource错误码

4. 其他

1、IOS为什么使用模拟器运行后会报错?

原因:部分渠道不支持 如 Sigmob 穿山甲渠道不支持,建议使用真机进行测试