2016-02-13 15 views
6

に私はでGoogleの記号を実装し、すべてのものは、iOS 8で動作します。しかし、私はiOSの9にこの行を呼び出すとき:GIDSignIn白い画面は、iOS 9

GIDSignIn.sharedInstance().signIn() 

を私が初めてでログインすることができますよ。しかし、取り消すと、次にログインしようとすると、通常のユーザー承認Webビューが表示される白い画面が表示されます。

これは、私がこのアプリケーションを削除して再インストールした場合でも起こります。つまり、何かがOSレベルでキャッシュされている可能性があります。

唯一の解決策は、iOSシミュレータを再起動するかiPhoneを再起動することです。

私は試しましたalltheseanswers運がありません。私もGIDSignIn.sharedInstance().signIn().allowsSignInWithWebView = trueを試してみましたが、Safariを使って権限を与えることは可能かもしれませんが、Safariは決して開きません。私のPodfileはpod 'Google/SignIn'なので、私はそれがバージョンの問題だとは思わない。

これは私のアプリの範囲を超えているので、私は失恋しています。私が考えることのできるのは、実用的なサンプルアプリケーションを解体し、その設定を自分のアプリと一行ずつ比較することです。

誰かが実際のサンプルアプリケーションへのリンクを持っていますか?

答えて

2

私も同じ問題に直面しています。実際には1つのViewControllerでそれは私のために働いていて、別のViewControllerは動作していません。

私はいくつかのボタンアクションメソッド内[[GIDSignIn sharedInstance] signIn]を呼び出していない中であればそれは私のために動作します。しかし、私はのviewDidLoad内で呼び出す場合、私は白い画面を取得します。

は、私は別の回避策を見つけましたが、私はそれがLogActionPresedは内部で別の作業溶液が内部このメソッドを呼び出すことです[[GIDSignIn sharedInstance] signIn]

を呼び出す方法です

[self performSelector:@selector(LogActionPresed:) withObject:self afterDelay:3.5]; 

信頼性がないと思うように私はこれでつもりはありませんviewDidAppear

- (void) viewDidAppear:(BOOL)animated { 
    [self LogActionPresed:self]; 
} 
5

私はあなたとまったく同じ問題を抱えていました。それは私にすべてを試して時間を費やした。私は最終的に100%正確ではないかもしれない解決策を見つけましたが、それは私のために働き、問題を修正しました。

これは私のプロジェクトで行ったことです。 まずGIDSignInUIDelegate関数を3つ実装しました。これは、私のGIDSignInUIDelegateがUIViewControllerのサブクラスであるため、公式ドキュメントと競合しています。しかし、私は私のカスタム署名ボタンを使用していて、私はGoogleの公式文書に従ったときに動作しませんでした。だから私はすべてを試して、それが動作することを発見した。

デリゲート機能を実装した後は、主に2つのことが必要です。

  1. 次の関数では、viewController.viewを設定します。layoutIfNeeded()

    func sign(_ signIn: GIDSignIn!, present viewController: UIViewController!) { 
        //This line does the trick to fix signin web not showing issue 
        viewController.view.layoutIfNeeded() 
    
        self.present(viewController, animated: true, completion: nil) 
        } 
    
  2. 代わり

    GIDSignIn.sharedInstance().uiDelegate = self 
    

)(のviewDidLoadで、このデリゲートを設定しないでくださいは、ボタンアクションでそれらを設定します。そうでなければ、何とかデリゲートを表示し続ける

あなたの問題を助けることを願っています。

+0

私は同じ問題に直面していますが、解決策を見つけることができませんでした。私の代理人メソッドも呼び出されていません。 –

0

アクティビティインジケータを削除した後、私のために働いた。

2

iOS 10では、プレゼンテーションビューコントローラがUINavigationControllerのスタック内にある場合、動作していることがわかりました。プレゼンテーションビューコントローラがこのようなスタックにない場合、Webビューは空白のままです。

関連する問題