3
我正在嘗試將遊戲中心集成到我的遊戲中並創建排行榜。如何用swift驗證本地玩家?
我已經在iTunes Connect上創建排行榜,啓用遊戲中心並創建沙盒測試器。
儘管所有我有這樣的錯誤:
not able to authenticate fail error is nil
這是我的錯誤的println(見我的代碼)
我錯過了什麼?
這裏我gameViewController的代碼:
import UIKit
import SpriteKit
import AVFoundation
import iAd
import GameKit
var defaults = NSUserDefaults()
var highscore = defaults.integerForKey("highscore")
class GameViewController: UIViewController, ADBannerViewDelegate, GKGameCenterControllerDelegate {
var adBannerView: ADBannerView!
var leaderboardIdentifier: String? = nil
var gameCenterEnabled: Bool = false
override func viewDidLoad() {
super.viewDidLoad()
var skView = self.originalContentView as SKView
var scene:SKScene = GameScene(size: skView.bounds.size)
skView.presentScene(scene)
loadAds()
}
func authenticateLocalPlayer()
{
var localPlayer = GKLocalPlayer()
localPlayer.authenticateHandler =
{ (viewController : UIViewController!, error : NSError!) -> Void in
if viewController != nil
{
self.presentViewController(viewController, animated:true, completion: nil)
}
else
{
if localPlayer.authenticated
{
self.gameCenterEnabled = true
localPlayer.loadDefaultLeaderboardIdentifierWithCompletionHandler
{ (leaderboardIdentifier, error) -> Void in
if error != nil
{
print("error")
}
else
{
self.leaderboardIdentifier = leaderboardIdentifier
println("\(self.leaderboardIdentifier)") //in your example "VHS" should be returned
}
}
}
else
{
println("not able to authenticate fail")
self.gameCenterEnabled = false
if (error != nil)
{
println("\(error.description)")
}
else
{
println( "error is nil")
}
}
}
}
}
你啓用遊戲中心在iTunes連接的應用程序,然後編輯使用同捆ID(或類似的東西)的項目?你應該檢查遊戲中心編程指南瞭解更多信息。這聽起來像是一個簡單的設置步驟(無論是在iTunes Connect還是應用程序的Info.plist中)在這裏都沒有。 – LearnCocos2D 2014-12-03 16:56:43
謝謝。捆綁ID實際上是不一樣的......但是它不能記錄。調試區域顯示「無法驗證失敗」和「錯誤爲零」,所以我的println。 – Haox 2014-12-03 18:14:02
我用新的錯誤編輯了問題......我無法設置遊戲中心,它讓我感到不安! :X – Haox 2014-12-03 21:09:16