Карты, невидимые в playstore build [duplicate]

Если вы можете использовать psutil , то это отлично работает:

import subprocess

import psutil


def kill(proc_pid):
    process = psutil.Process(proc_pid)
    for proc in process.children(recursive=True):
        proc.kill()
    process.kill()


proc = subprocess.Popen(["infinite_app", "param"], shell=True)
try:
    proc.wait(timeout=3)
except subprocess.TimeoutExpired:
    kill(proc.pid)

6
задан exrezzo 21 June 2017 в 09:16
поделиться

5 ответов

Наконец-то я решил, что проблема в том, что файл google_maps_api.xml, предоставленный api, не был загружен в релиз, поэтому i

мне понравилось:

buildTypes {
    debug {
        manifestPlaceholders = [mapsKey: "AIzaSyB8o9KzQ5YN8U8AFS************"]
    }
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        manifestPlaceholders = [mapsKey: "AIzaSyApLacqgkdIR7uEpcf*****************"]
    }
}

, а затем в моем AndroidManifest

<meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="${mapsKey}" />

Ссылка: https://stackoverflow.com/a/33917692/3235560

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

Очень спасибо Zuhad и Andy Developer за вдохновение.

1
ответ дан exrezzo 16 August 2018 в 03:35
поделиться

Вот ответ, почему вы не видите карту Google.

Недавно я загрузил APK в магазин Google Play, и я столкнулся с такой же проблемой после проверки Play Console. Я нашел решение для эта проблема.

У них нет проблем с вашим ключом, но проблема с вашим SHA-1. Вы подписали свой APK с вашим SHA-1, который прекрасен, а затем загрузите APK, это тоже прекрасно.

Но согласно новому обновлению Play Console при подписании вашего APK с SHA-1 и загрузке APK он подписан только вами, но согласно новому обновлению он также подписан Google Play для большей безопасности. Посмотрите здесь часть раздела Google Play:

При подписании приложения Google Play: вы подписываете свое приложение с помощью своего загрузочного ключа. Затем Google проверяет и удаляет подпись подписи для загрузки. Наконец, Google повторно подписывает приложение с помощью оригинального ключа подписи приложения, который вы предоставили, и доставляет ваше приложение пользователю.

Здесь вы можете ссылаться на .

Теперь ответ на ваш вопрос: После успешной загрузки APK вы можете видеть, что в разделе с двумя SHA-1 1-й SHA-1 Google создал свой собственный, а второй SHA-1 - ваш.

Итак, просто скопируйте Google SHA-1 и вставьте его на консоль, где вы создаете ключ API карты Google.

22
ответ дан Andy Developer 16 August 2018 в 03:35
поделиться
  • 1
    Спасибо чувак ! Я три дня пытался сломать голову, пытаясь понять это. Несмотря на то, что там было тонну ответов, требующих изменить ключ sha1, это было четким, понятным и точным. Спасибо за вашу помощь. – user669444 12 July 2017 в 02:32
  • 2
    @AndyDeveloper Спасибо, человек ... ты действительно меня спас. Я буквально удаляю свой проект из Firebase и Google Console и воссоздаю его & amp; настройте его снова, но это не имеет никакого значения. Подогревает ваш ответ. – Purvik Rana 3 September 2017 в 18:28
  • 3
    @AndyDeveloper, это помогает мне много, спасибо. – Abhishek Pandya 5 September 2017 в 10:08
  • 4
    Должен сказать, вы спасли мою жизнь: D – Hardik Patel 31 October 2017 в 12:16
  • 5
    ты мой герой :) – Appyx 21 February 2018 в 20:36

Типы сборки отладки и выпуска вашего приложения подписаны двумя разными ключами.

Вам необходимо зарегистрировать оба ключа в Картах Google и Facebook для доступа к их услугам

0
ответ дан Robert Estivill 16 August 2018 в 03:35
поделиться
  • 1
    Вот что я сделал. Я также загрузил из консоли Play Store сертификат развертывания, и я выполнил следующую команду cat deployment_cert.der |openssl sha1 -binary | openssl base64, и он дал мне ключ api для входа в Facebook, который теперь работает, но я не могу заставить Maps работать. В файле под /app/src/release/res/values/google_maps_api.xml я добавил ключ, предоставленный из консоли Maps, в котором я также зарегистрировал отпечаток sha1 из своего собственного сертификата (сгенерированного из студии android) и отпечатка sha1 из play store console, но он не работает – exrezzo 21 June 2017 в 09:39
  • 2
    Является ли ваша сборка отладки использующей другой applicationId / package, чем сборка релиза? В зависимости от этого вам может потребоваться добавить еще одну запись в конфигурацию ключа API карт Google – Robert Estivill 21 June 2017 в 09:45
  • 3
    я генерирую debug api key его work.when я интегрирую keypedapi ключ для публикации его или работы, пожалуйста, помогите мне. После создания signes apk и еще раз сгенерируйте подписанные ключи google maps api с подписанным файлом хранилища ключей и псевдонимом. – Harsha 26 February 2018 в 14:13

С вдохновением от @Andy Developer, я смог отобразить карту после того, как приложение было загружено в Google Play. Это были следующие шаги:

  1. Загрузите приложение в Google Play (файл APK)
  2. После того, как приложение было отправлено и одобрено, выберите свое приложение из Google Play Console
  3. Перейти к средствам разработки -> Управление выпуском -> Подписание подписки

  1. Скопируйте первый сертификат SHA-1, который Google Play выпустил после загрузки приложения.
  2. Перейти к Консоль Google и выберите ваш проект.
  3. Выберите ваш API-ключ, ограничите свой ключ и вставьте SHA-1 после имени пакета.

  1. Нажмите Сохранить , подождите несколько минут. и ваше приложение должно показывать Карты Google.
16
ответ дан ymerdrengene 16 August 2018 в 03:35
поделиться

Чтобы Facebook генерировал хеш-ключ, используйте приведенный ниже код:

try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "YOUR PACKAGE NAME",
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (PackageManager.NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }

Как только вы получите хэш-код, вставьте его в консоль разработчика Facebook и продвигайтесь вперед

. помогает :)

0
ответ дан Zuhad 16 August 2018 в 03:35
поделиться
  • 1
    дело в том, что ключи api для отладки и выпуска различны, на самом деле я написал в файле gradle buildTypes { debug { manifestPlaceholders = [google_map_key: "AIzaSyB8o9KzQ5YN8U8AFSxbTJLheFiubF****"] } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' manifestPlaceholders = [google_map_key: "AIzaSyApLacqgkdIR7uEpcf7EDuGvsQlgh*****"] signingConfig signingConfigs.config } – exrezzo 21 June 2017 в 09:51
  • 2
    даже если я добавлю, как вы сказали, для каждого ключа отлаживают sha1 и выпускают sha1, он не работает – exrezzo 21 June 2017 в 09:52
  • 3
    Лучше создайте новый ключ API и попытайтесь реализовать. Только ключ API - это решение, которое я надеюсь – Zuhad 21 June 2017 в 11:12
Другие вопросы по тегам:

Похожие вопросы: