我使用以下代码:
let request : GADRequest = GADRequest ()
request.testDevices = ["xxxxxxx",kGADSimulatorID]
但是我收到以下警告:
“ testDevices”已弃用:使用GADMobileAds.sharedInstance.requestConfiguration.testDeviceIdentifiers。
我是否使用语法删除警告?
答案 0 :(得分:4)
您应该使用此:
GADMobileAds.sharedInstance().requestConfiguration.testDeviceIdentifiers = ["YOUR IDENTIFIER PRINTED ON DEBUGGER"]
代替:
request.testDevices = ["YOUR IDENTIFIER PRINTED ON DEBUGGER"]
答案 1 :(得分:1)
使用语法删除警告:
GADMobileAds.sharedInstance.requestConfiguration.testDeviceIdentifiers
答案 2 :(得分:1)
您根本不需要设置此设置。正如AdMob开发人员文档所述:
iOS模拟器会自动配置为测试设备。
来源:https://developers.google.com/admob/ios/test-ads#enable_test_devices
答案 3 :(得分:1)
事实证明,可以通过计算MD5中的advertisingIdentifier来找到AdMob
/ GoogleAdManager
deviceId
。这样,您就可以在代码中检索并使用测试deviceId
,而无需事先从控制台日志中获取设备的标识符。
为避免使用ObjC-Swift桥接标头(通过<CommonCrypto/CommonCrypto.h>
获取MD5)的麻烦,我建议在CommonCrypto
框架周围使用Swift包装器,例如:
使用上述框架(该框架向String
添加了一个扩展属性以计算MD5哈希),这是查询以下内容的简单问题:
GADMobileAds.sharedInstance().requestConfiguration.testDeviceIdentifiers ?? []).contains(ASIdentifierManager.shared().advertisingIdentifier.uuidString.md5)
答案 4 :(得分:0)
这是对10623169回答的修改。
要获取可在“testDevices”中设置的当前设备的有效 ID,请获取其 MD5:UIDevice.current.identifierForVendor?.uuidString
如果用户未授予跟踪权限,则 asIdentifier
值可能完全无效。但 UIDevice.current.identifierForVendor
是应用的有效 UUID,它将在启动后持续存在(但如果您删除应用并重新安装,则可能不会)。
答案 5 :(得分:-1)
如果您使用情节提要,然后在情节提要中创建视图,并指定横幅类,则您的广告将正常运行。