iOS报NSURLErrorDomain -1004是ATS配置的问题吗?

尼克

尼克

2026-05-21

1673人浏览

原创

nsurlerrordomain code=-1004 表示无法连接到服务器,主因包括ats配置不当、系统代理干扰、localhost未适配、证书校验失败或服务器端口不可达;需依次检查info.plist例外规则、关闭macos代理、放行本地网络、配置afnetworking证书策略及验证服务器连通性。

ios报nsurlerrordomain -1004是ats配置的问题吗?

如果您在iOS应用中遇到 NSURLErrorDomain Code=-1004 “未能连接到服务器”错误,该问题常与App Transport Security(ATS)配置相关,但也可能由其他网络层因素引发。以下是针对此错误的多种排查与修复路径:

一、检查并配置Info.plist中的ATS例外规则

ATS默认强制要求HTTPS通信,若请求目标为HTTP域名或未符合TLS 1.2+及证书校验标准的HTTPS服务,则会直接拒绝连接,表现为-1004错误。需为特定域名显式声明例外。

1、在Xcode中打开项目根目录下的Info.plist文件。

2、添加NSAppTransportSecurity字典类型键(若不存在)。

3、在该字典下添加NSExceptionDomains子字典。

4、为待访问的域名(如example.com)添加一个key,其值为字典;在该字典内设置以下三项:

  NSIncludesSubdomains:Boolean类型,设为YES;

  NSExceptionAllowsInsecureHTTPLoads:Boolean类型,设为YES(仅限HTTP调试);

  NSExceptionRequiresForwardSecrecy:Boolean类型,设为NO(若服务器不支持前向保密)。

5、若使用自签名或非公信CA证书,还需额外添加NSExceptionAllowsInsecureHTTPLoads并设为YES,且确保NSAllowsArbitraryLoads未被设为YES(避免全局禁用ATS)。

二、验证AFNetworking 3.x的SSL证书固定策略

AFNetworking 3.0及以上版本在iOS 11+环境下默认启用严格证书校验,若未配置securityPolicy或配置不当,将导致-1004错误,尤其在使用自签名证书或中间证书缺失时。

1、从服务器导出有效证书(.crt格式),保存为server.crt。

2、在终端执行转换命令:openssl x509 -in server.crt -out server.cer -outform der

3、将生成的server.cer拖入Xcode项目,勾选“Copy items if needed”及对应Target。

4、在初始化AFHTTPSessionManager后,插入如下配置代码:

  NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"server" ofType:@"cer"];

  NSData *certData = [NSData dataWithContentsOfFile:cerPath];

  AFSecurityPolicy *policy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];

  policy.allowInvalidCertificates = YES;

小猿AI (iOS)
小猿AI (iOS)

小猿AI(iOS)3.136.0版本更新重点优化拍照批改与题目识别速度,提升复杂手写题的识别准确率,并新增“错题智能归类”与“AI分步骤讲解”功能,帮助学生更清晰理解解题过程。同时优化学习数据面板展示,让家长可更直观掌握学习进度,整体提升作业检查与学习辅导体验。

下载

  policy.pinnedCertificates = [NSSet setWithObject:certData];

  policy.validatesDomainName = YES;

  manager.securityPolicy = policy;

三、排查系统级代理与网络环境干扰

macOS系统代理设置可能被iOS模拟器或真机调试继承,特别是启用PAC脚本或自动代理配置时,会导致CFNetwork底层解析失败并返回-1004(_kCFStreamErrorCodeKey=61/65),与服务器可达性无关。

1、打开macOS“系统设置”→“网络”→选择当前活跃接口(如Wi-Fi)→点击“详细信息…”。

2、切换至“代理”标签页。

3、取消勾选“自动代理配置”及所有已启用的代理协议(如Web Proxy、Secure Web Proxy等)。

4、点击“好”,再点击“应用”保存设置。

5、重启Xcode与iOS模拟器(或断开重连真机)。

四、确认本地测试域名localhost或127.0.0.1的ATS适配

iOS不允许对localhost或127.0.0.1使用NSExceptionDomains例外,必须通过NSAllowsLocalNetworking或NSAllowsArbitraryLoadsInWebContent(仅限WKWebView)进行特殊放行,否则即使配置了例外域仍返回-1004。

