App Transport Security 在允许时阻止 http 请求

App Transport Security blocks http request when it's allowed

大家好。我在共享扩展 ios9 上遇到 App Transport Security 的奇怪问题。 我们的项目有 2目标、ios 项目(基于 phonegap)和本地共享扩展。在两个目标上,我们都执行非 https 请求,在两个目标上,我都添加了

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

到 .plist 文件,所以应该关闭 ATS。 在应用程序上它可以工作,我可以毫无问题地执行非 https 请求,但在共享扩展上它仍然阻止我的请求

有人知道我们该如何解决吗?

您应该首先允许您的特定域,就像这样。

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>api.domainname.com</key>
        <dict>
            <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
        <key>dev.domainname.com</key>
        <dict>
            <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>