2014-12-03 67 views
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") 
        } 
       } 
      } 
    } 
} 
+2

你啓用遊戲中心在iTunes連接的應用程序,然後編輯使用同捆ID(或類似的東西)的項目?你應該檢查遊戲中心編程指南瞭解更多信息。這聽起來像是一個簡單的設置步驟(無論是在iTunes Connect還是應用程序的Info.plist中)在這裏都沒有。 – LearnCocos2D 2014-12-03 16:56:43

+0

謝謝。捆綁ID實際上是不一樣的......但是它不能記錄。調試區域顯示「無法驗證失敗」和「錯誤爲零」,所以我的println。 – Haox 2014-12-03 18:14:02

+0

我用新的錯誤編輯了問題......我無法設置遊戲中心,它讓我感到不安! :X – Haox 2014-12-03 21:09:16

回答

2

我自己解決。

這個代碼:var localPlayer = GKLocalPlayer.localPlayer()

代替:​​3210