Генерация APK с различными хранилищами ключей - PullRequest
0 голосов
/ 16 декабря 2018

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

В файле Gradle я добавил раздел signingConfigs, чтобы задать keyAlias, keyPassword, storeFile и storePassword.

Далее в разделе release в buildTypes я установил конфигурацию подписи для каждого варианта.

Затем я создал все варианты.Я получил все apk с правильным содержимым и именами пакетов ... но когда я попытался загрузить их в магазин воспроизведения, я получил ошибку:

Upload failed: You uploaded an APK that is not signed with the upload certificate. 
               You must use same certificate.
               The uploaded certificate has fingerprint "A" and the certificate
               used to sign the APK you uploaded have fingerprint "B".

Теперь я понимаю, что он использовал разные сертификаты .. мойВопрос в том, как я могу это исправить с Gradle?Таким образом, процесс создания APK также будет различать различные сертификаты и будет использовать правильный сертификат для каждого варианта?

Файл Gradle выглядит следующим образом:

android{

    signingConfigs {
        flavorA {
            keyAlias flavorAKeystoreProperties['keyAlias']
            keyPassword flavorAKeystoreProperties['keyPassword']
            storeFile file(flavorAKeystoreProperties['storeFile'])
            storePassword flavorAKeystoreProperties['storePassword']
        }

        flavorB {
            keyAlias flavorBKeystoreProperties['keyAlias']
            keyPassword flavorBKeystoreProperties['keyPassword']
            storeFile file(flavorBKeystoreProperties['storeFile'])
            storePassword flavorBKeystoreProperties['storePassword']
        }

        flavorC{
            keyAlias flavorCKeystoreProperties['keyAlias']
            keyPassword flavorCKeystoreProperties['keyPassword']
            storeFile file(flavorCKeystoreProperties['storeFile'])
            storePassword flavorCKeystoreProperties['storePassword']
        }       
    }


    flavorDimensions("default")
    productFlavors{

        flavorA{
            dimension "default"
            applicationId "com.example.flavor.flavorA"
            signingConfig signingConfigs.flavorAConfig
        }

        flavorB{
            dimension "default"
            applicationId "com.example.flavor.flavorB"
            signingConfig signingConfigs.flavorBConfig
        }

        flavorC{
            dimension "default"
            applicationId "com.example.flavor.flavorC"
            signingConfig signingConfigs.flavorCConfig
        }
    }   

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            productFlavors.flavorA.signingConfig signingConfigs.flavorAConfig
            productFlavors.flavorB.signingConfig signingConfigs.flavorBConfig
            productFlavors.flavorC.signingConfig signingConfigs.flavorCConfig

    }
        debug {
            applicationIdSuffix ".debug"
            minifyEnabled false
        }
    }
}

1 Ответ

0 голосов
/ 06 января 2019

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

...