`

今Xcode 7 发现网络访问失败。

    博客分类:
  • IOS
 
阅读更多

今天升级Xcode 7.0 bata发现网络访问失败。
输出错误信息

The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.

Google后查证,iOS9引入了新特性App Transport Security (ATS)。详情:App Transport Security (ATS)

新特性要求App内访问的网络必须使用HTTPS协议。
但是现在公司的项目使用的是HTTP协议,使用私有加密方式保证数据安全。现在也不能马上改成HTTPS协议传输。

最终找到以下解决办法:

  1. 在Info.plist中添加NSAppTransportSecurity类型Dictionary

  2. NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES

看到很多同学修改后还是不能用添加一下截图:

  1. 在Filter中搜索Info.plist,选择Info.plist进行编辑

  2. 按照上面提到的方式添加信息,正确的修改会看到下图这个样子,注意类型NSAppTransportSecurityDictionaryNSAllowsArbitraryLoadsBoolean,复制粘贴的时候,不要多了空格,segment fault 页面上直接复制,经常会多一个出空格!

  3. 注意⚠️,单元测试下面也有一个Info.plist,修改那个文件是没有作用的!

补充说明

上面介绍的方法虽然解决了网络访问的问题,但是苹果提供的安全保障也被关闭了。
不过,按照国内的现状,关闭这个限制也许是更实际的做法。
至于原因就太多了,第三方SDK(几乎都是访问HTTP),合作伙伴接入(不能要求它们一定要支持HTTPS)。
如果你的App没有受到这些原因的限制,还是更建议你增加HTTPS支持,而不是关闭限制。
请大家根据项目的实际情况作调整。

出于安全考虑我们提倡使用HTTPS,退而求其次,优先考虑使用例外:将允许访问的域加入到配置列表中

@banxi1988 补充了配置的方法
对于实在不支持HTTPS的应该首先考虑添加例外

添加例外的方式也很简单:
左键Info.plist选择open with source code
然后添加类似如下的配置:

    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>qq.com</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
            </dict>
            <key>sina.com.cn</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
            </dict>
           </dict>
   </dict>

根据自己需要的域名修改, NSIncludeSubdomains 顾名思义是包括子域的意思。

分享到:
评论

相关推荐

    xcode7_mexopts.zip

    这个压缩包“xcode7_mexopts.zip”显然与Xcode 7的某些特定功能有关,特别是与Mex选项相关的内容。Mex,全称“MATLAB eXecutable”,是MATLAB编程环境中的一个工具,它允许用户将C、C++或Fortran代码与MATLAB脚本...

    Xcode.7.Essentials.2nd.Editio

    Step up your iOS development with the power and wealth of features of Xcode 7 About This Book Updated for the latest Xcode 7 release, this is the first book that will show you how to use all the new...

    xcode7运行iOS8.4必须文件夹

    关于xcode7真机测试出现 could not find developer disk image 问题,主要缺少了此文件夹,将其放到 /Applications/Xcode7.0.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 目录下就OK了.

    Xcode7TsetDemo.zip

    看了WWDC15中what’s new in XCode后,忍不住想试试XCode中UITest,http://blog.csdn.net/lcg0412/article/details/46540943博客的Demo代码

    Xcode 15.4 真机调试

    6. **网络请求调试**:Xcode的Network Inspector可以捕获应用发出的网络请求,查看请求详情和响应,帮助开发者诊断网络相关问题。 7. **实时更改与热重载**:Xcode 15.4引入了热重载功能,允许开发者在不重启应用的...

    xcode7 空工程Empty-Application

    《Xcode7 空工程Empty-Application详解》 在iOS应用开发中,Xcode是不可或缺的工具,而“空工程”(Empty Application)则是开发者开始编写代码的基础模板。本文将详细探讨Xcode7中的“空工程”项目,以及如何利用...

    Xcode 7 iOS10.1 Developer Disk Image

    这个文件可以让你在Xcode7版本调试iOS10.1版本的真机(Could not find Developer Disk Image)。将压缩包解压把文件夹放在 /Applications/Xcode.app/Contents/Developer/ 即可。

    xcode_6_beta_7.dmg下载百度云地址

    "Xcode_6_beta_7.dmg.txt"可能是一个文本文件,其中包含有关如何下载或访问Xcode 6 Beta 7的详细信息,比如百度云的链接或提取码。在实际开发过程中,这种文件通常用于分享大型软件包,因为它们的大小可能超过电子...

    xcode4.2.1 xcode4.1 xcode3.2.6final

    ### Xcode 版本概述与比较 Xcode 是苹果公司为开发者提供的官方集成开发环境(IDE),主要用于开发 iOS、macOS、watchOS 和 tvOS 的应用程序。随着时间的推移,Xcode 经历了多个版本的迭代和发展。本文将重点介绍 ...

    iphone XCode实现了对无线网络的识别的功能

    标题中的“iphone XCode实现了对无线网络的识别的功能”指的是使用Apple的开发工具XCode,在iOS平台上开发应用程序时,利用特定的API和技术来检测设备当前的网络连接状态,包括是否可以接入互联网以及接入的方式,...

    Xcode 12.1镜像文件

    《Xcode 12.1镜像文件:保持对iOS 12.1真机支持的详尽指南》 在iOS应用开发过程中,Xcode作为官方的集成开发环境(IDE),扮演着至关重要的角色。然而,随着新版本的发布,开发者们可能会面临一个问题:如何在不...

    Xcode 14.2 绝对好用

    **Xcode 14.2 全面解析:专业级iOS与macOS开发工具** Xcode作为Apple官方的集成开发环境(IDE),是iOS、iPadOS、watchOS、tvOS以及macOS应用开发的核心工具。Xcode 14.2版本在前代的基础上进行了诸多优化和增强,...

    xcode10-xcode14各版本sdk

    ios xcode10-xcode14各版本sdk,主要包括7 8 9 10 11 12 13 14个版本以及各小版本,博客中有截图。

    xcode 自动对齐插件

    在iOS和macOS应用开发领域,Xcode是Apple官方推荐的集成开发环境(IDE),它提供了丰富的功能,如代码编辑、调试、构建管理等。然而,对于习惯于使用Visual Studio等其他IDE的开发者来说,Xcode在某些方面可能略显...

    xcode disk image 10.1

    标题中的“xcode disk image 10.1”指的是Xcode的一个特定版本,与iOS 10.1设备支持相关的磁盘映像。这个版本的Xcode包含了开发和测试iOS 10.1应用程序所需的所有工具和资源。Xcode是Apple官方的集成开发环境(IDE)...

    XCodeXCode下载

    在压缩包文件“XCode_4_2_for_snow_leopard.torrent”中,".torrent"扩展名表明这可能是一个BitTorrent文件,用于通过P2P网络共享大文件。使用BitTorrent客户端,如uTorrent或Transmission,可以下载这个XCode的老...

    xcode 15.4 真机调试包

    Xcode 15.4 真机调试包是一个针对苹果开发者的重要工具,它允许开发者在实际设备上测试和调试iOS、iPadOS、macOS、tvOS以及watchOS应用程序。这个版本的Xcode包含了编译器、模拟器、界面设计工具、性能分析工具等一...

    卸载xcode的命令

    ### 卸载Xcode的命令 在开发领域中,Xcode是苹果官方为开发者提供的集成开发环境(Integrated Development Environment,IDE),主要用于iOS、iPadOS、macOS、watchOS及tvOS的应用程序开发。然而,在某些情况下,...

    XCODE官方下载地址

    通过访问苹果官方的开发者网站或Mac App Store,开发者可以轻松下载到适合自身操作系统的Xcode版本,开启自己的苹果生态开发之旅。对于每一位致力于苹果平台应用开发的人员而言,熟练掌握Xcode的使用技巧,将有助于...

    Xcode7 空白模板

    《Xcode7 空白模板深度解析》 在iOS应用开发中,Xcode作为官方推荐的集成开发环境,扮演着至关重要的角色。Xcode7引入了许多新特性,其中之一便是“空白模板”(Empty Application.xctemplate),为开发者提供了一...

Global site tag (gtag.js) - Google Analytics