在运行时添加NSExceptionDomains

问题描述 投票:1回答:1

我在NSAppTransportSecurity > NSExceptionDomains文件中成功添加了Info.plist,如:

<key>NSAppTransportSecurity</key>
<key>NSAllowsArbitraryLoads</key>
<false/>
<key>NSExceptionDomains</key>
<dict>
    <key><!-- your_remote_server.com / localhost --></key>
    <dict>
        <key>NSIncludesSubdomains</key>
        <true/>
        <key>NSExceptionAllowsInsecureHTTPLoads</key>
        <true/>
        <key>NSExceptionRequiresForwardSecrecy</key>
        <true/>
    </dict>
<!-- add more domain here -->
</dict>

但是有一个问题,我们有这些提供商,我们得到RSS提要并显示在应用程序中,NSAppTransportSecurity阻止它们。我想动态添加NSExceptionDomains中的当前活动提供程序并删除那些不活动的提供程序。

我知道在运行时修改Info.plist是不行的,但我没有选择。

任何人都知道如何做到这一点?

objective-c xcode ios9
1个回答
0
投票

我进入了同一个十字路口,我得到的解决方案是直接将我的应用程序直接传递给动态远程服务器并获得响应,我将服务器添加到中间,其中任务是作为应用程序之间的中间人。动态远程服务器。这样你只需要将自己的服务器添加到NSExceptionDomains Info.plist中,在我的例子中,已经添加了。这是我添加到我自己的远程服务器的PHP脚本,它作为我的应用程序和用户的远程服务器之间的中间人:

<?php
   echo (file_get_contents($_REQUEST["scriptUrl"]));
?>

如果您使用此方法,则只需将您正在调用用户远程服务器的脚本URL作为scriptUrl的参数发送。希望有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.