Сгенерированный apk не подписан после обновления плагина gradle - PullRequest
0 голосов
/ 30 марта 2020

Итак, мой проект работал нормально, пока я не обновил плагин Gradle android до версии 3.6. Теперь, когда я генерирую apk релиза через «Generate signature APK» в Android Studio или создаю apk релиза на нашем CI, он генерирует apk без знака. Я использую инструмент jars "jarsigner", чтобы проверить это (jarsigner --verify --certs D: \ app-release.apk), и он говорит мне, что "jar is unsigned". У меня есть файл конфигурации подписи в моем build.gradle:

signingConfigs {
    release {
        storeFile file(signing.keyPathRetail)
        storePassword signing.storePasswordRetail
        keyAlias signing.keyAliasRetail
        keyPassword signing.keyPasswordRetail
    }
}

Расположение хранилища ключей и все пароли верны. Само хранилище ключей не менялось годами. Точно такой же проект генерирует действительный подписанный apk, когда я возвращаю com. android .tools.build: зависимость gradle обратно в версию 3.4.2.

Я обнаружил, что если я открою сгенерированный apk в 7-zip, в папке META-INF отсутствуют файлы "CERT.RSA" и "CERT.SF" (в них есть файл apk, созданный в версии 3.4.2 для плагинов gradle), но я понятия не имею почему.

1 Ответ

0 голосов
/ 30 марта 2020

Просто сразу go: Построить - Создать подписанный APK - Выберите хранилище ключей и ключ, и вы в пути.

Это сработало для меня.

Попробуйте выполнить следующие действия: -

В Android Перейти к файлу Studio> Структура проекта и снять отметку с «Использовать встроенный JDK», затем нажать «ОК»

Перейти к «Настройки компьютера» (настройки системы) (клавиша win + pause), затем go Расширенные настройки системы> Переменные среды. если JAVA_HOME отсутствует, добавьте его и укажите путь к установленному JDK. Если вы не можете найти прямой подход к изменению пути JDK, сделайте следующее (для последнего шага), НО УБЕДИТЕСЬ, ЧТО ВЫ ДЕЛАЕТЕ РЕЗЕРВНОЕ КОПИРОВАНИЕ ПЕРЕД ЭТИМ.

Чтобы убедиться, что вы направляете, перейдите к представлению проекта, удалить папки «.grade», «.idea», «capture», «gradle» из папок root и «build», «release», «lib» из «app», оставив «sr c» является. Удалите root .iml и не удаляйте файл app.iml. Перестройте проект и создайте подписанный пакет

.
...