错误:协议不可用,转储回溯

时间:2016-09-17 10:15:13

标签: objective-c ios10 xcode8.2

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时出现错误消息无法解析。

4 个答案:

答案 0 :(得分:144)

我发现解决方案如下:

  1. 在XCode菜单中,转到产品>方案>编辑方案
  2. 打开“参数”选项卡
  3. 添加环境变量: - @Repository public interface UserRepository extends JpaRepository<User, Long> { @Query(value = "SELECT u FROM User u ORDER BY u.name DESC") List<User> getSortedUsers(); } OS_ACTIVITY_MODE
  4. Xcode 8 Edit Scheme screen capture image

答案 1 :(得分:12)

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

答案 2 :(得分:8)

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

  1. 在产品&gt;下方案&gt;编辑方案...&gt;运行,将OS_ACTIVITY_MODE环境变量设置为$ {DEBUG_ACTIVITY_MODE},如下所示:
  2. OS_ACTIVITY_MODE environment variable to ${DEBUG_ACTIVITY_MODE}

    1. 转到项目构建设置,然后单击+以添加名为DEBUG_ACTIVITY_MODE的用户定义设置。展开此设置并单击Debug旁边的+以添加特定于平台的值。选择下拉列表并将其更改为&#34;任何iOS模拟器SDK&#34;。然后将其值设置为&#34;禁用&#34; (Xcode 8)或&#34;默认&#34; (Xcode 9)所以它看起来像这样:
    2. User-Defined setting DEBUG_ACTIVITY_MODE

答案 3 :(得分:5)

要为OS活动模式关闭详细信息,  你只需转到(在Xcode菜单栏中)

  • 产品 - &gt;方案 - &gt;编辑方案 - &gt;跑(左) - &gt;选择参数 - &gt;关于环境变量

  • 将OS_ACTIVITY_MODE和值添加为停用