↑クリックして拡大
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大

頭痛が減ったので共有です!

rebuild.fmを応援しています!

HOME > GameCenterのGKLocalPlayerでログイン

GameCenterのGKLocalPlayerでログイン認証

GameCenterにログインします。AppDelegate.swiftにログイン処理を実装すれば、非アクティブから復帰した時も自動で再ログインします。
参考(英語): IOS Game Center GKLocalPlayerListener

サンプル構文


//GameCenterにログインします。
let localPlayer = GKLocalPlayer();
let localPlayer.authenticateHandler = {(viewController, error) -> Void in
    if ((viewController) != nil) {
        println("ログイン確認処理:失敗-ログイン画面を表示");
        self.presentViewController(viewController, animated: true, completion: nil);
    }else{
        println("ログイン確認処理:成功");
        println(error);
        if (error == nil){
            println("ログイン認証:成功");
        }else{
            println("ログイン認証:失敗");
        }
    }
}

※注意①:上記ログイン処理はどこでも記載できますが、アプリが非アクティブになるとログアウトしてしまいます。再度アクティブした場合に自動でログインさせる 場合は、AppDelegate.swiftのfunc application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) 内に上記処理を記載して、変数をクラス変数として永続化させてください。

GKLocalPlayerUtil例文

GKLocalPlayerUtil.swiftをダウンロードする。(ご自由にご利用ください)

import UIKit
import GameKit

struct GKLocalPlayerUtil {
    static var localPlayer:GKLocalPlayer = GKLocalPlayer();
    
    static func login(target:UIViewController){
        self.localPlayer = GKLocalPlayer();
        self.localPlayer.authenticateHandler = {(viewController, error) -> Void in
       
            if ((viewController) != nil) {
                println("ログイン確認処理:失敗-ログイン画面を表示");
                target.presentViewController(viewController, animated: true, completion: nil);
            }else{
                println("ログイン確認処理:成功");
                if (error == nil){
                    println("ログイン認証:成功");
                }else{
                    println("ログイン認証:失敗");
                }
            }
        }
    }
}

//利用方法(AppDelegate.swiftに実装した例)
func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {
    // Override point for customization after application launch.
    let targetViewController:UIViewController = ログイン画面を表示させたいビューコントローラー
    GKLocalPlayerUtil.login(targetViewController);
} 
※ Callbackをログイン結果の正否で実装したい場合は以下を参考にしてください。
How to implement Objective-C callback handler in SWIFT?

↓こんな記事もありますよ!


2021-05-14 14:21:41

WatchOSのwatchconnectivityのFiletransferの落とし穴。と、避け方。

AppleWatch 実機だと成功するんだけど、シュミレーターだと失敗するという、、、 昔作成してた時は成功してたのになーと思って調べると、どうやら昔は成功してたみたい。watchOS6以降は...

2021-05-06 14:04:37

LINEのアニメーションスタンプ制作の落とし穴、、、失敗談

ゴールデンウィークにLINEスタンプを作成してみました。 作り切って申請も通したんですが、意図したアニメーションと違う、、、、 LINEクリエーターの画面だと、アニメーションのプレビュー...

2021-05-01 18:05:35

久しぶりのAdmobをobjective-cに実装。コンパイルエラーだらけ。バーミッション不具合でエミュレータにインスコできない。

忘れないようにメモ エミュレータにアプリをインストールする際にパーミッション系のエラーがでた時、また、iphone実機にインストールする際にも権限系のエラーが出る場合。 ターゲット→ex...
このエントリーをはてなブックマークに追加
右側のFacebookのLikeをクリック頂けると記事更新の際に通知されますので宜しければご利用下さい!