NSAllowsArbitraryLoads不适用于IP地址

sim*_*ode 6 macos ios ios9 xcode7

我试图让我的应用程序通过Apple Transport Security连接到152.111.198.244的http服务器.而我正在尝试的任何东西都没有.

将NSAllowsArbitraryLoads键添加到我的项目的info.plist文件仍然不允许我的应用程序连接到此特定IP地址152.111.198.244我已经通过Apple Transport Security上的技术说明.我安装了OSX 10.11以尝试查找可能适用于URL的设置

nscurl --ats-diagnostics http://152.111.198.244
Run Code Online (Sandbox Code Playgroud)

nscurl --ats-diagnostics http://152.111.198.244/publications/
Run Code Online (Sandbox Code Playgroud)

在终端.nscurl尝试失败的所有设置.我看过类似的问题NSAllowsArbitraryLoads不工作NSExceptionAllowsInsecureHTTPLoads不适用于IP地址,并没有找到解决方案.我也看了这里,并提出NSExceptionMinimumTLSVersion密钥不起作用.

我开始认为某处可能存在错误,或者我错过了什么.IP地址是Apple Transport Security的问题吗?为什么?有没有办法让IP地址通过ATS工作?

更新:我添加了特定的IP地址,这给我带来了麻烦.希望有人能够复制我正在谈论的内容.

更新:我将此记录为雷达中的一个错误,我收到一条消息,说它是重复的.与此同时,这个问题中提到的IP地址现在有一个域名http://3d.media24.com/但不幸的是它还没有解决问题.

更新:我将答案标记为正确.似乎苹果用XCode7.1解决了这个问题,并且Apple Transport Security的密钥有所改变.有问题的网站也已针对https连接进行了更新.

Dan*_*ang 2

我能够在 Xcode 7.1 和 Simulator 9.1 下的 Info.plist 中使用 \xe2\x80\x98Allow Arbitrary Loads\xe2\x80\x99访问该 URL http://152.111.198.244 :

\n\n
    \n
  • 应用传输安全设置: 字典\n\n
      \n
    • 允许任意加载:布尔值 = YES
    • \n
  • \n
\n\n

截屏:

\n\n

在此输入图像描述

\n\n

我使用了以下代码:

\n\n
let url = NSURL(string: "http://152.111.198.244")!\nlet task = NSURLSession.sharedSession().dataTaskWithURL(url) {(data, response, error) -> Void in\n    print("response \\(response!)")\n}\ntask.resume()\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我收到的回复:

\n\n
response <NSHTTPURLResponse: 0x7fe1a2421f80> { URL: http://152.111.198.244/auth/login } { status code: 200, headers {\n    "Cache-Control" = "no-cache";\n    Connection = "Keep-Alive";\n    "Content-Encoding" = gzip;\n    "Content-Length" = 1138;\n    "Content-Type" = "text/html; charset=UTF-8";\n    Date = "Fri, 23 Oct 2015 09:33:59 GMT";\n    "Keep-Alive" = "timeout=5, max=98";\n    Server = "Apache/2.4.7 (Ubuntu)";\n    "Set-Cookie" = "XSRF-TOKEN=eyJpdiI6IldBOWYxcDk3SEtMekJ3YTNSUm9mYUE9PSIsInZhbHVlIjoiTFBcL3RGWW10cjlONFFkeXY1ZDA4SWRkSURIYlFsOGE3QkFEV3hRNTVwRFJuWSt5SXN3OU55Sng4elduMHd1T1duV0VFQ1o4dDVjeDJTZGRFeXJxMjN3PT0iLCJtYWMiOiJiZjNmOTg0NTZmY2RkMGQzNmE2YWEyNjJiNzA1MDlmZjIwM2M3NWYyNjYwZjM5N2Q3ZTgxNjRjNzAzMGYzYmMzIn0%3D; expires=Fri, 23-Oct-2015 11:33:59 GMT; Max-Age=7200; path=/, laravel_session=eyJpdiI6InR5OSs3cmpObVRBbFhORnVJQjRvWFE9PSIsInZhbHVlIjoiSTJ2bk41RVVLZUR1a0xKbFwvalZXQWpsNEtWeHppUVpYVUlRM1ZjQXc5aDJxT1wvXC9uYkViaTQ0SCtGNTMrdmtiQXFOd0VJTFwvM0ZCbmFHZk5MWlwvZ3BBUT09IiwibWFjIjoiYjRmNzcxY2Q5NDFlZjYzZTI1YzU2YzI0YTkxM2M0NDg0MGY2YThiODIxOGZjOTgxYjNmM2FlZTkzZGMyZTdjOCJ9; expires=Fri, 23-Oct-2015 11:33:59 GMT; Max-Age=7200; path=/; httponly";\n    Vary = "Accept-Encoding";\n    "X-Powered-By" = "PHP/5.5.9-1ubuntu4.11";\n} }\n
Run Code Online (Sandbox Code Playgroud)\n\n

我还可以使用命名域 3d.media24.com进行连接进行连接,但不能使用例外域的数字地址 152.111.198.244 进行连接。

\n\n

截屏:

\n\n

在此输入图像描述

\n\n

我的结果与Apple Technote on App Transport Security中的异常域定义一致:

\n\n
\n

指定域的异常字典。密钥的名称是域的名称\xe2\x80\x93,例如 www.apple.com。

\n
\n