🦔
Info.plistのミスでFlutter×Firebase×Googleログイン時にクラッシュした問題の解決
発生した問題
Flutter勉強中,以下の記事
を参考に,手順通りFirebaseを使用したGoogleログインを試していたつもりだったのが,iOSでの検証で*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Your app is missing support for the following URL schemes: com.googleusercontent.apps.xxxxxxxxxxxxxxxxxx'
とエラーが出てクラッシュしました。(Androidでは正常に動作した)
解決方法
Info.plistにREVERSED_CLIENT_ID
をきちんとCFBundleURLSchemes
に設定したはずなのに何故だろうと調べていたところ,GithubのIssue
を発見しました。これに従い直接XcodeからURLの設定をしたところ,正常にログインできました!
問題があった点の確認
Info.plistを再度確認してみると,
<dict>
...
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>com.googleusercontent.apps.xxxxxxxxxxxxxxxxxxxxx</string>
</array>
</dict>
</array>
...
</dict>
のように生成されていましたが,僕が手動で行った設定だと,
<dict>
...
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>com.googleusercontent.apps.xxxxxxxxxxxxxxxxxxxxx</string>
</array>
...
</dict>
このように全体をarrayで囲うのを忘れてしまっていて,読み込まれていなかったことが原因でした......
謝辞
無料でここまで充実した記事を公開していただいていることに,感謝するばかりです...
Discussion