Error: Protocol not available, dumping backtrace

Error: Protocol not available, dumping backtrace

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

我使用 xcode 8 版本 ios 10。现在,我正在 API 工作。如果,我在 Xcode 7 中使用 API 它工作正常但是当我在 xcode 8 中使用相同的 API 时出现错误消息无法解析。

我找到的解决方法如下:

  1. 在 XCode 菜单中,转到产品 > 方案 > 编辑方案
  2. 打开“参数”选项卡
  3. 添加环境变量:- OS_ACTIVITY_MODE is disable

man socket中没有SO_NOAPNFALLBK套接字选项。我猜,这个选项是Apple添加的,与推送通知服务有关,模拟器上没有。

要为 OS Activity 模式关闭 Verbose, 您只需转到(在 Xcode 菜单栏中)

  • Product -> Scheme -> Edit Scheme -> 运行 (Left) -> Select Arguments -> On Environment Variables,

  • 添加 OS_ACTIVITY_MODE 并将值设置为 禁用

:

上提供了一种更干净的解决方案(比 Ankit Goyal 提供的解决方案),可以在不影响设备日志的情况下修复模拟器日志
  1. 在 Product > Scheme > Edit Scheme... > 运行 下,将 OS_ACTIVITY_MODE 环境变量设置为 ${DEBUG_ACTIVITY_MODE} 所以它看起来像这样:

  1. 转到您的项目构建设置,然后单击 + 添加名为 DEBUG_ACTIVITY_MODE 的 User-Defined 设置。展开此设置并单击“调试”旁边的 + 以添加 platform-specific 值。 Select 下拉菜单并将其更改为 "Any iOS Simulator SDK"。然后将其值设置为 "disable" (Xcode 8) 或 "default" (Xcode 9) 所以它看起来像这样: