【问题标题】:NSAppTransportSecurity option not listed in Xcode plist editorNSAppTransportSecurity 选项未在 Xcode plist 编辑器中列出
【发布时间】:2015-12-31 15:38:18
【问题描述】:

我正在尝试将 App Transport Security 密钥添加到我的 Info.plist,如以下 Apple 技术说明 https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/#//apple_ref/doc/uid/TP40016240-CH1-SW3(排除部分)中所述

当我编辑 Info.plist 文件时,我做了以下事情:

  1. 单击“信息属性列表”旁边的“+”以创建新的顶级键
  2. 点击下拉菜单选择“NSAppTransportSecurity”

但是 Xcode 没有在下拉列表中列出该选项(下面的屏幕截图)。

我需要在文本编辑器中打开 Info.plist 文件并手动编辑吗?!还是我错过了一些(可能很明显!)步骤?

我使用的是 Xcode 7.0.1

谢谢

【问题讨论】:

  • 无需在文本编辑器中打开它,只需在此处键入密钥或将其粘贴在那里,而不是寻找自动完成选项

标签: ios xcode ios9 app-transport-security


【解决方案1】:

Xcode 7.1 在下拉列表中列出了选项(App Transport Security Settings)。在早期版本中,您需要输入原始密钥 NSAppTransportSecurity 并将类型设置为字典。

【讨论】:

    【解决方案2】:

    只是它还没有出现在 Xcode 7.0 中

    您仍然可以使用 Xcode,但我建议您使用文本编辑器打开 plist 文件并添加它以允许所有连接到 所有 域:

    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
        <plist version="1.0">
        <dict>
            <!-- .......................... -->
            <!-- Other keys already present -->
            <!-- .......................... -->
    
            <key>NSAppTransportSecurity</key>
            <dict>
    
               <key>NSAllowsArbitraryLoads</key>
               <true/>
    
            </dict>
    
        </dict>
        </plist>
    

    要将特定例外添加到域列表中,请改为添加:

    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <!-- .......................... -->
        <!-- Other keys already present -->
        <!-- .......................... -->
    
        <key>NSAppTransportSecurity</key>
        <dict>
    
            <key>NSExceptionDomains</key>
            <dict>
    
                <key>domain.com</key>
                <dict>
                    <key>NSExceptionAllowsInsecureHTTPLoads</key>
                    <true/>
                    <key>NSIncludesSubdomains</key>
                    <true/>
                </dict>
    
            </dict>
        </dict>
    
    </dict>
    </plist>
    

    NSIncludesSubdomains 不是必需的,但允许访问 wiki.domain.com、blog.domain.com 等子域。

    详细教程请看this blog post

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-28
      • 1970-01-01
      • 2013-11-03
      相关资源
      最近更新 更多