私は自分のプロジェクトでFirebaseとFirebaseUIを使用しています。定期的にログインしようとすると同じクラッシュが表示されます。ユーザーがFacebook/Googleまたは電子メール/パスワードでログインできる場所から、認証ピッカーが表示されるはずです。何が起こる、しかし、それは次の行をマークする以外を一切エラーメッセージがクラッシュしていないということです。auth pickerを表示しようとするとFirebaseUIがクラッシュする
struct FIRAuthLogin {
private let authUI = FUIAuth.defaultAuthUI()
private var viewController: UIViewController!
init(delegate: FIRCustomAuthDelegate, viewController: UIViewController) {
self.viewController = viewController
authUI?.delegate = delegate
authUI?.providers = [FUIGoogleAuth(), FUIFacebookAuth()]
}
func present(completion: @escaping() -> Void) {
// Exception on the line below!
let authViewController = authUI?.authViewController()
self.viewController.present(authViewController!, animated: true, completion: completion)
}
}
ラインlet authViewController = authUI?.authViewController()
で例外があるにもかかわらず、authViewController
はないnil
です。
問題は、私はFUIPasswordSignUpViewController
をオーバーライドのみだということですので、私は少し困惑している:
以下は(問題ナビゲーターで)スタックトレースからの画像です。
私は通常、プロジェクトからCocoaPodを削除し、再度統合します。それから、正常に動作しますが、これを複数回実行してもエラーは持続しますので、根本的なエラーが存在する必要があります。残念ながら、私はFirebaseUI GitHubコードでエラーを再現することができませんでしたので、私はエラーが私の最後にあると推測しています。 FirebaseUI-iOS GitHubリポジトリではなく、ここで尋ねています。
'authViewController'に' if let'を追加するなど、コードをより安全にするようにしてください。私はそれが生産では起こらないだろうと思っていますか?私は望んでいない。私はCocoapodsを介してフレームワークを再インストールすることについて言及したので、その理論を得ました。 TestFlight経由でアプリをテストするときにそのクラッシュを再現してみてください。 – Glenn
私はTestFlight経由でテストしていますが、正しく動作しています。私が言ったように、 'authViewController'は' nil'ではありません。 'if let'を使うときも同じ例外があります。 – eirikvaa