Ошибка: Протокол недоступен, сбрасывание 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. Если я использую API в Xcode 7, он работает нормально, но когда появляется тот же API, что и в xcode 8, сообщение об ошибке Невозможно разобрать.

Ответ 1

Я нашел решение следующим образом:

  • В меню XCode выберите "Продукт" > "Схема" > "Изменить схему"
  • Откройте вкладку "Аргументы".
  • Добавить переменную окружения: - OS_ACTIVITY_MODE - disable

Xcode 8 Изменить изображение экрана экрана схемы

Ответ 2

Нет опций SO_NOAPNFALLBK в man socket. Я полагаю, эта опция добавлена ​​Apple и связана с услугами push-уведомлений, которые недоступны на симуляторе.

Ответ 3

Более чистое решение (чем у Ankit Goyal), которое фиксирует журналы Simulator, не затрагивая журналы устройств, доступно на fooobar.com/questions/13778/...:

  • В разделе Product > Scheme > Edit Scheme... > Run установите переменную среды OS_ACTIVITY_MODE в значение ${DEBUG_ACTIVITY_MODE}, чтобы она выглядела следующим образом:

OS_ACTIVITY_MODE environment variable to ${DEBUG_ACTIVITY_MODE}

  1. Перейдите к настройкам сборки проекта и нажмите +, чтобы добавить пользовательскую настройку с именем DEBUG_ACTIVITY_MODE. Разверните этот параметр и нажмите "+" рядом с "Отладка", чтобы добавить значение для конкретной платформы. Выберите раскрывающийся список и измените его на "Any IOS Simulator SDK". Затем установите значение "disable" (Xcode 8) или "default" (Xcode 9), чтобы оно выглядело следующим образом:

Пользовательский параметр DEBUG_ACTIVITY_MODE

Ответ 4

Чтобы отключить режим Подробный для режима активности ОС,  Вы просто заходите в (в строке меню Xcode)

  • Product → Scheme → Edit Scheme- > Run (Left) → Выбрать аргументы → Включить переменные среды,

  • добавить OS_ACTIVITY_MODE и значение отключить