GameKit Errors with iOS 10

I was testing my App's multiplayer between an iOS 10 device and an iOS 9 device. The app uses real time multiplayer. The app was compiled with Xcode 7. When connecting to the other player, my app absolutely halts to about 1 frame per second.


If i recompile the app with XCode 8 and the latest toolchain, the app seems to behave properly except if i look at the console output, it's absolutely flooded with the following errors over and over and over again even after multiplayer ends.


Has anyone noticed similar issues with their apps? I'm wondering if these errors are red herrings or if these indicate something I'm doing wrong. We've been running this GameKit multiplayer code since iOS 8 without issue however.


Thanks!


----------------


2016-09-14 14:05:14.958615 MyApp[2173:731704] [App] if we're in the real pre-commit handler we can't actually add any new fences due to CA restriction

2016-09-14 14:05:25.978941 MyApp[2173:731704] [App] if we're in the real pre-commit handler we can't actually add any new fences due to CA restriction

2016-09-14 14:05:33.997900 MyApp[2173:732152] [ViceroyTrace] [GameKitServices][ERROR] gckSessionCheckPendingConnections: iICEChecksLeft=0, iUnconnectedNodeCount=0, iDDsExpected=1

2016-09-14 14:05:34.017124 MyApp[2173:731965] [ViceroyTrace] [ICE][ERROR] ICEStopConnectivityCheck() found no ICE check with call id (1332744169)

2016-09-14 14:05:34.017651 MyApp[2173:731965] [ViceroyTrace] [GameKitServices][ERROR] gckSessionCheckPendingConnections: iICEChecksLeft=0, iUnconnectedNodeCount=0, iDDsExpected=0

2016-09-14 14:05:37.513382 MyApp[2173:731704] Error loading photo! => {

NSLocalizedDescription = "Unable to load player photo because player has no photo associated with account";

}

2016-09-14 14:05:38.003683 MyApp[2173:731827] [Warning] Failed IDSDaemonRequestConnection, no reply

2016-09-14 14:05:38.005625 MyApp[2173:732180] [Warning] Failed to build remote object for listener: <private>

2016-09-14 14:05:38.005662 MyApp[2173:732180] [Warning] Failed to launch and connect to daemon

2016-09-14 14:05:38.009386 MyApp[2173:732171] [Warning] Failed IDSDaemonRequestConnection, no reply

2016-09-14 14:05:38.009619 MyApp[2173:732180] [Warning] Failed IDSDaemonRequestConnection, no reply

2016-09-14 14:05:38.009716 MyApp[2173:732171] [Warning] Failed to build remote object for listener: <private>

2016-09-14 14:05:38.009744 MyApp[2173:732171] [Warning] Failed to launch and connect to daemon

2016-09-14 14:05:38.011914 MyApp[2173:731789] [Warning] Failed IDSDaemonRequestConnection, no reply

2016-09-14 14:05:38.012031 MyApp[2173:732171] [Warning] Failed to build remote object for listener: <private>

2016-09-14 14:05:38.012060 MyApp[2173:732171] [Warning] Failed to launch and connect to daemon

2016-09-14 14:05:38.016172 MyApp[2173:731827] [Warning] Failed IDSDaemonRequestConnection, no reply

2016-09-14 14:05:38.016311 MyApp[2173:732180] [Warning] Failed to build remote object for listener: <private>

2016-09-14 14:05:38.016353 MyApp[2173:732180] [Warning] Failed to launch and connect to daemon

2016-09-14 14:05:38.017856 MyApp[2173:731789] [Warning] Failed IDSDaemonRequestConnection, no reply

2016-09-14 14:05:38.017958 MyApp[2173:732180] [Warning] Failed to build remote object for listener: <private>

2016-09-14 14:05:38.017986 MyApp[2173:732180] [Warning] Failed to launch and connect to daemon

2016-09-14 14:05:38.020219 MyApp[2173:731827] [Warning] Failed IDSDaemonRequestConnection, no reply

2016-09-14 14:05:38.020367 MyApp[2173:732171] [Warning] Failed to build remote object for listener: <private>

