2012-04-26 1 views
8

여기 내 상황입니다.Game Center가 authenticateWithCompletionHandler 요청 (iOS)에 응답하지 않습니다.

1) 사용자가 내 애플리케이션을 처음 엽니 다. authenticateLocalUser를 즉시 호출하여 Game Center에 기록합니다. 로그인, 계정 만들기 및 취소 버튼이있는 팝업이 성공적으로 나타납니다.

2) 사용자가 지금 로그인하지 않으므로 취소를 클릭합니다. (이것은 '취소'를 클릭 한 세 번째 시간이 아니며 '게임 센터 사용 중지, 게임 센터 앱에서 로그인하여 메시지'메시지를받지 못합니다.) 사용자는 평상시처럼 내 앱을 계속 사용할 수 있습니다.

3) 나중에 Game Center를 사용하고 싶기 때문에 Game Center에 로그인하기 위해 지정한 버튼을 클릭합니다. 다시 authenticateLocalUser를 호출합니다. 이번에는 팝업이 나타나지 않습니다. 사실 아무것도 나는이 콘솔 로그 메시지를 수신하는 것을 제외하고 발생하지 : 나는 모두 즉시 다시 authenticateLocalUser를 호출 버튼을 누르면, 또한 그렇게하기 전에 상당한 기간을 기다리고 테스트 한

2012-04-26 08:38:42.861 Clink[332:707] authenticateWithCompletionHandler: enter 
2012-04-26 08:38:42.863 Clink[332:707] authenticateWithCompletionHandler: exit 

4). 어떤 점에서 나는 authenticateLocalUser 다시, 다시 한번 아무것도 표시되지 않습니다 전화, 나는 기능이 오류를 얻을 :

Error Domain=GKErrorDomain Code=7 "The requested operation could not be completed because local player is already authenticating." 

이 그래서 내가 3 단계에서 authenticateLocalUser를 호출 할 때, 나는 게임을 요구하고, 즉 일어나고있는 것으로 보인다 인증 센터.하지만 응답이 끊어지고 요청에 응답하지 않습니다. 그런 다음 4 단계에서 다시 시도 할 때 이미 인증을 시도하고 있기 때문에 요청을 처리 할 수 ​​없다고 알려줍니다. 그러나 3 단계에서 요청한 응답에 대해 최대 10 분을 기다렸으며 게임 센터에서 직접 응답을받지 못했습니다.

내 authenticateLocalUser 함수의 내용입니다. 내가 아는 한 Apple의 샘플 코드에서 다운로드 한 버전에서 변경하지 않았습니다.

- (void) authenticateLocalUser 
{ 
    if([GKLocalPlayer localPlayer].authenticated == NO) 
    { 
     [[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error) 
     { 
      [self callDelegateOnMainThread: @selector(processGameCenterAuth:) withArg: NULL error: error]; 
     }]; 
    } 
} 

은 다른 사람이하기 전에이 문제가 발생 또는 진행 될 수 무엇에 대한 아이디어를 했습니까? 나는 잠시 동안 이것을보고 있었고 무슨 일이 일어나고 있는지 정말로 확신하지 못했습니다.

미리 감사드립니다.

+0

이 문제가 해결되면 알려 주시기 바랍니다. 나는 같은 문제에 직면하고있다. 감사. – DancOfDeth

+0

Newi, 불행히도 나는 가지지 않았다.그러나 동일한 문제에 직면 한 단일성 개발자를 발견했습니다. 이 시점에서 해결책이 있는지조차 확신 할 수 없습니다. 이것은 아마도 (아주 이상하지만) 애플의 행동을 의도 한 것일까? – WendiKidd

+0

나는 똑같은 문제를 겪고있다 ... 내가 잘못하고있는 일이라고 생각했다. –

답변

-1

위의 문제에 대한 경우가 있습니다. 1.이 경우 인증 방법을 사용하여 두 곳으로 전화하면 문제가 발생합니다. 2. 처음으로 클래스 A에서 인증 방법을 사용하고 실행 한 다음 해당 위치를 변경 한 경우 B 클래스에서 깨끗하게하고 다시 만들지 않고

모두 깨끗이 닦은 다음 다시 작성하십시오.

나는 또한 동일한 문제에 직면하고있다. 그러나 나는 해결책을 가지고있다.

+1

죄송합니다. 답변을 이해할 수 없습니다. 제발 좀 더 명확하게 해줄 수 있니? 당신의 솔루션은 정확히 무엇입니까? – WendiKidd

1

인증 된 다른 게임 센터 계정을 가지고있을 때도 같은 문제가있었습니다. 그것은 당신이 당신의 정상적인 계정으로 그리고 테스트와 동시에 어떤 게임에 로그인 할 때 발생합니다.

테스트 중에 기기 설정을 재설정하고 실제 계정으로 다른 게임에 로그인하지 마십시오. 두 가지를 동시에 할 때 발생합니다. 기기 설정을 초기화하고 프로젝트를 정리하면 문제가 없습니다. 그리고 테스트 iTunes 계정 만 사용하여 게임을 테스트하십시오.

+0

그냥 내 코드가 왜 실패했는지 알아 내려고 몇 시간을 잃었습니다 ... 그냥 GameCenter에서 로그 아웃하면 작동합니다, 감사합니다 ... – Gregory

관련 문제