Чтобы решить проблему, из-за которой вход в Google не работает в APK-версии Flutter Firebase, вы можете попробовать несколько способов. Вот несколько возможных решений с примерами кода:
-
Проверьте отпечатки SHA-1 и SHA-256:
- Убедитесь, что вы добавили правильные отпечатки SHA-1 и SHA-256 вашего APK-файла выпуска в консоль Firebase.
- Чтобы получить отпечатки пальцев, вы можете использовать в терминале следующую команду:
keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore - Обновите отпечатки пальцев в консоли Firebase в настройках вашего проекта.
-
Обновить зависимости:
- Убедитесь, что в вашем файле
pubspec.yamlуказаны последние версии зависимостей Firebase и Google Sign-In. Запуститеобновление Flutter pub, чтобы обновить зависимости. - Вот пример того, как должны выглядеть зависимости
pubspec.yaml:dependencies: flutter: sdk: flutter firebase_core: ^1.0.4 firebase_auth: ^3.3.0 google_sign_in: ^5.2.1
- Убедитесь, что в вашем файле
-
Настройте вход в Google:
- Убедитесь, что вы правильно настроили вход в Google как в проекте Firebase, так и в приложении Flutter.
- Убедитесь, что в консоли Firebase включен поставщик входа в Google.
- В вашем приложении Flutter добавьте необходимые конфигурации в файлы
AndroidManifest.xmlиInfo.plist. - Вот пример необходимых конфигураций в
AndroidManifest.xml:<application ...> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id" /> <meta-data android:name="com.google.android.gms.games.unityVersion" android:value="@string/unity_version" /> ... </application>
-
Конфигурация Proguard:
- Если вы используете Proguard для обфускации кода, обязательно добавьте необходимые правила, чтобы сохранить нетронутыми необходимые классы и методы входа в Google.
- Откройте файл
proguard-rules.proи добавьте следующие правила:-keep class com.google.android.gms.auth.api.signin. { *; } -keep class com.google.android.gms.auth.api.signin.internal. { *; }
-
Тестирование на физических устройствах:
- Вход в Google может не работать на устройствах-эмуляторах из-за отсутствия сервисов Google Play. Проверьте свою версию APK на физических устройствах, чтобы убедиться в ее правильной работе.