web-dev-qa-db-ja.com

エラー:プロトコルを利用できません。バックトレースをダンプしています

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エラーメッセージが解析できません。

82
Rahul

私は次のように解決策を見つけました:

  1. XCodeメニューで、[製品]> [スキーム]> [スキームの編集]に移動します。
  2. 引数タブを開きます
  3. 環境変数を追加します:-OS_ACTIVITY_MODEdisableです

Xcode 8 Edit Scheme screen capture image

144
Ankit Goyal

man_socketにはSO_NOAPNFALLBKソケットオプションはありません。おそらく、このオプションはAppleによって追加され、シミュレーターでは利用できないプッシュ通知サービスに関連しています。

12

デバイスログに影響を与えずにシミュレータログを修正する、よりクリーンなソリューション(Ankit Goyal提供のものより)は、 https://stackoverflow.com/a/39651073/1033581 で入手できます。

  1. [製品]> [スキーム]> [スキームの編集...]> [実行]で、OS_ACTIVITY_MODE環境変数を$ {DEBUG_ACTIVITY_MODE}に設定して、次のようにします。

OS_ACTIVITY_MODE environment variable to ${DEBUG_ACTIVITY_MODE}

  1. プロジェクトのビルド設定に移動し、+をクリックして、DEBUG_ACTIVITY_MODEという名前のユーザー定義設定を追加します。この設定を展開し、[デバッグ]の横の[+]をクリックして、プラットフォーム固有の値を追加します。ドロップダウンを選択し、「任意のiOSシミュレータSDK」に変更します。次に、その値を「disable」(Xcode 8)または「default」(Xcode 9)に設定して、次のようにします。

User-Defined setting DEBUG_ACTIVITY_MODE

8
Cœur

OSアクティビティモードの詳細をオフにするには、(Xcodeメニューバーで)に移動します。

  • 製品->スキーム->スキームの編集->実行(左)->引数の選択->環境変数上

  • oS_ACTIVITY_MODEと値をdisableとして追加します

5
Ketan