Карта Google не отображается в режиме выпуска

Я использую API Карт Google в режиме отладки и все время работаю нормально, пока не перешел в режим выпуска. Поправьте меня, если я ошибаюсь, нам нужен отдельный ключ API для Google Maps, если мы хотим выпустить наше приложение.

введите описание изображения здесь

Я сделал следующее:

  • Создан новый ключ API
  • включил платежный аккаунт в моем проекте в GCP

Чтобы извлечь ключ SHA-1, я перешел к project/android/app, где вижу myapp.keystore и запускаю команду keytool -list -v -keystore mypp.keystore.

После создания API_KEY я перешел к project/android/app/src/main/AndroidManifest.xml и изменил ключ

  <meta-data
    android:name="com.google.android.geo.API_KEY"
    android:value="xxxxxx"/>

Что еще могло быть упущено? заранее спасибо

Обратите внимание, что это React-Native проект, и нет разделенных Release и Debug каталога / пути для настройки APIKEY


person Isaac    schedule 20.09.2018    source источник
comment
comment
вы используете Mac или систему Windows?   -  person Quick learner    schedule 20.09.2018
comment
@Quicklearner: Mac   -  person Isaac    schedule 20.09.2018
comment
@SolulabInc .: Это отличается от этого вопроса, потому что я не вижу ни Release, ни Debug папки в src, которые, как я полагал, объединены React Native   -  person Isaac    schedule 20.09.2018
comment
проверь мой ответ дорогой :)   -  person Quick learner    schedule 20.09.2018


Ответы (2)


Сделай это

а) Откройте студию Android. Сборка -> Создать подписанный APK и нажать Далее

б) Скопируйте свой keystore путь и ключ alias.

введите описание изображения здесь

c) Теперь откройте терминал и введите:

keytool -list -v -keystore "key store path" -alias "key alias"

г) Введите свой ключевой пароль, и он распечатает ваш релиз SHA1.

e) Затем используйте этот SHA1 в проекте Google, вставьте его туда и сохраните изменения, теперь снова запустите приложение, чтобы загрузить карту.

Обновлять:-

Чтобы сгенерировать debug ключ Сделайте следующее

а) Щелкните вкладку Gradle на правой панели параметров.

б) Заходим в корневую папку -> Задачи -> android -> SigningReport

c) Дважды щелкните, это будет построено с подписанием отчета и опубликует в нижней части ваш SHA1.

person Quick learner    schedule 20.09.2018
comment
Я уже упоминал, что у меня есть хранилище ключей myapp.keystore, запустите команду keytool -list -v -keystore mypp.keystore покажет мне SHA-1 хранилища ключей - person Isaac; 20.09.2018
comment
Ваш ответ предлагает мне повторно создать новое хранилище ключей, но трудно убедить, что проблема исходит из неисправного хранилища ключей. - person Isaac; 20.09.2018
comment
вы должны перекрестно проверить это, дорогая :), и вы должны сгенерировать ключ Release и debug для перекрестной проверки на вашем конце - person Quick learner; 20.09.2018

Для версий DEBUG и RELEASE должны быть разделены ключи. Если вы создадите Google Maps Activity в Android Studio, будут созданы отдельные файлы ресурсов google_maps_api.xml со значением API_KEY. Как видите, отладочная и повторная версии имеют разные SHA-1 certificate fingerprint, а это значит, что их ключи не должны быть одинаковыми.

Конечно, это означает, что указанный код в манифесте следует заменить на ссылку на ресурсы.

<meta-data
    android:name="com.google.android.geo.API_KEY"
    android:value="@string/google_maps_key"/>

И ключевые файлы должны находиться в следующих каталогах:

src/debug/res/values/google_maps_api.xml

src/release/res/values/google_maps_api.xml

person Ircover    schedule 20.09.2018
comment
Большое спасибо за попытку помочь. Я понимаю вашу точку зрения, но позвольте мне сказать, что я просто пытаюсь заставить его работать для минимального выпуска. Я использовал SHA-1 certificate fingerprint версии RELEASE для создания нового API_KEY, разве этого недостаточно? - person Isaac; 20.09.2018
comment
Вы сказали, что карты работают в режиме отладки. Это означает, что ваш ключ создан для отладки. Или вы говорите, что уже создали ключ выпуска, и он не работает? - person Ircover; 20.09.2018
comment
В период разработки карта работала. Теперь, когда я сосредоточился только на выпуске приложения, я не тестировал этот новый ключ в режиме отладки. - person Isaac; 20.09.2018
comment
Главное - использовать ключ отладки в отладочной версии и ключ выпуска в версии выпуска. Я добавил в свои каталоги ответов для файлов ресурсов, поэтому, если у вас их все еще нет, вы можете создать. - person Ircover; 20.09.2018
comment
Я знаю о разных путях между отладкой и выпуском. Однако это кроссплатформенный проект ReactNative. Путь для собственного Android обрабатывается RN, и я не вижу ни пути отладки, ни пути выпуска. Есть только стандартный AndroidManifest.xml - person Isaac; 20.09.2018