2016-09-14 14:05:38.020395 MyApp[2173:732171] [Warning] Failed to launch and connect to daemon

2016-09-14 14:05:38.022515 MyApp[2173:732181] [Warning] Failed IDSDaemonRequestConnection, no reply

2016-09-14 14:05:38.022647 MyApp[2173:731789] [Warning] Failed to build remote object for listener: <private>

2016-09-14 14:05:38.022677 MyApp[2173:731789] [Warning] Failed to launch and connect to daemon

2016-09-14 14:05:38.024182 MyApp[2173:731827] [Warning] Failed IDSDaemonRequestConnection, no reply

2016-09-14 14:05:38.024298 MyApp[2173:732171] [Warning] Failed to build remote object for listener: <private>

2016-09-14 14:05:38.024326 MyApp[2173:732171] [Warning] Failed to launch and connect to daemon

2016-09-14 14:05:38.026269 MyApp[2173:731789] [Warning] Failed IDSDaemonRequestConnection, no reply

2016-09-14 14:05:38.026375 MyApp[2173:732171] [Warning] Failed to build remote object for listener: <private>

2016-09-14 14:05:38.026403 MyApp[2173:732171] [Warning] Failed to launch and connect to daemon

2016-09-14 14:05:38.028696 MyApp[2173:732180] [Warning] Failed IDSDaemonRequestConnection, no reply

2016-09-14 14:05:38.028802 MyApp[2173:732181] [Warning] Failed to build remote object for listener: <private>

2016-09-14 14:05:38.028829 MyApp[2173:732181] [Warning] Failed to launch and connect to daemon

2016-09-14 14:05:38.032252 MyApp[2173:732181] [Warning] Failed IDSDaemonRequestConnection, no reply

2016-09-14 14:05:38.032342 MyApp[2173:732180] [Warning] Failed to build remote object for listener: <private>

2016-09-14 14:05:38.032361 MyApp[2173:732180] [Warning] Failed to launch and connect to daemon

2016-09-14 14:05:38.034007 MyApp[2173:731789] [Warning] Failed IDSDaemonRequestConnection, no reply

2016-09-14 14:05:38.034112 MyApp[2173:732180] [Warning] Failed to build remote object for listener: <private>

2016-09-14 14:05:38.034137 MyApp[2173:732180] [Warning] Failed to launch and connect to daemon

2016-09-14 14:05:38.035328 MyApp[2173:731827] [Warning] Failed IDSDaemonRequestConnection, no reply

2016-09-14 14:05:38.035402 MyApp[2173:732180] [Warning] Failed to build remote object for listener: <private>

2016-09-14 14:05:38.035419 MyApp[2173:732180] [Warning] Failed to launch and connect to daemon

2016-09-14 14:05:38.037710 MyApp[2173:732181] [Warning] Failed IDSDaemonRequestConnection, no reply

2016-09-14 14:05:38.037798 MyApp[2173:731827] [Warning] Failed to build remote object for listener: <private>

2016-09-14 14:05:38.037819 MyApp[2173:731827] [Warning] Failed to launch and connect to daemon

2016-09-14 14:05:38.039002 MyApp[2173:732171] [Warning] Failed IDSDaemonRequestConnection, no reply

2016-09-14 14:05:38.039076 MyApp[2173:731827] [Warning] Failed to build remote object for listener: <private>

2016-09-14 14:05:38.039097 MyApp[2173:731827] [Warning] Failed to launch and connect to daemon

2016-09-14 14:05:38.040334 MyApp[2173:732181] [Warning] Failed IDSDaemonRequestConnection, no reply

2016-09-14 14:05:38.040408 MyApp[2173:732171] [Warning] Failed to build remote object for listener: <private>

2016-09-14 14:05:38.040427 MyApp[2173:732171] [Warning] Failed to launch and connect to daemon

2016-09-14 14:05:38.041481 MyApp[2173:731790] [Warning] Failed IDSDaemonRequestConnection, no reply

2016-09-14 14:05:38.041632 MyApp[2173:731789] [Warning] Failed to build remote object for listener: <private>

