У меня возникла проблема с переносом старого устаревшего ключа на ключ подписи Google Play. Во время миграции я добавил новый ключ (сохраненный в разделе «Настройка» → «Целостность приложения» → «Подписание приложения») и использовал тот же ключ как ключ подписи и ключ загрузки. Когда я пытаюсь загрузить свое приложение в консоль Google Play, я получаю следующее сообщение, как показано на прикрепленном изображении:
APK-файлы не могут быть подписаны с помощью SDK 23 без устаревшего ключа. Убедитесь, что ваш SDK имеет версию 28 или более позднюю. Ваш APK подлежит ротации со схемой подписи V3, что не >разрешено, если версия minSdk ниже 30.

Настройки внутри файла app/build.gradle.kt:
Код: Выделить всё
compileSdk 35
defaultConfig {
applicationId "com.example.myApp"
minSdkVersion 23
targetSdkVersion 35
versionCode 190
versionName "2.0.3"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
buildConfigField 'String', "PlacePickerApiKey", '"AIzaSyBxPc....KSRFUfK30w"'
}
Знаете ли вы какие-нибудь более простые решения? Я хотел бы полностью отказаться от использования устаревших ключей при разработке приложений.
Попытки решения
Я долго искал решение и нашел только одно, которое, как я не уверен, работает корректно и к тому же очень проблематично (но Google Play это одобряет...). Чтобы загрузить приложение, зашифрованное новым ключом, я отправляю две версии одного и того же приложения в консоль Google.
- apk, зашифрованный устаревшим ключом, со следующими параметрами, установленными в gradle:
Код: Выделить всё
enableV1Signing true
enableV2Signing true
enableV3Signing false
enableV4Signing false
- зашифровано с помощью нового ключа подписи Google Play, где я меняю minSdkVersion на 30.
Подробнее здесь: https://stackoverflow.com/questions/798 ... a-legacy-k
Мобильная версия