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

I'm using xcode 8 version with ios 10. Now, I'm working an API. If, I use the API in Xcode 7 its works fine but when same API I used in xcode 8 error message appears Unable to parse.

38618 次浏览

我发现解决办法如下:

  1. 在 XCode 菜单中,转到 Product > Scheme > Edit Scheme
  2. 打开 Arguments 选项卡
  3. 加上环境变量:-abc0是 disable

Xcode 8 Edit Scheme screen capture image

男用插座中没有 SO _ NOAPNFALLBK套接字选项。我猜想,这个选项是由苹果公司添加的,与推送通知服务有关,这在模拟器上是不可用的。

为了关闭操作系统活动模式的冗长, 您只需进入(在 Xcode 菜单栏中)

  • Product-> Scheme-> Edit Scheme-> Run (Left)-> Select Aruments-> On Environment Variables

  • 添加 OS _ ACTIVITY _ MODE 并将值设置为 关闭

一个更干净的解决方案(比 Ankit Goyal 提供的解决方案) ,在不影响设备日志的情况下修复模拟器日志,可在 https://stackoverflow.com/a/39651073/1033581:

  1. 在 Product > Scheme > Edit Scheme... > Run 下,将 OS _ ACTIVITY _ mode 环境变量设置为 ${ DEBUG _ ACTIVITY _ mode } ,如下所示:

OS_ACTIVITY_MODE environment variable to ${DEBUG_ACTIVITY_MODE}

  1. 转到项目生成设置,单击 + 添加名为 DEBUG _ ACTIVITY _ MODE 的用户定义设置。展开此设置并单击 Debug 旁边的 + 以添加特定于平台的值。选择下拉菜单并将其更改为“ AnyiOSSimulatorSDK”。然后将其值设置为“禁用”(Xcode 8)或“默认”(Xcode 9) ,如下所示:

User-Defined setting DEBUG_ACTIVITY_MODE