【发布时间】:2017-01-26 08:55:48
【问题描述】:
我目前正在开发一款需要禁用 ATS 的游戏:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSExceptionDomains</key>
<dict/>
</dict>
(在上面的代码中没有异常域)
我需要这个,因为我在 Vungle 和 AdColony 中使用 AdMob 激励视频中介 - 两者都需要禁用 ATS。我意识到我可以修改该代码以在启用 ATS 时使这些站点异常,但它似乎没有改变任何东西,除了广告网络在控制台中向我发出警告,告诉我需要启用 ATS。
在禁用 ATS 的情况下,广告过去可以正常工作,直到我更新到 Xcode 8(我之前使用的是 Swift 3 和 Xcode 8 beta)才收到此警告。
即使我禁用了 ATS,这些广告网络似乎也不起作用(我还设置了第三个广告网络,它不需要禁用 ATS 即可检查是否是 AdMob 问题,并且运行良好)。
每当它尝试加载视频广告时,我都会在控制台中多次收到此警告:
NSURLSession/NSURLConnection HTTP 加载失败 (kCFStreamErrorDomainSSL, -9814)
我不确定我应该怎么做。对于此类问题,我几乎已经阅读了所有其他类似的答案,但似乎没有一个可以解决问题。另外,由于我没有使用自己的服务器,因此我无法/不知道如何将所需的广告网络站点列入白名单(我尝试将其域/子域作为例外)
我是否遗漏了什么重要的东西,或者我做错了什么?是否有解决方案,还是我必须等待广告网络符合 ATS 标准?任何帮助表示赞赏。
PS:我知道所有应用都应如何符合 ATS,并且可能/可能会被应用商店拒绝...
【问题讨论】:
-
每当它尝试加载视频广告时,我都会在控制台中多次收到此警告:,这只发生在模拟器中吗?
-
@DanielStorm 不,它发生在我的设备上
-
您使用的是最新版本的 AdMob 吗?当前 7.11.0:firebase.google.com/docs/admob/ios/download
-
@DanielStorm 抱歉回复晚了。我实际上在最新版本上。我不认为这直接是 AdMob 问题,因为其他不需要禁用 ATS 的中介网络仍然可以正常工作
标签: ios swift xcode admob app-transport-security