Ключ Google Maps API работает в версии Release при боковой загрузке, не работает при публикации

У меня есть приложение, которое использует API Карт, у меня есть ключ отладки и выпуска для API. Все это прекрасно работает при боковой загрузке. Ключ Release работает с релизной сборкой. Я загрузил Release APK в консоль Google Play и выпустил выпуск для внутреннего тестирования. Я установил из магазина, и он действует так, как будто ключ API не годится.

Я столкнулся с рядом подобных проблем здесь, на сайте, и даже попытался жестко закодировать ключ выпуска в манифесте, и во всех случаях он отлично работает при боковой загрузке, но не при установке через Google Play Store.

Я подключил телефон к анализатору журнала и выполнил ряд операций с картой, чтобы попытаться понять, в чем проблема, но единственные два сообщения, которые я получил в журнале, указывали на то, что Map API работает, хотя у меня не отображалась и не отображалась карта. это действовало так, как будто ключ API отсутствовал или недействителен. Обратите внимание: предупреждение об устаревании возникло, когда я перешел со стандартного на спутниковый, я не использую внутреннюю поддержку напрямую. Сообщение о версии пакета API появилось при загрузке действия.

Вот две записи журнала: 02-03 09:23:07.550 15809-15809/? W/Google Maps Android API: уведомление об устаревании: в будущем выпуске в помещении больше не будет поддерживаться на спутниковых, гибридных картах или картах типа местности. Даже если в помещении не поддерживается, isIndoorEnabled() продолжит возвращать значение, установленное с помощью setIndoorEnabled(), как и сейчас. По умолчанию setIndoorEnabled имеет значение «истина». Примечания к выпуску API (https://developers.google.com/maps/documentation/android-api/releases) сообщит вам, когда поддержка в помещении станет недоступна для этих типов карт.

02-03 09:30:24.319 15809-15809/? I/Google Maps Android API: версия пакета сервисов Google Play: 14799019

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


person Scott    schedule 03.02.2019    source источник


Ответы (2)


как это звучит, вы должны добавить отпечаток фактического «ключа разблокировки» (называемого «ключом подписи приложения» на показанной схеме) к ограничениям используемого ключа Maps API. «Ключ загрузки» — это что-то другое, когда дело доходит до подписи v2 (это один ключевой отпечаток, который, скорее всего, используется при боковой загрузке). чтобы этот 1 ключ API Карт работал при любых условиях, к нему должны быть добавлены 3 ключевых отпечатка пальца.

подписание приложения v2

источник изображения: документация.

person Martin Zeitler    schedule 03.02.2019
comment
Спасибо, это то, чего мне не хватало. Я перешел к экрану в консоли и добавил ключ подписи. Разработчик подписывает его ключом загрузки, поэтому он работал при боковой загрузке. - person Scott; 04.02.2019
comment
Ребята большое спасибо за это! Я рвал на себе волосы из-за того, почему это не работает для меня, у меня была точно такая же проблема. Это решение сработало и для med! - person Jappe; 30.09.2020
comment
Спасибо... я понятия не имел, что не так!! Для более удобного доступа перейдите к консоли Google Play > ваше приложение > Настройка > Целостность приложения. там вы найдете сертификат ключа подписи приложения и сертификат ключа загрузки SHA-1... добавьте оба в API карт;) - person Esam Sherif; 21.06.2021

Вы зарегистрированы в программе подписания приложений через Google Play с помощью ключа загрузки? Если это так, Google Play повторно подписывает ваш APK, прежде чем выпустить его для пользователей, что объясняет, почему он работает локально, но не работает при публикации через Play.

Вы можете проверить, зарегистрированы ли вы, перейдя на страницу подписания приложений в Play Console. Если да, то вам нужно внести сертификат подписи приложения в белый список в разделе учетных данных Google Maps API облачной консоли.

Дополнительную информацию о подписывании приложений см. на странице https://support.google.com/googleplay/android-developer/answer/7384423

person Pierre    schedule 03.02.2019
comment
Вы оба получили правильный ответ, к сожалению, я могу выбрать только один в качестве ответа, а в другом ответе было больше деталей и больше голосов. - person Scott; 04.02.2019
comment
@ Скотт, они также были опубликованы почти одновременно; будет голосовать. - person Martin Zeitler; 04.02.2019