查找NSURLSession/NSURLConnection HTTP加载失败的URL(kCFStreamErrorDomainSSL,-9802)错误

4

我在iOS 9上遇到了臭名昭著的NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)错误。

我不想添加全局异常,只想针对特定域名进行处理。

我怎么知道哪个URL导致了这个错误?

2个回答

4
您可以像@dgatwood建议的那样设置CFNETWORK_DIAGNOSTICS环境变量,或者您可以在main.m文件中调用setenv("CFNETWORK_DIAGNOSTICS", "3", 1);。完成任何一种选项后,您应该在控制台日志中看到适当的消息:

2014-10-28 14:23:37.115 QTestbed[2626:60b] CFNetwork诊断日志文件创建于:/private/var/mobile/Applications/76531F40-3291-4565-8C75-0438052C83BC/Library/Logs/CrashReporter/CFNetwork_com.example.apple-samplecode.QTestbed_2626.nwlrb.log

只需在使用您的应用程序一段时间后打开此文件并检查其中的日志即可。
这是与苹果相关的Q&A的链接

4
当NSURURLConnection或NSURLSessionTask的错误处理委托方法被调用时,从请求对象获取URL,并通过NSLog打印出来(或者在该方法中设置一个调试断点)。
如果您的代码不是直接发起请求(例如,由第三方库代表您发起请求),则可以将CFNETWORK_DIAGNOSTICS环境变量设置为1(或2或3)。

1
设置环境变量的最简单方法是编辑调试版本的方案,并在该窗格中编辑“运行”行为以添加新的环境变量,如我所记得的那样。请参见此处的屏幕截图:http://nshipster.com/launch-arguments-and-environment-variables/ - dgatwood
你确定你正在设置你实际构建的构建方案吗? - dgatwood

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接