3

Google プラス サインインを使用する iOS 8 アプリ (目的 C) を作成しました。メイン アプリケーションとその共有拡張機能は同じキーチェーンを使用するため、GPPSignInButton を使用してメイン アプリケーションからサインインすると、拡張機能の認証が提供されます。問題は、2 つのターゲットが非常に特定の順序で実行されている場合にのみ、これを機能させることができることです。

これはうまくいきません:

  1. メインアプリケーションを開き、サインインします (成功)
  2. 共有拡張機能を開き、「trySilentAuthentication」を試みます - 共有拡張機能の場合、キーチェーンに認証がないため、これは失敗します。

ただし、これは機能します:

  1. 最初に共有拡張機能を開きます-予想どおり、キーチェーンに認証はありません
  2. メインアプリケーションを開き、サインインします (成功)
  3. 共有拡張機能を再度開きます。今回は、キーチェーンに認証があり、「trySilentAuthentication」が成功します。

したがって、メインアプリケーションがサインインする前に開かれない限り、共有拡張機能はキーチェーンの認証にアクセスできないようです。これはキーチェーンの一般的な問題ではないと思います。開かれた順序に関係なく、アプリと拡張機能の間のキーチェーン内のオブジェクトの種類。

2 つの別々の通常のアプリ (拡張機能なし) を使用して実験を行ったところ、同じ問題が発生することがわかりました。アプリケーションはキーチェーンで Google と認証を共有できますが、両方のアプリケーションが [GPPSignIn sharedInstance] にアクセスする機会が既にある場合に限ります。 ] - 共有インスタンスで何もする必要はなく、アクセスしただけです。最初に 1 つのアプリケーションにサインインしてから、既存のキーチェーンに参加しようとすると、既に存在する認証にアクセスできません。

以前にこの種の問題に遭遇した人はいますか、または認証プロセスをデバッグして順序が非常に重要である理由を知る方法を知っていますか?

4

0 に答える 0