1、在Info.plist的NSAppTransportSecurity字典下,添加Boolean类型键:NSAllowsLocalNetworking,值设为YES。

2、若仅在WKWebView中加载本地资源,可改用:NSAllowsArbitraryLoadsInWebContent,值设为YES。

3、确保URL使用http://localhost:端口号/ 或 http://127.0.0.1:端口号/ 格式,不可混用host别名(如http://mylocal.dev)。

4、真机调试时,localhost无法指向Mac,须改用Mac局域网IP(如http://192.168.x.x:端口),并在NSExceptionDomains中为其单独配置例外。

五、验证服务器端网络可达性与端口开放状态

-1004错误表层含义是客户端完全无法建立TCP连接,可能源于服务器未监听、防火墙拦截、端口未开放或DNS解析失败,而非ATS本身。ATS触发的是更明确的-1022(ATS拒绝)错误。

1、在Mac终端执行:ping your-domain.com,确认基础ICMP连通性。

2、执行:telnet your-domain.com 443(HTTPS)或 telnet your-domain.com 80(HTTP),验证目标端口是否响应。

3、若telnet超时或报“Connection refused”,说明服务器未运行、端口未监听或被云服务商安全组屏蔽。

4、在iOS设备上使用Safari访问同一URL,若同样失败,则排除App侧ATS配置问题,聚焦服务器与网络链路。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

642

5

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.25

1243

5

DOM是什么意思
DOM是什么意思

dom的英文全称是documentobjectmodel,表示文件对象模型,是w3c组织推荐的处理可扩展置标语言的标准编程接口;dom是html文档的内存中对象表示,它提供了使用javascript与网页交互的方式。想了解更多的相关内容,可以阅读本专题下面的文章。

2024.08.14

6252

7

Selenium WebDriver元素定位与页面操作教程
Selenium WebDriver元素定位与页面操作教程

本专题整理Selenium WebDriver元素定位、XPath、CSS Selector、等待机制、窗口切换、Frame处理、Alert弹窗、Cookie操作和文件上传等核心用法。

2026.08.05

0

26

Selenium Grid分布式测试与并行执行教程
Selenium Grid分布式测试与并行执行教程

本专题整理Selenium Grid架构、远程WebDriver、并行测试、Docker部署、Kubernetes动态Grid、浏览器矩阵和测试环境扩展方法,适合进阶自动化测试团队使用。

2026.08.05

0

18

Selenium常见报错排查与自动化测试稳定性
Selenium常见报错排查与自动化测试稳定性

本专题整理Selenium常见报错、驱动版本问题、元素找不到、点击失败、等待超时、浏览器闪退、脚本不稳定和测试用例维护方法。

2026.08.05

0

17

墨刀AI提示词教学
墨刀AI提示词教学

本合集由PHP中文网精心整理,为您提供全面的墨刀AI提示词教学。内容涵盖高质量原型撰写公式与实操窍门,助您轻松掌握AI设计工具。无论是零基础入门还是进阶技巧,都能让您快速上手,大幅提升产品设计与协作效率。

2026.08.04

11

21

墨刀AI完整入门
墨刀AI完整入门

PHP中文网为您倾力打造墨刀AI保姆级入门指南完整版!本合集从零基础讲起,涵盖AI生成原型、提示词优化、图片转原型及多轮对话等核心功能。无论您是新手还是进阶用户,都能轻松掌握产品设计全流程。快来PHP中文网,一键解锁高效设计技巧,让想法即刻成型!

2026.08.04

8

20

墨刀AI进阶技巧
墨刀AI进阶技巧

本合集由PHP中文网精心整理,为您提供墨刀AI核心进阶策略指南。内容涵盖高效提示词写作、原型智能生成与微调、结构化导图制作及行业分析报告输出等实战技巧。助您轻松掌握AI设计工具,大幅提升产品设计与团队协作效率。

2026.08.04

10

14

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 39.5万人学习

Uniapp从零开始实现新闻资讯应用
Uniapp从零开始实现新闻资讯应用

共64课时 | 8.6万人学习

Uniapp180分钟快速入门
Uniapp180分钟快速入门

共25课时 | 5.3万人学习