Flutterアプリ開発中に「Unhandled Exception: PlatformException(sign_in_failed Error 10: )」というエラーに遭遇した場合、サインイン処理に問題が発生していることを示しています。このエラーは主にGoogle Sign-Inを実装する際に発生することが多く、適切な対処が必要です。以下に、このエラーの一般的な原因と解決策をご紹介します。
1. Google Cloud ConsoleでのOAuth同意画面の設定確認
このエラーの最も一般的な原因の1つは、Google Cloud ConsoleでのOAuth同意画面の設定が不適切であることです。以下の手順で確認と修正を行いましょう。
1. [Google Cloud Console](https://console.cloud.google.com/)にアクセスし、プロジェクトを選択します。
2. 左側のメニューから「APIとサービス」→「OAuth同意画面」を選択します。
3. アプリケーションの種類が正しく設定されているか確認します(内部、外部など)。
4. 承認済みドメインが正しく設定されているか確認します。
5. テストユーザーが適切に追加されているか確認します(外部アプリケーションの場合)。
2. SHA-1フィンガープリントの確認と更新
SHA-1フィンガープリントが正しくGoogle Cloud Consoleに登録されていないと、このエラーが発生する可能性があります。
1. ターミナルで以下のコマンドを実行してSHA-1フィンガープリントを取得します:
```
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
```
2. Google Cloud Consoleの「認証情報」ページで、取得したSHA-1フィンガープリントが正しく登録されているか確認します。
3. 登録されていない場合は、新しいフィンガープリントを追加します。
3. google_sign_in パッケージのバージョン確認
使用している`google_sign_in`パッケージのバージョンが最新であることを確認しましょう。`pubspec.yaml`ファイルを開き、以下のように最新バージョンを指定します:
dependencies:
google_sign_in: ^6.1.0 # 最新バージョンを指定その後、ターミナルで`flutter pub get`を実行してパッケージを更新します。
4. Androidマニフェストファイルの確認
`android/app/src/main/AndroidManifest.xml`ファイルに、必要な権限が追加されているか確認します:
<uses-permission android:name="android.permission.INTERNET"/>5. Gradle設定の確認
`android/app/build.gradle`ファイルで、適切なGoogle Play Servicesのバージョンが指定されているか確認します:
dependencies {
implementation 'com.google.android.gms:play-services-auth:20.5.0'
}6. キャッシュのクリアとリビルド
時には、単純にプロジェクトのキャッシュをクリアしてリビルドすることで問題が解決することがあります:
1. ターミナルで以下のコマンドを実行します:
```
flutter clean
flutter pub get
```
2. プロジェクトを再ビルドします。
7. エミュレータではなく実機でのテスト
エミュレータ上で問題が発生する場合、実機でテストすることで解決できることがあります。実機でのテストを試みてください。
これらの手順を順番に試していくことで、多くの場合「Unhandled Exception: PlatformException(sign_in_failed Error 10: )」エラーを解決できます。それでも問題が解決しない場合は、Flutterの公式フォーラムやStack Overflowなどのコミュニティで詳細な状況を説明して助言を求めることをおすすめします。
エラーの解決に時間がかかる場合もありますが、根気強く取り組むことで必ず解決策が見つかります。Flutterの開発を楽しみ、素晴らしいアプリを作成してください!