【发布时间】:2014-12-03 16:40:43
【问题描述】:
我正在尝试将游戏中心集成到我的游戏中并创建排行榜。
我已经在 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 Connect 上为应用程序启用了 Game Center 并随后编辑了项目以使用相同的捆绑 ID(或类似的东西)?您应该查看 Game Center 编程指南以获取更多信息。这听起来确实像一个简单的设置步骤(在 iTunes Connect 或应用程序的 Info.plist 中)这里缺少。
-
谢谢。实际上,捆绑 ID 不一样......但是它无法记录。调试区域显示“无法验证失败”和“错误为零”所以我的 println.
-
我编辑了带有新错误的问题...我无法设置游戏中心,这让我发疯了!!! :x
标签: iphone authentication swift ios8 game-center