実現したいこと
SwiftUI アプリに Google アカウントのサインイン(Google Sign-In)を実装したいです。
Google カレンダー連携の前段階として、まずは Google Sign-In が正常動作するか確認したいのですが、
Info.plist に正しい URL scheme を登録しているのに、毎回「URL scheme が不足している」というエラーが発生し、サインイン処理が開始できません。
発生している問題・分からないこと
GoogleSignIn の signIn(withPresenting:) を実行した瞬間に、次のエラーが必ず発生します。
Your app is missing support for the following URL schemes:
com.googleusercontent.apps.156378956114-avc4msahm1pok3q98b4koasq5foi7g43
ただし、この URL scheme は Info.plist に確実に登録済みです。
アプリ起動時ログでも URL scheme が正しく読み込まれていることを確認しています。
それでも GoogleSignIn ライブラリ内部の URL scheme 判定で “存在しない” 扱いになります。
「本来は別の本番アプリ(MVP開発中)で発生した問題ですが、原因切り分けのために TokikaneSignInTest という最小構成プロジェクトを新規作成し、同じ手順で再現させています。」
エラーメッセージ
error
1Your app is missing support for the following URL schemes: 2com.googleusercontent.apps.156378956114-avc4msahm1pok3q98b4koasq5foi7g43
該当のソースコード
【TokikaneSignInTestApp.swift の処理概要】 ・GoogleSignIn の初期設定として、アプリ起動時 (init) に GIDSignIn.sharedInstance.configuration = GIDConfiguration(clientID: "156378956114-avc4msahm1pok3q98b4koasq5foi7g43.apps.googleusercontent.com") を実行している。 ・Info.plist 内の CFBundleURLTypes を print して内容が正しいことを確認済み。 【ContentView.swift の処理概要】 ・画面に GoogleSignInButton を1つ置き、タップで signIn() を呼び出す構造。 ・signIn() の内容: 1)UIApplication.shared から keyWindow の rootViewController を取得 2)GIDSignIn.sharedInstance.signIn(withPresenting: rootVC) を呼ぶ 3)成功時は result、失敗時は error を print → 最小構成でも毎回 URL scheme 不足エラーが発生する。 【Info.plist の実際の登録内容】 ・GIDClientID: 156378956114-avc4msahm1pok3q98b4koasq5foi7g43.apps.googleusercontent.com ・CFBundleURLTypes: CFBundleURLSchemes に com.googleusercontent.apps.156378956114-avc4msahm1pok3q98b4koasq5foi7g43 を登録済み。
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
以下のことをすべて試したが改善しませんでした。
・Info.plist の URL scheme を何度も再入力
・Bundle Identifier の一致確認(Google Cloud 側と Xcode 側で一致)
・GIDClientID の再設定
・Xcode の Clean Build Folder
・DerivedData 削除
・シミュレータの完全削除 → 再作成
・Google Cloud 側で新規プロジェクトを作成し、OAuth クライアントも作り直した
・ゼロから別の Xcode プロジェクトを作成して再テスト
→ それでも「URL scheme 不足エラー」が100%再現する。
・GoogleSignIn が expected として出す URL scheme と、
Info.plist に登録した URL scheme は文字レベルで完全一致している。
・それでも GoogleSignIn ライブラリ内部の
unsupportedSchemes 判定で毎回落ちる。
・別プロジェクトでもまったく同じエラーが出るため、
設定ミスではなく GoogleSignIn ライブラリの挙動側の問題か、
または環境依存の問題が疑われる。
補足
使用環境は次の通りです。
macOS:Sonoma 14.1
Xcode:16.1
iOS シミュレータ:iOS 18.1
Swift:5.10
GoogleSignIn(SPM):7.1.0
プロジェクト構成:SwiftUI
Google Cloud Console の設定:
・iOS 用 OAuth クライアントID
156378956114-avc4msahm1pok3q98b4koasq5foi7g43.apps.googleusercontent.com
・URL scheme
com.googleusercontent.apps.156378956114-avc4msahm1pok3q98b4koasq5foi7g43
・Bundle ID
com.matsumoto.TokikaneSigninTest
すべて Xcode 側と一致している。
回答1件
あなたの回答
tips
プレビュー