2013-06-07 6 views
1

샌드 박스있는 게임 센터를 사용합니다.GameCenter가 리더 보드를 업데이트하지 않습니다.

득점 기록은 리더 보드에 표시되지 않습니다.

- (void)scoreReported: (NSError*) error { 
    NSLog(@"%@",[error localizedDescription]); 
} 

- (void)submitScore{ 

    if(self.currentScore > 0) 
    { 
     NSLog(@"Score: %lli submitted to leaderboard %@", self.currentScore, self.currentLeaderBoard); 
     [gameCenterManager reportScore: self.currentScore forCategory: self.currentLeaderBoard]; 
    } 
} 

그리고 scoreReported이 오류가 발생 나던, 아직 점수는 리더 보드에 표시 나던 :

나는 다음과 같은 코드를 사용하고 있습니다. 나는에 currentLeaderBoard를 사용할 때 범주가 정확한지 알고

- (void)showLeaderboard { 
    NSLog(@"leaderboard = %@", self.currentLeaderBoard); 
    GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init]; 
    if (leaderboardController != NULL) 
    { 
     leaderboardController.category = self.currentLeaderBoard; 
     //leaderboardController.category = nil; 
     leaderboardController.timeScope = GKLeaderboardTimeScopeWeek; 
     leaderboardController.leaderboardDelegate = self; 
     [self presentModalViewController: leaderboardController animated: YES]; 
    } 
} 

I (각 시뮬레이터 모두에서 로그인 조차 시도 4 개 가지 GC 계정을 작업 리더를 얻기 위해 보통 2 개의 다른 샌드 박스 GC 계정을 시도 iOS 6.1) 및 기기 (iOS 6.0.1) 아직 기쁨이 전혀 없습니다.

의견이 있으십니까? 아니면 샌드 박스 게임 센터가 너무 버그가 있습니다. (샌드 박스에 대한 버그를 제기 하겠지만 애플 버그보고 양식에 버그가있어서 그 중 하나가 작동하지 않습니다.)

+0

점수를 리더 보드에 게시 한 후 얼마나 오래 기다렸습니까? – samfisher

+0

어디서나 2 분에서 16 시간까지 – Dominic

답변

4

게임 센터에보고하는 점수는 샌드 박스 모드에서도 거의 즉시 작동합니다. 여기

  1. 는 테스트 데이터를 삭제하십시오 (정확히 iTunesConnect에서 "리더 보드 ID"의 일치 함) 점수를보고 할 때 리더 보드 식별자가 올바른지 확인하십시오 시도 할 수있는 몇 가지 있습니다 iTunesConnect의 "게임 센터 관리"섹션 아래에서
  2. 응용 프로그램을 삭제하고 "게임 센터"응용 프로그램을 장치에서 실행 한 다음 "게임"탭으로 이동하여 응용 프로그램을 제거하십시오. 앱을 다시 설치하고 점수를 다시보고 해주세요.
  3. 확인 [gkScore reportScoreWithCompletionHandler :^(NSError * 오류가) 나는 내 submitScore 방법을 변경 무엇이 알고 싶은 분들을 위해 오류
+0

reportScoreWithCompletionHandler를 지적 해 주셔서 감사합니다. submitScore 메서드가 변경되어 작동했습니다. – Dominic

+0

"거의 즉시"의미하는 바를 정확하게 할 수 있습니까? 10 초? 10 분? –

2

를 반환하지 않습니다

- (void)submitScore { 
    GKScore * GCscore = [[GKScore alloc] initWithCategory:self.currentLeaderBoard]; 
    GCscore.value = [[NSUserDefaults standardUserDefaults] integerForKey:@"NEWSCORE"]; 
    [GCscore reportScoreWithCompletionHandler:^(NSError *error) { 
     dispatch_async(dispatch_get_main_queue(), ^(void) { 
      if (error == NULL) { 
       NSLog(@"Score Sent"); 
      } else { 
       NSLog(@"Score Failed, %@",[error localizedDescription]); 
      } 
     }); 
    }]; 
    } 

및 작동했습니다

+0

이 코드는 ios7 이상에서 작동하며 이전 버전에서는 사용할 수 없습니다. – Indrajeet

관련 문제