2015-10-03 18 views
2

我想在下面的苹果技术说明中描述的应用程序传输安全密钥添加到我的Info.plist https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/#//apple_ref/doc/uid/TP40016240-CH1-SW3(排除部分)NSAppTransportSecurity选项

当我编辑的Info.plist文件,我做了以下:

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

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

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

我使用的Xcode 7.0.1

感谢

enter image description here

+1

无需在文本编辑器打开它,只需键入在那里键入或粘贴,而不是寻找自动完成选项 –

回答

4

的Xcode 7.1所示的下拉选项(应用交通运输安全设置)。在早期版本中,您需要键入原始密钥NSAppTransportSecurity并将该类型设置为字典。

1

只要它不存在在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为n加时赛必要的,但允许访问像wiki.domain.com,blog.domain.com等

子域名对于一个详细的教程看看this blog post