Исправление неработающего входа в Google в APK-выпуске Flutter Firebase: методы и примеры кода

Чтобы решить проблему, из-за которой вход в Google не работает в APK-версии Flutter Firebase, вы можете попробовать несколько способов. Вот несколько возможных решений с примерами кода:

  1. Проверьте отпечатки SHA-1 и SHA-256:

    • Убедитесь, что вы добавили правильные отпечатки SHA-1 и SHA-256 вашего APK-файла выпуска в консоль Firebase.
    • Чтобы получить отпечатки пальцев, вы можете использовать в терминале следующую команду:
      keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
    • Обновите отпечатки пальцев в консоли Firebase в настройках вашего проекта.
  2. Обновить зависимости:

    • Убедитесь, что в вашем файле 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
  3. Настройте вход в 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>
  4. Конфигурация 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. { *; }
  5. Тестирование на физических устройствах:

    • Вход в Google может не работать на устройствах-эмуляторах из-за отсутствия сервисов Google Play. Проверьте свою версию APK на физических устройствах, чтобы убедиться в ее правильной работе.