Вход в Google не работает после публикации в магазине воспроизведения
Я прошел этот, и, насколько это происходит, я сделал это.
![]()
Но когда я установил приложение из магазина воспроизведения, я не могу войти с помощью кнопки google sign in
.
Я использовал Firebase для входа в google. Когда я нажимаю кнопку входа в систему, выбирается опция выбора учетной записи, но затем она не вписывается и ничего не делает.
Итак, где, возможно, я ошибаюсь?
Ответы
Ответ 1
Когда вы загружаете apk в магазин воспроизведения, тогда в магазине создается новый ключ SHA1 с именем " Сертификат подписания приложения". Вы получаете этот SHA1 и сохраняете свою консоль или учетную запись firebase (по мере необходимости).
Новый SHA1 будет найден в Освобожденном управлении → Sigining приложения на вашей консоли воспроизведения.
[
]
Ответ 2
Обновление: Google изменил поведение загрузки APK, проверьте ответ ниже!
Релиз APK и отладка APK имеет разные SHA1 и различные ключи API для служб google. Оба они должны быть добавлены в Firebase Console → Настройки проекта. Затем загрузите google-services.json
отсюда, добавьте его в проект и перекомпилируйте с хранилищем ключей выпуска, используя опцию "Build signed APK". Это должно работать
Ответ 3
Проблема возникла, когда для моего приложения была включена подпись приложения Google Play. Подписание приложения Google Play изменяет отпечаток сертификата SHA-1 (с того, что находится в моем хранилище ключей) на собственный отпечаток сертификата SHA-1.
Исправление:
- Goto https://play.google.com/apps/publish/
-
Нажмите ваше приложение >> Управление релизами >> Подписание приложения.
Вы увидите "Сертификат подписи приложения" и "Загрузить сертификат"
- Скопируйте SHA-1 из "Сертификата подписи приложения". (ТОП ОДИН)
- Goto https://console.firebase.google.com/
-
Нажмите ваше приложение >> Настройки [Значок коробки передач справа от обзора проекта] (вверху экрана) >> Настройки проекта >> Общие [вкладка] >> Добавить fingerprint
- Вставьте сертификат подписи приложения SHA-1. Сохранить.
Все исправлено!
Ответ 4
Существует три типа SHA1 для жизненного цикла приложения, когда вы используете firebase
- -debug SHA1
- -release SHA1
- -signing SHA1 (он поступает из магазина воспроизведения)
Вам нужно добавить подпись SHA1 в firebase после публикации вашего приложения здесь. Я прикрепляю два снимка экрана, пожалуйста, посмотрите. Должны быть требуются красные маркированные сертификаты ![enter image description here]()
![enter image description here]()
Ответ 5
Проблема происходит, потому что
1) когда вы создаете/публикуете приложение через консоль Google Play, есть опция для включения подписки на Google Play. если вы включите его, будет отображаться
Для этого приложения включена подписка на Google Play.
![enter image description here]()
то ваши данные о сертификате загрузки будут изменены, и вам необходимо переписать данные сертификата SHA-1 и т.д. в соответствующих местах.
2) Вы предоставили данные хранилища отладки/данные сертификата SHA-1 вместо данных сертификата RELEASE
3) при генерации сертификатов.
Решение
1) Перейдите в консоль Google Play
Управление ретрансляцией → подписка на приложение
то вы можете увидеть два типа сертификата
1- Загрузить сертификат (сертификат приложения, предоставленный при создании подписанного apk)
2- Сертификат подписания приложения (поскольку вы включили подписание Google Play App, поэтому они предоставили новые данные сертификата для вашего опубликованного apk)
вам необходимо изменить информацию о загруженных сертификатах с новыми сведениями, предоставленными в Google Play, где бы вы их раньше не использовали. например, Интеграция входа google (изменение SHA-1 клиента OAuth), вход в facebook (клавиша изменения Хэш (сгенерируйте хэш ключа, используя SHA-1, используйте эту ссылку или скопируйте хэш ключа, предоставленный экраном ошибки входа в facebook), firebase и т.д.
2) обеспечить выпуск SHA-1/keyHash
создавать/использовать данные Keystore о подписанных apk.
используя командную строку:
google/firebase SHA-1:
keytool -exportcert -keystore path-to-debug-or-production-keystore -list -v
хэш хэнд-релиза facebook:
keytool -exportcert -alias <user alias name> -keystore < keystore path> | <openssl-path> sha1 -binary | <openssl-path> base64
если вас попросят ввести пароль, введите свой подписанный пароль kkystore apk.
Ответ 6
Чтобы добавить существующие ответы, как только у вас есть новый SHA1:
На странице https://console.firebase.google.com:
- Выбрать проект
- Обзор проекта
- Настройки проекта
- ДОБАВИТЬ FINGERPRINT - введите SHA1 в отпечаток сертификата
- Сохранить
Ответ 7
Если вы включили "Подписание приложения Google Play" при публикации приложения, вы, вероятно, имеете дело с двумя отпечатками пальцев:
Тот, который приходит из вашего локального хранилища ключей (keytool -exportcert -keystore path-to-production-keystore -list -v), известный как "сертификат загрузки".
Новый, созданный Google при включении подписи ("сертификат подписи").
Конфликт с этой ситуацией заключается в том, что вы можете получить два идентификатора клиента OAuth 2.0:
Тот, который вы создали до публикации своего приложения (и до включения подписи Google), который действительно является "правильным".
НОВЫЙ, созданный Google при включении подписи Google.
Вы можете проверить этот факт в: Консоль Google Play → Службы игр → Выберите приложение → Сведения об играх → Проект API Console → Учетные данные → Идентификаторы клиента OAuth 2.0
РЕШЕНИЕ
Чтобы войти в систему Google (и все связанные с ней функции Игровых сервисов), мне пришлось исправить fingerprint моего ранее существовавшего идентификатора клиента OAuth2 (который я создал до публикации своего приложения).
Найдите "правильный" идентификатор клиента OAuth 2.0: Консоль Google Play → Службы игр → Выберите приложение → Связанные приложения → Выберите приложение → Обратите внимание на "Идентификатор клиента OAuth2" внизу.
Найдите сертификат "Подписание": Консоль Google Play → Службы игр → Выберите приложение → Сведения об игре → Проект API Console → Учетные данные → Идентификаторы клиента OAuth 2.0 → "Клиент Android для XXXXXX (автоматически создается Служба Google) "-> Обратите внимание на значение (xx: xx: xx: etc....) Комментарий: для повторного использования этого значения в моем другом идентификаторе клиента OAuth 2.0 мне пришлось заменить его каким-нибудь фиктивным числом, В противном случае вы получите ошибку: "Сертификат уже используется в каком-то другом проекте".
Перейдите к существующему идентификатору клиента OAuth2: Консоль Google Play → Службы игр → Выберите приложение → Сведения об играх → Проект API Console → Учетные данные → Идентификаторы клиента OAuth 2.0 → Выберите "Идентификатор клиента OAuth 2.0" с шага 1. Обновите значение сертификата с шага 2.
Это решило мою проблему. Мультиплеер отлично работает в моем приложении (Match4App).
Ответ 8
Могу ли я добавить отпечаток SHA-256 вместо отпечатка SHA-1. Будет ли это работать? Фактически я создал проект с использованием моего имени пакета и SHA1, упомянутого в подписи приложения, и позже удалил этот проект. Скажите, пожалуйста, если SHA-256 будет работать, а если нет, то какой-нибудь другой способ обхода.
Ответ 9
просто зайдите в понравившуюся учетную запись Google play console> и создайте ссылку на свой проект Firebase. Теперь все работает отлично!