4.0에서 실행되는 Gamekit 응용 프로그램은 GKSession 개체 제거를 올바르게 처리하지 못합니다. 피어 연결이 끊어 세션이 (애플 데모에로) 정리하면, 3.1.3 또는 3.2에서 실행 :GameKit에서 4.0 시간 동안 준비가되지 않았습니까? 광고 서비스 중지
[gkSession disconnectFromAllPeers];
[gkSession setAvailable:NO];
[gkSession setDelegate:nil];
[gkSession setDataReceiveHandler:nil withContext:nil];
그런 다음 다른 피어 상태 변화와 동료의 테이블보기를 수신하는 업데이트 할 수 있습니다.
내 응용 프로그램에서 하나의 피어가 서버로 시작되고 다른 피어가 클라이언트로 시작됩니다. 클라이언트의 서버 연결 요청과 클라이언트의 이름이 서버의 플레이어 목록에 나타납니다. 서버가 요청을 수락하기로 선택하면 세션 연결이 설정되고 게임을 플레이 할 수 있습니다. 그러나 서버가 요청을 수락하기 전에 클라이언트가 종료되면 클라이언트는 세션을 정리하고 (위와 같이) 상태 변경을 수신하면 서버 피어 목록에서 클라이언트가 사라집니다. 이것은 놀랍게도 3.1-3.2에서 작동합니다
4.0에서 실행되는 동일한 응용 프로그램을 실행하면 서버와 클라이언트에서 오류가 발생하고 피어가 상태 변경을 수신하는 데 오랜 시간이 걸리고 응용 프로그램이 충돌 할 때 응용 프로그램이 충돌합니다 어떤 에러도없이 (NSZombieEnabled = YES와 빌드 인수). 서버는 클라이언트로부터 "상태 변경"메시지를 수신하지 않습니다. 대신, 다음과 같은 오류가 발생하고 있습니다 : 키 오류가 내가 무슨 생각으로
Thu Jul 8 23:27:26 unknown com.apple.mDNSResponder[18] <Notice>: BTLocalDeviceRemoveData: 60 byte key, 18 byte value
Thu Jul 8 23:27:26 unknown MobileBluetooth[29] <Notice>: BTLocalDeviceRemoveData - BT_ERROR_INVALID_HANDLE
Thu Jul 8 23:27:26 unknown com.apple.mDNSResponder[18] <Notice>: Call to BTLocalDeviceRemoveData failed with error 7
Thu Jul 8 23:13:39 unknown mDNSResponder[18] <Error>: external_stop_advertising_service: 18 00Z1Tud0A\\.\\.Tonberry\M-b\M^@\M^Ys\\032iPhone._1htnu3uko0uvsp._udp.local. TXT txtvers=1\M-B\M-&state=A
Thu Jul 8 23:13:39 unknown MobileBluetooth[29] <Notice>: BTLocalDeviceRemoveData - BT_ERROR_INVALID_HANDLE
:
Tue Jul 13 21:04:50 Tonberry com.apple.mDNSResponder[21] <Notice>: Call to BTDiscoveryAgentStopScan failed with error 400
세션처럼 나에게 보이는 사용할 수없는 이루어지고 있지 않습니다 (오류 서비스를 광고 중지에) . 실제 충돌 :
Thread 3 Crashed:
0 GameKitServices 0x06352f90 gckSessionChangeStateCList + 411
1 GameKitServices 0x0635b49c gckSessionRecvProc + 1474
2 libSystem.B.dylib 0x981c181d _pthread_start + 345
3 libSystem.B.dylib 0x981c16a2 thread_start + 34
진행중인 전체 응용 프로그램에 버그가 있습니다. 응용 프로그램 자체가 완료되었으며 거의 제출 준비가되어 3.1.3/3.2에서 제대로 실행되지만 4.0의 Gamekit 현재 상태에서는 더 이상 제출할 수 없습니다. 대단히 실망했고이 버그 보고서가 앞으로 도움이되기를 바랍니다. 누구든지이 오류를 이해하거나 내가 잘못했을 경우 나는 매우 감사 할 것입니다.
가능한 경우 도움을 받으십시오. 나는이 응용 프로그램에 수건을 던지려고하고 있으며 너무 가깝습니다.
실제로 이것은 알려진 버그라는 사과를 받았습니다. 모든 해결 방법은 현상금을받습니다. – typeoneerror
4.1의 베타 버전으로 수정되었는지 확인하십시오. 제출하려면 몇 주가 걸릴 수 있습니다. (4.1 및 3-3.2에만 해당). –
버그는 4.1에서 수정되었습니다. 어제 밤에 그걸 만들었 어. 문제는 여전히 연결 해제를 알리는 데 15 ~ 30 초가 걸립니다. 뭔가가 여전히 옳지 않습니다. 진행! 당신이 대답 했어야 했어! 기회는 당신의 "시도 4.1"대답은 당신에게 500 명의 담당자를 거칠지도 모릅니다;) – typeoneerror