2014-09-10 1 views
3

신속한 스프라이트 키트 게임에서 Game Center를 설정하려고합니다. 내 응용 프로그램 위임게임 센터 인증 처리기보기 컨트롤러가 항상 0입니다.

func authenticateLocalPlayer(){ 
    let localPlayer: GKLocalPlayer = GKLocalPlayer.localPlayer() 

    localPlayer.authenticateHandler = {(viewController : UIViewController!, error : NSError!) -> Void in 
     //handle authentication 
     if (viewController != nil){ 
      self.window?.rootViewController?.presentViewController(viewController, animated: true, completion: nil) 
     } 
     else{ 
      if (localPlayer.authenticated){ 
       gameCenterEnabled = true 

       //Get the default leaderboard identifier. 
       localPlayer.loadDefaultLeaderboardIdentifierWithCompletionHandler({ (leaderboardIdentifierr: String!, error: NSError!) -> Void in 
        if (error != nil){ 
         NSLog("%@", [error.localizedDescription]) 
        } 
        else{ 
         leaderboardIdentifier = leaderboardIdentifierr 
        } 
       }) 
      } 
      else{ 
       gameCenterEnabled = false 
      } 

     } 
    } 
} 

에서 수행되는 다음과 같은 오전 데 문제는 localPlayer.autheniticateHandler 항상 내 로컬 플레이어가 인증되지 않은 경우에도 전무의 ViewController를 반환한다는 것입니다. 내가 뭘 잘못하고 어떻게 수정해야하는지 알려주세요.

답변

0

나는 시뮬레이터에서 내 애플 리케이션을 실행하고 인증 창이 잘 나왔다. 그러나 왜 내 장치에서 작동하지 않는지 잘 모르겠습니다.

9

동일한 문제가있었습니다.

기기에서 앱을 삭제 한 다음 게임 센터의 기기 설정으로 이동하고 샌드 박스를 사용하도록 설정합니다.

그런 다음 장치에서 게임을 다시 실행하면 게임 센터 로그인 창이 표시됩니다.

+0

감사합니다. 아마이 대답 없이는이 일을 결코 얻지 못했을 것입니다. – Michael

0

나에게도 똑같은 문제가 발생합니다. 동일한 결과를 가진 여러 장치에서 시도했습니다. 앱 삭제/게임 센터 설정 변경은 도움이되지 않습니다. 코드가 괜찮아 보입니다. 스위프트에 대한 GC가 완전히 파손 된 것 같습니다.