我目前正在开发一款需要禁用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标准,并且可能/可能会被应用程序商店拒绝...
答案 0 :(得分:0)
这似乎只是一个错误。在将AdMob,Xcode,macOS和iOS更新到最新版本并重新启动Xcode和计算机后,问题似乎已经消失。现在一切正常,包括广告,控制台中没有显示警告。我猜这是Xcode的一个错误,而不是我更新的任何其他内容。