错误:协议不可用,倾倒回溯

2016-09-17 15:16:04.386085 appDemo[2371:94976] [] __nwlog_err_simulate_crash simulate crash already simulated **"nw_socket_set_common_sockopts setsockopt SO_NOAPNFALLBK failed: [42] Protocol not available"** 2016-09-17 15:16:04.386676 appDemo[2371:94976] [] nw_socket_set_common_sockopts setsockopt SO_NOAPNFALLBK failed: [42] Protocol not available, dumping backtrace: [x86_64] libnetcore-856.1.8 0 libsystem_network.dylib 0x0000000112dc780e __nw_create_backtrace_string + 123 1 libnetwork.dylib 0x0000000113bfa194 nw_socket_add_input_handler + 3002 2 libnetwork.dylib 0x0000000113bd7db8 nw_endpoint_flow_attach_protocols + 3768 3 libnetwork.dylib 0x0000000113bd6dd5 nw_endpoint_flow_setup_socket + 563 4 libnetwork.dylib 0x0000000113bd5b34 -[NWConcrete_nw_endpoint_flow startWithHandler:] + 2612 5 libnetwork.dylib 0x0000000113bf0d11 nw_endpoint_handler_path_change + 1261 6 libnetwork.dylib 0x0000000113bf0740 nw_endpoint_handler_start + 570 7 libdispatch.dylib 0x0000000112b44980 _dispatch_call_block_and_release + 12 8 libdispatch.dylib 0x0000000112b6e 2016-09-17 15:16:04.387153 appDemo[2371:94976] [] nw_endpoint_flow_attach_protocols [2 192.168.0.100:80 in_progress socket-flow (satisfied)] Attached flow protocol 2016-09-17 15:16:04.387679 appDemo[2371:94976] [] nw_connection_endpoint_report [2 192.168.0.100:80 in_progress socket-flow (satisfied)] reported event flow:start_connect 

我正在使用ios 10 xcode 8版本。 现在,我正在开发一个API。 如果,我在Xcode 7使用API​​,它的工作正常,但是当我在xcode 8使用相同的API出现错误消息出现无法parsing。

我发现解决scheme如下:

  1. 在XCode菜单中,转至产品>scheme>编辑scheme
  2. 打开参数选项卡
  3. 添加环境variables: – disable OS_ACTIVITY_MODE

Xcode 8编辑计划屏幕捕获图像

man socket中没有SO_NOAPNFALLBK套接字选项。 我想,这个选项是由苹果添加,并与推送通知服务,这是模拟器上不可用。

在不影响设备日志的情况下,可以修复模拟器日志的更清洁的解决scheme(比Ankit Goyal提供的解决scheme更为简洁),请访问https://stackoverflow.com/a/39651073/1033581

  1. 在Product> Scheme> Edit Scheme …> Run下,将OS_ACTIVITY_MODE环境variables设置为$ {DEBUG_ACTIVITY_MODE},如下所示:

OS_ACTIVITY_MODE环境变量为$ {DEBUG_ACTIVITY_MODE}

  1. 转到您的项目构build设置,然后单击+添加名为DEBUG_ACTIVITY_MODE的用户定义的设置。 展开此设置并单击“debugging”旁边的“+”以添加特定于平台的值。 select下拉菜单并将其更改为“Any iOS Simulator SDK”。 然后将其值设置为“禁用”(Xcode 8)或“默认”(Xcode 9),看起来像这样:

用户定义的设置DEBUG_ACTIVITY_MODE

要closures详细的操作系统活动模式,你只需去(在Xcode菜单栏)

  • 产品 – >scheme – >编辑scheme – >运行(左) – >select参数 – >在环境variables上

  • 添加OS_ACTIVITY_MODE和值为禁用