Xcode plist 编辑器中未列出 NSAppTransportSecurity 选项
NSAppTransportSecurity option not listed in Xcode plist editor
我正尝试按照以下 Apple 技术说明 https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/#//apple_ref/doc/uid/TP40016240-CH1-SW3(排除部分)
中的说明将 App Transport Security 密钥添加到我的 Info.plist
当我编辑 Info.plist 文件时,我做了以下操作:
- 单击 'Information Property List' 旁边的“+”以创建新的顶级密钥
- 单击下拉菜单 select“NSAppTransportSecurity”
但是 Xcode 没有在下拉列表中列出该选项(下面的屏幕截图)。
我需要在文本编辑器中打开 Info.plist 文件并手动编辑吗?!还是我错过了一些(可能很明显!)步骤?
我正在使用 Xcode 7.0.1
谢谢
Xcode 7.1 列出了下拉列表中的选项 (App Transport Security Settings)。在早期版本中,您需要键入原始密钥 NSAppTransportSecurity 并将类型设置为字典。
只是它还没有出现在 Xcode 7.0
中
您仍然可以使用 Xcode 但我建议您使用文本编辑器打开 plist 文件并添加它以允许所有连接到 all 域:
<!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
我正尝试按照以下 Apple 技术说明 https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/#//apple_ref/doc/uid/TP40016240-CH1-SW3(排除部分)
中的说明将 App Transport Security 密钥添加到我的 Info.plist当我编辑 Info.plist 文件时,我做了以下操作:
- 单击 'Information Property List' 旁边的“+”以创建新的顶级密钥
- 单击下拉菜单 select“NSAppTransportSecurity”
但是 Xcode 没有在下拉列表中列出该选项(下面的屏幕截图)。
我需要在文本编辑器中打开 Info.plist 文件并手动编辑吗?!还是我错过了一些(可能很明显!)步骤?
我正在使用 Xcode 7.0.1
谢谢
Xcode 7.1 列出了下拉列表中的选项 (App Transport Security Settings)。在早期版本中,您需要键入原始密钥 NSAppTransportSecurity 并将类型设置为字典。
只是它还没有出现在 Xcode 7.0
中您仍然可以使用 Xcode 但我建议您使用文本编辑器打开 plist 文件并添加它以允许所有连接到 all 域:
<!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