Сегодня хочу поделиться опытом исправления проблемы в библиотеке от Google.
⠀
Предыстория
У нас есть корпоративное приложение MyInnowise (доступно только сотрудникам компании), где для авторизации мы берем google_sign_in. Пользоваться да радоваться бы, но не тут-то было.
Мы столкнулись с проблемой: в Safari на iPhone возникала ошибка 403, если у пользователя добавлен только один личный аккаунт, при этом добавить новый ему не предлагалось. Процесс можно было исправить, только если в настройках удалить аккаунт или добавить второй. Ну такое.
Сама история
Мы узнали, какие изменения надо внести в iOS код библиотеки, ура! Но вот то, как исправленный pod использовать в package, по-прежнему оставалось загадкой. Так что мы собрали целый консилиум Flutter-разработчиков: сначала пытались решить проблему именно на стороне плагина, но потерпели неудачу, т.к. pod файл был закрытым и не содержал открытого кода.
Затем мы заглянули на GitHub, но нашли открытый исходный код только для версий от 6.0.0 и выше - и этого было достаточно, чтобы продвинуть нас в решении проблемы.
У нас появился открытый код библиотеки, и мы смогли внести нужные изменения, добавить promt=select_account параметр. Оставалось только научить Flutter package использовать этот pod.
Мы подключили наш pod вместо оригинального в google_sign_in podspec. И....потерпели неудачу. Увы, код, написанный для Flutter-плагина, умел работать именно с 5.0.0 версией. Мы не сдались и внесли нужные изменения в plugin по гайду миграции ииииии... наш проект наконец-то собрался! После нескольких этапов дебагга и проверки баг наконец был повержен.
Ну и самое главное: нашу версию библиотеки можно найти тут