84
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.

Rahul Mayani
  • 3,761
  • 4
  • 25
  • 40

4 Answers4

148

I found the solution as follows:

  1. In XCode menu, Go to Product > Scheme > Edit Scheme
  2. Open the Arguments tab
  3. Add the Environment Variable :- OS_ACTIVITY_MODE is disable

Xcode 8 Edit Scheme screen capture image

Community
  • 1
  • 1
Ankit Goyal
  • 3,019
  • 1
  • 21
  • 26
  • 1
    Where to use this code ? I have the same error – BilalAhmed Nov 18 '16 at 10:13
  • I have clearly mentioned the steps with the screenshot. Please follow the steps and let me know if you still face the issue. @BilalAhmed. Don't forget to accept the answer, if it works for you :) – Ankit Goyal Nov 21 '16 at 04:33
  • It didn't work for me, I am using xcode 8.1 and iOS 10.6 and my rest api is deployed on IIS with http:// I am not sure what that error is and how to solve this, please help. – BilalAhmed Nov 21 '16 at 09:47
  • 2
    I am using React Native and getting the same exception. What do you mean by try the code? Can you please mention where am I suppose to add the snippet of code which you provided? – Abhishek Nalin Dec 06 '16 at 08:22
  • Dear @AbhishekNalin, Go to Edit scheme and add Environment Variable there as mentioned above. After that use your own code to hit API and you will see that the problem vanishes. Hope this will help you :) – Ankit Goyal Dec 07 '16 at 09:19
  • @AnkitGoyal I tried above solution, but still getting same error in console logs. – iYoung Dec 09 '16 at 06:04
  • @Ankit there is no need to stop OS_ACTIVITY_MODE, It is good that error comes, It is like some message comes, that something missing/incomplete happens. – Arpit B Parekh Dec 21 '16 at 11:06
  • 9
    no explanation what `OS_ACTIVITY_MODE` is, and what disabling it does. Also, not clear what is up with all that code. – user1244109 Dec 30 '16 at 00:09
  • 4
    This option will also hide NSLog's from a real device which is often undesired. Better solution is here http://stackoverflow.com/questions/37800790/hide-strange-unwanted-xcode-8-logs/39461256#39461256 – masam Jan 03 '17 at 12:10
  • If you are only an intermittent xcode user (like me) and are having trouble finding Edit Scheme, it is under "Product->Scheme" on the menu bar, and has a short cut of "(command)-<". – gbryant Jan 13 '17 at 17:24
  • This solution will hide all NSLog starting with Xcode 9. To keep NSLog, replace `disable` with `default`. – Cœur Sep 27 '17 at 19:13
12

There's no SO_NOAPNFALLBK socket option in man socket. I guess, this option is added by Apple and is related to push notifications services, which are not available on simulator.

Vladimir Afinello
  • 1,211
  • 14
  • 16
9

A cleaner solution (than the one given by Ankit Goyal) that fixes Simulator logs without affecting Device logs is available at https://stackoverflow.com/a/39651073/1033581:

  1. Under Product > Scheme > Edit Scheme... > Run, set the OS_ACTIVITY_MODE environment variable to ${DEBUG_ACTIVITY_MODE} so it looks like this:

OS_ACTIVITY_MODE environment variable to ${DEBUG_ACTIVITY_MODE}

  1. Go to your project build settings, and click + to add a User-Defined Setting named DEBUG_ACTIVITY_MODE. Expand this setting and Click the + next to Debug to add a platform-specific value. Select the dropdown and change it to "Any iOS Simulator SDK". Then set its value to "disable" (Xcode 8) or "default" (Xcode 9) so it looks like this:

User-Defined setting DEBUG_ACTIVITY_MODE

Cœur
  • 37,241
  • 25
  • 195
  • 267
  • Thanks for the answer. Do you think is it a good practice to disable OS_ACTIVITY_MODE? because if you disable it, you won't get a warning for the auto layout issues, other warnings, and crash's stack trace. – Milan Kamilya Mar 15 '17 at 11:17
  • @MilanKamilya This answer aims at _not_ disabling it in Release. As for not disabling it in Debug, it is also better, until the day you get too many unwanted logs. – Cœur Mar 15 '17 at 11:58
  • The accepted answer didn't work for me but this option did. Thank you !! – JamesG Sep 04 '17 at 21:39
5

To turn off Verbose for OS Activity Mode, You simply go to (in Xcode Menu Bar)

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

  • add OS_ACTIVITY_MODE and value as disable

Ketan
  • 480
  • 5
  • 6