Вот пошаговый шаг, который я взял, чтобы перенести оба моих ключа из файла gradle.build в файл, который не будет включен в какие-либо сборки или репозиторий.
1)Создайте свойство gradle.properties (если у вас его еще нет).
Место для этого файла зависит от операционной системы:
/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)
2) Добавить запись, указывающую yourprojectname.properties
файл. (пример для ОС Windows)
yourprojectname.properties=c:\\Users\\<username>\\signing\\yourprojectname.properties
3) Создать yourprojectname.properties
файл в папке, указанной на шаге 2 со следующей информацией:
keystore=C:\\path\\to\\keystore\\yourapps.keystore
keystore.password=your_secret_password
4) Измените файл gradle.build
указать к файлу yourprojectname.properties
, чтобы использовать переменные.
if(project.hasProperty("yourprojectname.properties")
&& new File(project.property("yourprojectname.properties")).exists()) {
Properties props = new Properties()
props.load(new FileInputStream(file(project.property("yourprojectname.properties"))))
android {
signingConfigs {
release {
keyAlias 'release'
keyPassword props['keystore.password']
storeFile file(props['keystore'])
storePassword props['keystore.password']
}
debug {
keyAlias 'debug'
keyPassword props['keystore.password']
storeFile file(props['keystore'])
storePassword props['keystore.password']
}
}
compileSdkVersion 19
buildToolsVersion "20.0.0"
defaultConfig {
applicationId "your.project.app"
minSdkVersion 16
targetSdkVersion 17
}
buildTypes {
release {
}
}
}
}
dependencies {
...
}
5) Наслаждайтесь! Теперь все ваши ключи будут за пределами корня каталога, и все же у вас все еще есть радости автоматизации для каждой сборки.
Если вы получите сообщение об ошибке в файле gradle.build о переменном «реквизите» это потому, что вы не выполняете «андроид {}» блок внутри сам первого if
состояния, при котором переменная props
назначаемого так просто переместить all android {...} в условие, в котором назначена переменная реквизита, затем повторите попытку.
Я собрал эти шаги вместе с информацией, найденной here и here.
Большое спасибо, я попробую это. Почему я должен использовать разные ключи? Результат и количество времени, которое я получил, огромны ... –
Есть ли какие-либо ограничения в отношении пароля отладочного хранилища ключей? –
Что делать, если я хочу, чтобы в каждом отладке было настроено одно хранилище ключей? –