Я задавал аналогичный вопрос раньше, но у меня возникли проблемы со входом в Google после публикации моего приложения для внутреннего и закрытого тестирования в магазине Play. Он отлично работает на эмуляторах как для Android, так и для iOS, отлично работает на реальных устройствах, когда я запускаю его с компьютера в режимах отладки и выпуска, но после публикации в магазине Play все ломается. Ошибка, которую я получаю,
MissingPluginException (не найдена реализация для метода init на канале plugins.flutter.io/google_sign_in)
Есть ли что-то конкретное, что мне не хватает? У меня такое чувство, что это одношаговое решение, и я просто не могу его найти.
добавить эту библиотеку в .yaml
google_sign_in: ^0.0.2
затем импортируйте это на экран входа в систему
import io.flutter.plugins.GeneratedPluginRegistrant;
затем добавьте это в функцию onCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GeneratedPluginRegistrant.registerWith(this);
}
Как мне импортировать это на экран входа в систему? Это не дартс, верно?
У меня была та же проблема, что и у вас (такое же сообщение об ошибке при использовании Flutter, возникающее только после магазина приложений), и я смог понять это, найдя аналогичную проблему здесь: https://github.com/flutter/flutter/issues/65334
я добавил
buildTypes {
release {
minifyEnabled false
shrinkResources false
...
в мой файл build.gradle. Вы также можете установить для обоих этих значений значение true и запустить flutter run --release, чтобы воспроизвести проблему локально. Когда вы создаете с помощью flutter build appbundle, он по умолчанию сжимается, а при локальном запуске - нет, поэтому вы не видите проблемы при локальном запуске. Это как-то связано с обрезанием кода входа в Google. Это действительно обходной путь.
Это работает - я потратил ДНИ, пытаясь понять это. Это также решило проблему, из-за которой я даже не мог войти в систему с помощью других методов аутентификации Firebase.
В моем случае я попытался вызвать метод из MainActivity, но в теге активности AndroidManifest.xml было неправильное имя, например:
"io.flutter.embedding.android.FlutterFragmentActivity"
Поэтому я изменил его на
".MainActivity"
У меня была такая же проблема с реакцией, и все, что мне нужно было сделать, это изменить android/app/build.gradle
buildTypes {
release {
minifyEnabled true
к
buildTypes {
release {
minifyEnabled false
синхронизировать и очистить сборку перед повторным запуском
Я также настроил проверенный экран согласия OAuth, исключил входы в facebook/apple — я просто не знаю, что происходит. Все работает так хорошо, прежде чем я выпущу в Play Store!