2016-09-14 14:05:38.041651 MyApp[2173:731789] [Warning] Failed to launch and connect to daemon

Replies

I did some more digging and figured out that the warning messages are related to starting the GKVoiceChat for my players. If i simply don't start the voice channel, i don't get this spew. Also, if i enable exception breakpoints, i hit one when starting the voice chat channel and the trace is below.



* thread #29: tid = 0xc7170, 0x000000018d0b2efc libc++abi.dylib`__cxa_throw, name = 'com.apple.gamekitservices.sip.newcallproc', stop reason = breakpoint 1.1

frame #0: 0x000000018d0b2efc libc++abi.dylib`__cxa_throw

* frame #1: 0x00000001a2a5a79c AudioCodecs`ACBaseCodec::GetPropertyInfo(unsigned int, unsigned int&, unsigned char&) + 592

frame #2: 0x00000001a293fb88 AudioCodecs`GetPropertyInfo(void*, unsigned int, unsigned int*, unsigned char*) + 44

frame #3: 0x00000001915fa628 AudioToolbox`CodecConverter::CheckInitialize(void const*, unsigned int) + 384

frame #4: 0x00000001915fa358 AudioToolbox`CodecConverter::CodecConverter(OpaqueAudioComponent*&, OpaqueAudioComponentInstance*, StreamDescPair const&, StreamDescPair const&, bool, AudioConverterPrimeInfo const&) + 400

frame #5: 0x00000001916b4924 AudioToolbox`CodecDecoderFactory::BuildCodecConverterChain(StreamDescPair const&, ChainBuildSettings const&, AudioConverterChain*, PCMConverterFactory*) + 340

frame #6: 0x0000000191472b48 AudioToolbox`ConverterRegistry::CreateConverter(StreamDescPair const&, AudioConverterChain**, unsigned int, AudioClassDescription const*) + 164

frame #7: 0x00000001916e9a88 AudioToolbox`_AudioConverterNewInternal + 372

frame #8: 0x000000019ccd778c AVConference`SoundDec_Create + 564

frame #9: 0x000000019ce66cb0 AVConference`VCAudioReceiver_SetupDecoders + 248

frame #10: 0x000000019cd7c0b8 AVConference`-[VCCallSession(PrivateMethods) setRTPPayloads:numPayloads:withError:] + 428

frame #11: 0x000000019cd74110 AVConference`-[VCCallSession(PrivateMethods) handleIncomingWithCallID:msgIn:msgOut:optional:confIndex:error:] + 720

frame #12: 0x000000019cd69d24 AVConference`-[VCCallSession(Callbacks) sipCallback:callID:msgIn:msgOut:optional:confIndex:] + 2176

frame #13: 0x000000019cd9be54 AVConference`-[VideoConference(SIPDispatch) sipCallbackNotification:callID:msgIn:msgOut:optional:confIndex:] + 636

frame #14: 0x000000019cdb434c AVConference`SIPCallback + 576

frame #15: 0x000000019cd18f58 AVConference`SIPNewCallProc + 3616

frame #16: 0x000000018d71f860 libsystem_pthread.dylib`_pthread_body + 240

frame #17: 0x000000018d71f770 libsystem_pthread.dylib`_pthread_start + 284

frame #18: 0x000000018d71cdbc libsystem_pthread.dylib`thread_start + 4

Same problem here with live chat multiplayer GameKit

I'm seeing the exact same issue. Xcode 8.2.1, iOS 10.2.


On a related note, is there any plan to support voice-chat from the GKGameSession class? Games established in that way can't benefit from GKVoiceChat afaict.


Thanks!

A little more about this issue: I noticed that when your app is running from Xcode (device connected to dev machine) the debug/error spew shows up but framerate isn't impacted much. But when running/starting the app directly on the device, framerate comes to a near standstill, making the app unusable. (Perhaps the error spew chokes things when it can't output to the Xcode console somehow...?)


FYI I'm still seeing this error with Xcode 8.3.1 and iOS 10.3.1.


This renders GKVoiceChat useless. Is it working for anyone? Has Apple abandoned this feature?


Thanks.

FYI I just filed a bug report on this.