Хобрук: Ваш путь к мастерству в программировании

Выпуск приложения для установки/обновления apk из Google Play

Ситуация следующая:

У меня есть приложение, которое я опубликовал в магазине Google Play (код версии: 100, название версии 1.100). Я хочу добавить функцию, позволяющую людям обновлять приложение с помощью apk (выпуска) с веб-сайта, а не из Play Store.

НО при тестировании обнаружил следующую проблему:

  • Скачать текущее приложение из магазина (v - 100)
  • после этого попробуйте установить (обновить) с помощью APK, который я компилирую
  • Результат - "Приложение не установлено".

Но если я

  • установить созданный вручную старый APK (точно такой же, как был загружен в Магазин)
  • попробуйте установить созданное вручную обновление APK, которое было загружено в магазин
  • все работает нормально

МОЖЕТЕ ли вы описать, есть ли какие-то ограничения, дополнительные средства проверки безопасности или что-то не так с моей стороны?

28.02.2019

Ответы:


1

Вероятно, вы вошли в систему Подписание приложений Google Play.

Каждое Android-приложение подписывается ключом. Когда телефон пытается установить обновление, оно должно быть подписано тем же ключом, что и исходное приложение. Это сделано для безопасности пользователя. Это остановит создание поддельной версии WhatsApp или Facebook (или вашего приложения) и обманом заставит пользователей установить ее. Плохой разработчик может создать приложение с таким же именем пакета, но не имеет доступа к ключу, что защищает пользователей.

Когда вы доставляете через Google Play App Signing, Google удаляет подпись с помощью вашего ключа («ключ загрузки») и подписывает ее новым ключом Google Play. Это хорошая вещь. Он защитит вас, если вы потеряете ключ загрузки, без него Google ничем не сможет вам помочь.

Но именно поэтому обновление не происходит. Приложение, которое вы создаете вручную, подписано вашим ключом загрузки, поэтому оно не будет обновлять приложение, установленное из Google Play.

Это хорошая вещь. Вы не хотите, чтобы пользователи, которые установили из одного источника (например, Google Play), обновлялись из другого источника, например, загружались с веб-сайта. Это подвергло бы их серьезному риску вредоносных поддельных приложений.

Однако, если вы действительно хотите это сделать, вам не нужно использовать подписку приложений Google Play.

01.03.2019

2

Альтернативное решение:

Вы можете загрузить подписанный apk на консоль Google Play, затем загрузить новый подписанный apk и разместить его на своем веб-сайте или в любом другом месте.

30.05.2020
  • Похоже, эта функция недоступна в новой консоли Google Play. 16.01.2021
  • Новые материалы

    Решения DBA Metrix
    DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

    Начало работы с Блум
    Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...