2015-12-04 3 views
2

I Я выполнил все необходимые шаги для поддержки лидеров в моей игре (и они отлично работают на iOS), однако на tvOS невозможно настроить GKGameCenterViewController, чтобы показать конкретную таблицу лидеров, свойство LeaderboardIdentifier просто отсутствует (так же, как ViewState):Как отобразить таблицу лидеров GameCenter на tvOS?

var leaderboardController = new GKGameCenterViewController(); 

// Unavailable on tvOS 
/* 
leaderboardController.ViewState = GKGameCenterViewControllerState.Default; 
leaderboardController.LeaderboardIdentifier = "myLeaderboardId"; 
*/ 

leaderboardController.Finished += (sender, e) => 
{ 
    leaderboardController.DismissViewController (true, null); 
} 

PresentViewController (leaderboardController, true, null); 

Вместо того, чтобы использовать эти свойства, я следовал инструкциям here. Я замечаю, что в конечном пакете приложений будет создан файл GKGameCenterContent.plist. Я дважды проверил содержание:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>GKLeaderboards</key> 
    <array> 
     <dict> 
      <key>identifier</key> 
      <string>myLeaderboardId</string> 
      <key>onDemandResourcesTag</key> 
      <string>com.apple.gamecenter.Leaderboard</string> 
      <key>posterImageName</key> 
      <string>Leaderboard/Poster</string> 
     </dict> 
    </array> 
</dict> 
</plist> 

Это выглядит абсолютно правильно, также изображения, конечно, находятся в комплекте. Тем не менее, используя приведенный выше код, чтобы показать, что контроллер игрового центра даст мне только экран достижений и ничего больше.

ответ

1

Вы должны добавить таблицу лидеров в Assets.xassets. Там вы можете ввести идентификатор:

enter image description here

Код для отображения лидеров:

@IBAction func openLeaderboard(sender: AnyObject) { 

    let gcViewController = GKGameCenterViewController() 
    gcViewController.gameCenterDelegate = self 
    self.presentViewController(gcViewController, animated: true, completion: nil) 
} 
+0

Вот что я сделал. – Krumelur

+0

ОК. Я не пошел по ссылке. Просто увидел, что это был мой вопрос – Stefan

+0

Для меня это сработало. Думаю, вы успешно создали таблицу лидеров в iTunesConnect, и вы используете ту же таблицу лидеров в iOS и AppleTV? – Stefan