Поиск…


Настроить build.gradle с настройкой подписи

Вы можете определить конфигурацию подписи, чтобы подписать apk в файле build.gradle .

Вы можете определить:

  • storeFile : файл хранилища ключей
  • storePassword : пароль хранилища ключей
  • keyAlias : ключевое имя псевдонима
  • keyPassword : пароль псевдонима ключа

Вы должны определить блок signingConfigs для создания конфигурации подписи:

android {
    signingConfigs {

        myConfig {
            storeFile file("myFile.keystore")
            storePassword "myPasswork"
            keyAlias "aKeyAlias"
            keyPassword "myAliasPassword"
        }
    }
    //....
}

Затем вы можете назначить его одному или нескольким типам сборки.

android {

    buildTypes {
        release {
            signingConfig signingConfigs.myConfig
        }
    }
}

Определить конфигурацию подписи во внешнем файле

Вы можете определить конфигурацию подписи во внешнем файле как signing.properties в корневом каталоге вашего проекта.

Например, вы можете определить эти ключи (вы можете использовать свои любимые имена):

STORE_FILE=myStoreFileLocation    
STORE_PASSWORD=myStorePassword
KEY_ALIAS=myKeyAlias
KEY_PASSWORD=mykeyPassword

Затем в файле build.gradle:

android {

    signingConfigs {
        release
    }
    
     buildTypes {
        release {
            signingConfig signingConfigs.release
        }
     }
}

Затем вы можете ввести некоторые проверки, чтобы избежать проблем с градиентом в процессе сборки.

//------------------------------------------------------------------------------
// Signing
//------------------------------------------------------------------------------
def Properties props = new Properties()
def propFile = file('../signing.properties')
if (propFile.canRead()) {

    if (props != null && props.containsKey('STORE_FILE') && props.containsKey('STORE_PASSWORD') &&
            props.containsKey('KEY_ALIAS') && props.containsKey('KEY_PASSWORD')) {

        android.signingConfigs.release.storeFile = file(props['STORE_FILE'])
        android.signingConfigs.release.storePassword = props['STORE_PASSWORD']
        android.signingConfigs.release.keyAlias = props['KEY_ALIAS']
        android.signingConfigs.release.keyPassword = props['KEY_PASSWORD']
    } else {
        android.buildTypes.release.signingConfig = null
    }
} else {
    android.buildTypes.release.signingConfig = null
}

Определить переменные среды настройки настройки подписи

Вы можете сохранить переменные среды настройки подписи.
Доступ к этим значениям можно получить с помощью System.getenv("<VAR-NAME>")

В вашем build.gradle вы можете определить:

signingConfigs {
    release {
        storeFile file(System.getenv("KEYSTORE"))
        storePassword System.getenv("KEYSTORE_PASSWORD")
        keyAlias System.getenv("KEY_ALIAS")
        keyPassword System.getenv("KEY_PASSWORD")
    }
}

Определить конфигурацию подписи в отдельном файле градации

Самый простой и чистый способ добавить внешнюю конфигурацию - через отдельный файл Gradle

build.gradle

apply from: './keystore.gradle'
android{
    signingConfigs {
        release {
            storeFile file(keystore.storeFile)
            storePassword keystore.storePassword
            keyAlias keystore.keyAlias
            keyPassword keystore.keyPassword
        }
    }
}

keystore.gradle

ext.keystore = [
    storeFile    : "/path/to/your/file",
    storePassword: 'password of the store',
    keyAlias     : 'alias_of_the_key',
    keyPassword  : 'password_of_the_key'
]

Файл keystore.gradle может существовать в любой точке вашей файловой системы, вы можете указать его местоположение внутри apply from: '' в верхней части вашего файла gradle или в конце основного файла build.gradle проекта.

Как правило, это хорошая идея игнорировать этот файл из системы контроля версий, такой как git, если она находится внутри вашего репо.

Также неплохо предоставить образец keystore.gradle.sample который разработчики, входящие в проект, будут переименовывать и заполнять на своей машине разработки. Этот файл всегда содержался внутри репо в правильном месте.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow