Релиз Flutter apk не принят консолью Google Play - PullRequest
0 голосов
/ 24 февраля 2019

Я создал ключ и хранилище ключей и подписал свой apk, следуя инструкциям шаг за шагом от официальной страницы флаттера .

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

"Вы загрузили комплект приложений APK или Android, который был подписан в режиме отладки. Вам необходимо подписать комплект приложений APK или Android в режиме выпуска"

Подобный вопрос задавался ранее, но он не решил мою проблему.

Вот соответствующая часть моего приложения / build.gradle:

android {
compileSdkVersion 28

lintOptions {
    disable 'InvalidPackage'
}

defaultConfig {
    // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
    applicationId "my.package.name"
    minSdkVersion 16
    targetSdkVersion 28
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
    //testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

signingConfigs {
    release {
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile file(keystoreProperties['storeFile'])
        storePassword keystoreProperties['storePassword']
    }
}

buildTypes {
    release {
        signingConfig signingConfigs.release

        minifyEnabled true
        useProguard true

        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

Вот скриншот моих версий Android Studio (красный SDK для Android не имеет значения.):

введите описание изображения здесь

Мой файл output.json:

[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0.0","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}]

Ответы [ 4 ]

0 голосов
/ 04 июля 2019

где были найдены эти build-tools-pathsdkvesion во флаттере

0 голосов
/ 05 марта 2019

Нет предложений, похоже, работает.Затем,

flutter clean

и все проблемы были решены.Я мог создать и apk либо через Android Studio или из командной строки.Спасибо ВикеС и Харше пуликоллу

0 голосов
/ 21 апреля 2019

flutter clean у меня тоже не сработало.Поэтому я вручную подписал apk, и он был принят консолью Google Play.Здесь можно найти указания https://developer.android.com/studio/publish/app-signing#sign-manually

Как вручную подписать apk

Чтобы вручную подписать apk, вам нужно выполнить следующие команды в терминале o в командной строке Windows.

1 - Убедитесь, что apk подписан с помощью ключей отладки:

<build-tools-path>/<sdk-vesion>/apksigner verify --print-certs app-release.apk (замените "app-release.apk" на ваше имя файла apk "

Если он подписан с помощью ключей отладки, результат будет похож на

Signer #1 certificate DN: C=US, O=Android, CN=Android Debug
Signer #1 certificate SHA-256 digest: 384cf54f892877ea6d934bbc335bf3aa61b8dd3d89e27feb49c0bc7e62b0bbb7
Signer #1 certificate SHA-1 digest: c7a8384ff8fe2d1e99dbdba45db93180ed53b9ff
Signer #1 certificate MD5 digest: ca13ad2688257283319bf2596f360f8c

2 - Запустите zipalign, чтобы выровнять первый байт и уменьшить использование ОЗУ

<build-tools-path>/<sdk-vesion>/zipalign -v -p 4 app-release.apk app-aligned.apk

В нем будут перечислены файлы и завершенос сообщением Verification succesful.

3 - Запустите appsigner, чтобы подписать приложение:

<build-tools-path>/<sdk-vesion>/apksigner sign --ks <path to .jks file> --out app-signed.apk app-aligned.apk

Он запросит пароль хранилища ключей и завершит работу без вывода сообщений.

4 - Убедитесь, что он подписан вашими ключами:

<build-tools-path>/<sdk-vesion>/apksigner verify --print-certs app-signed.apk

Если он подписан правильно, результат будет аналогичен первому шагу, но вместо этого«Отладка Android» будет выводить данные вашего сертификата.

0 голосов
/ 24 февраля 2019

Вам нужно выбрать опцию release при сборке APK

Для Windows

enter image description here

для Apple

enter image description here

...