2015-10-05 5 views
5

GKGameCenterViewControllerで招待状を送信する際に問題が発生しています。 View Controllerはうまく開きますが、誰かに招待状を送信しようとするとすぐに失敗します。どちらのアカウントでもゲームセンターへの招待が有効になっており、GKGameViewControllerで他のプレイヤーを見つけても問題ありません。ゲームセンターへの招待がすぐに失敗する

この方法は、(認証がGameViewControllerから呼び出され、このコードは別々のゲームセンターの管理クラスである)とすぐにGKLocalPlayerが認証されると呼び出されます:

internal func authenticationChanged() { 
    if GKLocalPlayer.localPlayer().authenticated && !authenticated { 
     print("Authentication changed: player authenticated") 
     authenticated = true 
     GKLocalPlayer.localPlayer().unregisterAllListeners() 
     GKLocalPlayer.localPlayer().registerListener(self) 
    } else { 
     print("Authentication changed: player not authenticated") 
     authenticated = false 
     GKLocalPlayer.localPlayer().unregisterAllListeners() 
    } 
} 
ここでは、招待状を管理するために使用しているコードです。

これは、招待を受信したときに呼び出されるメソッドですが、招待が送信されるとすぐに失敗することを考慮して呼び出されません。

public func player(player: GKPlayer, didAcceptInvite inviteToAccept: GKInvite) { 
    //presentingViewController.dismissViewControllerAnimated(false, completion: nil) 
    print("Accepted invite") 
    let mmvc = GKMatchmakerViewController(invite: inviteToAccept)! 
    mmvc.matchmakerDelegate = self 
    presentingViewController.presentViewController(mmvc, animated: true, completion: nil) 
} 

コードのこれら2つは、すべてのGKMatchmakerViewControllerDelegate, GKGameCenterControllerDelegate, GKMatchDelegate, GKLocalPlayerListenerデリゲートとプロトコルに準拠同じクラスです。

+0

同じ問題が発生しました。あなたは解決策を見つけましたか? – EmilyJ

+0

あなたは解決策を見つけましたか? –

+0

いいえ、申し訳ありません。私たちはちょうどその周りを歩くことになった。 –

答えて

0

私はまったく同じ問題を抱えていました。問題は、私がアプリの設定で新しいバージョンの文字列を使用していたことが原因だと思われます。現在、iTunes Connectに入っていて、ゲームセンターで働いているバージョンに戻しました。

+0

Benさん、ありがとうございますが、どのバージョンの文字列を参照していますか? General/Identityのxcodeにあるもの? –

+0

それは正しいです。それはinfo.plistの "Bundle versions string、short"というキーでアクセス可能です。 – Ben

関連する問題