Пользователи, у которых есть APK с кодом версии 1, который предназначен для SDK 23 или выше - PullRequest
0 голосов
/ 01 октября 2018

Я разработал приложение для Android с phonegap. Но мой пользователь не смог установить его из магазина Google Play из-за этой ошибки: ваше устройство несовместимо с этой версией

Я попытался понизить версию, поэтому изменил minSdkVersionот 26 до 17

<preference name="android-minSdkVersion"      value="17"/> 

но это дает ошибку. Что мне делать? Как я могу перейти на 17?

Проблема:

    Users that have the APK with version code 1, which targets SDK 23 or higher,
 will receive an error when they attempt to upgrade to this APK because it targets SDK 17.

Разрешение:

 Ensure that your release includes APKs targeting SDK 23 or higher to which
all users that have the APK with version code 1 can upgrade.

1 Ответ

0 голосов
/ 03 октября 2018

Важно понимать разницу между minSdk и targetSdk, и это немного сложно.

В версии 1 вы устанавливаете minSdk равным 26. Если вы явно не установили targetSdk, это означает, что система также по умолчанию приняла targetSdk, равную 26, чтобы соответствоватьminSdk.Пока все хорошо.

Теперь minSdk представляет минимальную версию устройства Android, на которой вы можете работать.targetSdk представляет версию Android SDK, о которой вы знаете и использовали при разработке приложения.Важное изменение произошло в SDK 23. Android начал поддерживать необязательные разрешения - т. Е. Пользователю приложения не нужно было принимать все разрешения во время установки, вместо этого они могли принимать их при использовании приложения.

Так что всепользователи, которые установили версию 1, не приняли никаких разрешений.Если в версии 2 вы переключились на targetSdk=17 и пользователи обновили приложение, система предположила бы, что они приняли разрешения во время установки (потому что она вернулась к старой модели разрешений), и у пользователя никогда не будет запрашиваться разрешение, что было бы большой дырой в безопасности.

Так что, как только приложение в новой модели разрешений (targetSdk>=23), оно никогда не сможет вернуться назад.

Чтобы ваше приложение работало, вы должнывыполните следующие действия:

  • установите для minSdk значение 17 (или любое другое значение)
  • установите для targetSdk значение 23 или более (вероятно, 26). инструкции по выполнению этого в phonegap приведены здесь
  • , чтобы убедиться, что весь ваш код, использующий разрешения, имеет правильные необязательные запросы разрешений при работе на устройствах с SDK 23 или выше.
...