1

これは、xcode と Objective-C の世界への私の最初の進出なので、ご容赦ください。iOS で Google Play ゲーム サービスを実装するために、Google デベロッパー サイトに記載されている手順に従っています: https://developers.google.com/games/services/ios/quickstart

手順 1 ~ 7 は正常に機能し、GPSSignIn オブジェクトを使用して Google+ にサインインできます。

認証済み。2013-05-28 02:37:19.718 MyApp[2012:907] Google へのサインインに成功しました! Auth オブジェクトは GTMOAuth2Authentication 0x1d56ab40: {accessToken="ya29.AHES6ZQa59aGdKmrWhKSN0ie_S_CqgLfBqKzlmHXU0Cpnxs"、refreshToken="1/A8dCPhVKRRgbsM4Gcp4qlkhNJc9SyyTUEVssN3A-Iro7"、有効期限: 0x1d56ab40: +2005: +2013-05 です。

ステップ 8 を実装すると、次のように実装した GPGManager signIn 関数でクラッシュが発生するようです。

-(void)startGoogleGamesSignIn
    {
      // The GPPSignIn object has an auth token now. Pass it to the GPGManager.
      [[GPGManager sharedInstance] signIn:[GPPSignIn sharedInstance]
           reauthorizeHandler:^(BOOL requiresKeychainWipe, NSError *error) {
             // If you hit this, auth has failed and you need to authenticate.
             // Most likely you can refresh behind the scenes
             if (requiresKeychainWipe) {
               [[GPPSignIn sharedInstance] signOut];
             }
             [[GPPSignIn sharedInstance] authenticate];
           }];
    }

デバッグ ログ:

013-05-28 02:16:04.742 MyApp[1970:907] gppsignin インスタンスの印刷 = 2013-05-28 02:16:04.781 MyApp[1970:907] gpgmanager インスタンスの印刷 = 2013-05-28 02:16 : 04.785 MyApp[1970:907] *キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。 0x3375d2a3 0x3b3db97f 0x336a734d 0x336a7a79 0x57089 0x56bf5 0x57f2d 0x37bd1 0x36331 0xb27f 0xb10b 0x2edcd 0x108d7 0x340986fd 0x33fd81f9 0x33fd8115 0x3343a45f 0x33439b43 0x33461fcb 0x336a374d 0x3346242b 0x333c603d 0x33732683 0x33731ee9 0x33730cb7 0x336a3ebd 0x336a3d49 0x372562eb 0x355b9301 0xab3d 0x3b812b20) libc++abi.dylib: terminate called throwing an exception (lldb)

私の知る限り、コードで NSArray を使用しておらず、適切なコールスタックを取得できません。他の誰かがこれで遊んでいて、同様の問題が発生していますか?

4

3 に答える 3

1

公式ドキュメントでは、この区別が十分に明確にされていません。ビルド フェーズPlayGameServices.frameworkに追加する必要がある とは異なり、Link Binary With Librariesビルド フェーズPlayGameServices.bundleに追加する必要がありCopy Bundle Resourcesます。

PS: 問題の原因を指摘してくれた farroid に感謝します。

于 2013-10-18T01:16:09.497 に答える
1

https://developers.google.com/games/services/ios/quickstartの入門ガイドのように、xcode プロジェクトに PlayGameServices.bundle を追加するのを忘れたためです。

出典:同じ問題がありました。

于 2013-07-31T18:47:54.913 に答える
0

すべての例外ブレークポイントを追加し、ブレークポイントにヒットしたらimage lookup --address、コンソールでトレース テキストのアドレスを使用して、問題の場所を特定できます。ほとんどの場合、存在すると思われるものは、GPP クラスに渡したときに nil です。

于 2013-05-28T21:54:25.323 に答える