[Swift]Xcode模拟器无法请求http接口问题

1.以前偷懒一直是这样设置

bash 复制代码
<key>NSAppTransportSecurity</key>
<dict>
	<key>NSAllowsArbitraryLoads</key>
	<true/>
	<key>NSAllowsArbitraryLoadsInWebContent</key>
	<true/>
</dict>

现在我在Xcode16.3上,这种设置方式在真机上能请求http(应该是设备开启了开发者模式),但在模拟器上请求http是被拒绝的。报错如下:

Cannot start load of Task <AAC1C590-5604-43A7-984F-3D486C5996DF>.<1> since it does not conform to ATS policy

Task <AAC1C590-5604-43A7-984F-3D486C5996DF>.<1> finished with error [-1022] Error Domain=NSURLErrorDomain Code=-1022 "The resource could not be loaded because the App Transport Security policy requires the use of a secure connection." UserInfo={NSLocalizedDescription=The resource could not be loaded because the App Transport Security policy requires the use of a secure connection., NSErrorFailingURLStringKey=http://114.55.151.190:9527/api/onlineGoods/getGoodsList?page=1\&pageSize=20, NSErrorFailingURLKey=http://114.55.151.190:9527/api/onlineGoods/getGoodsList?page=1\&pageSize=20, _NSURLErrorRelatedURLSessionTaskErrorKey=(

"LocalDataTask <AAC1C590-5604-43A7-984F-3D486C5996DF>.<1>"

), _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <AAC1C590-5604-43A7-984F-3D486C5996DF>.<1>, NSUnderlyingError=0x60000129bde0 {Error Domain=kCFErrorDomainCFNetwork Code=-1022 "(null)"}}

问题就是由于 App Transport Security (ATS) 默认限制了非 HTTPS 请求。

2.现在需要这样设置

bash 复制代码
<key>NSAppTransportSecurity</key>
<dict>
      <key>NSAllowsArbitraryLoads</key> 
      <false/>
       <key>NSExceptionDomains</key>
       <dict>
            <key>example.com</key> <!--Include your domain at this line -->
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
                <true/>
                <key>NSTemporaryExceptionMinimumTLSVersion</key>
                <string>TLSv1.1</string>
            </dict>
       </dict>
</dict>

这里NSAllowsArbitraryLoads必须是false,因为它不允许所有不安全的连接,但例外列表允许连接到一些没有 HTTPS 的域。

这样模拟器上就能正常请求http接口了。

相关推荐
不二狗3 小时前
每日算法 -【Swift 算法】实现回文数判断!
开发语言·算法·swift
2501_916007478 小时前
局域协作中的前端调试:WebDebugX 在本地多端调试中的实践
websocket·网络协议·tcp/ip·http·网络安全·https·udp
Kila_9 小时前
【iOS(swift)笔记-11】App版本升级时本地数据库sqlite更新逻辑
数据库·ios·swift
2501_915918419 小时前
如何构建一个高效的 iOS 应用日志体系?从开发调试到使用KeyMob上线排查的实践经验
websocket·网络协议·tcp/ip·http·网络安全·https·udp
快解析13 小时前
deepseek告诉您http与https有何区别?
网络协议·http·https
佛曰_不可说17 小时前
xcode手动安装iOS Simulator Runtime
ios·cocoa·xcode
李少兄17 小时前
深入解析计算机网络核心协议:ARP、DHCP、DNS与HTTP
网络·计算机网络·http·软考
Clownseven19 小时前
HTTP/2与HTTP/3特性详解:为你的Nginx/Apache服务器开启下一代Web协议
nginx·http·apache
GameTomato19 小时前
【IOS】【OC】【应用内打印功能的实现】如何在APP内实现打印功能,连接本地打印机,把想要打印的界面打印成图片
macos·ios·objective-c·xcode·游戏开发·cocos2d
Hello.Reader1 天前
NGINX HTTP/3 实验指南安装、配置与调优
运维·nginx·http