为什么我的Xcode控制台出现“握手失败”错误?

时间:2015-08-02 05:32:34

标签: ios xcode swift

2015-08-01 22:30:43.893 MyApp[2425:284133] ERROR: handshake failed ... The request timed out.
2015-08-01 22:30:43.896 MyApp[2425:284133] ERROR: handshake failed ... The request timed out.
2015-08-01 22:30:43.899 MyApp[2425:284133] ERROR: handshake failed ... The request timed out.
2015-08-01 22:30:43.912 MyApp[2425:284133] ERROR: handshake failed ... The request timed out.
2015-08-01 22:30:43.913 MyApp[2425:284133] ERROR: handshake failed ... The request timed out.
2015-08-01 22:30:43.913 MyApp[2425:284133] ERROR: handshake failed ... The request timed out.
2015-08-01 22:30:43.914 MyApp[2425:284133] ERROR: handshake failed ... The request timed out.
2015-08-01 22:30:43.914 MyApp[2425:284133] ERROR: handshake failed ... The request timed out.
2015-08-01 22:30:43.915 MyApp[2425:284133] ERROR: handshake failed ... The request timed out.
2015-08-01 22:30:43.915 MyApp[2425:284133] ERROR: handshake failed ... The request timed out.

我在随机时间得到这个。如何确切地检查导致此问题的框架/库?它只是在我的Xcode控制台中打印。

5 个答案:

答案 0 :(得分:2)

看看这个Question看起来非常相似,你使用的是使用websocket服务器的库吗?也许这可以很快解决你的问题。如果没有,请发布您使用的图书馆列表,并在您设置套接字的地方形成代码。

答案 1 :(得分:0)

项目中的某些库可能使用套接字或SSL身份验证。

在我的情况下,当我尝试使用错误的证书向APNS服务器发送推送通知时,我看到了同样的错误消息handshake failed

很难找到哪个库或框架打印到控制台。 尝试删除项目中包含的第三方库,直到错误消息停止显示。

答案 2 :(得分:0)

我认为您正在为您的项目运行websocket服务器。您必须运行socket.io服务器。这就是xcode显示此错误的原因。

在stackoverflow上看到这个类似的帖子 My Socket.io on IOS fails to handshake with the websocket server

有时当您使用推送通知api时,有时会发生握手失败错误,因此如果您的推送通知功能正在记录此错误,请阅读此Apple文档以了解问题 App push notification troubleshooting

答案 3 :(得分:0)

我可以介绍的方式对你来说可能不是一个好的解决方案。我的答案基于这两个条件

1.你必须近乎评论所有" println"在你的代码中

2.实例调用" println"发送错误消息

然后,您可以设置"符号断点"在"调试菜单 - >断点 - >创建符号断点",并将条件设置为" println"

(如果模块是旧的,你可能不得不打破" NSLog"或某些东西)

enter image description here

enter image description here

参考如何设置符号断点:http://rshankar.com/debugging-swift-app-in-xcode/

答案 4 :(得分:-1)

如果api长时间没有响应(通常设置为15,30或60秒),则会发生超时。

您的时间戳也会在一秒钟内分开,这清楚地表明您正在使用套接字连接,并且可能是同一个库,这就是问题所在。检查您正在使用的库。这将是服务器方面的问题。