Подписывается ли сборка отладки Android Studio? Если да, то где это хранилище ключей, которое он использует для этого?
Android Studio - отладочное хранилище
Ответ 1
Он находится в том же месте: ~/.android/debug.keystore
Ответ 2
Если вы используете Windows, вероятно, это примерно так:
C:\User\YourUser \.android\debug.keystore
Ответ 3
Вы можете указать свое собственное хранилище отладки, если хотите. Это решение также дает вам возможность хранить ключи вне каталога проекта, а также получать автоматизацию в процессе подписания. Да, вы можете перейти к File -> Project Structure
и назначить подписывание хранилищ ключей и паролей на вкладке Signing
, но это приведет к тому, что в ваш файл 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 о переменной "реквизит", потому что вы не выполняете блок "android {}" в самом первом if
состоянии, где переменная props
получает поэтому просто переместите весь раздел android {...} в условие, в котором назначена переменная реквизита, затем повторите попытку.
Я собрал эти шаги вместе с найденной здесь информацией и здесь.
Ответ 4
Путь к файлу debug.keystore для Android Studio зависит от переменной среды ANDROID_SDK_HOME.
Если определен ANDROID_SDK_HOME, то файл помещен в подпапку SDK с именем .android.
Если не определено, то хранилище ключей размещается на домашнем пути пользователя в той же подпапке:
- % HOMEPATH% \. android\ в Windows
- $HOME/.android/ в Linux
Ответ 5
На Mac вы найдете его здесь:/Users/$username/.android
Ответ 6
Если вы используете Windows, вы найдете следующее: Файл → Структура проекта → Границы
выбрал ваш проект Android, а в окне "Facet" Android "нажмите" Таба "Табак", вы найдете то, что хотите.
Ответ 7
Вот как я наконец создал файл ~/.android/debug.keystore.
Сначала немного фона. У меня появился новый ноутбук для путешествий. Установлена Android Studio. Клонировал мой проект андроида из концентратора git. Проект не будет работать. Наконец выяснилось, что debug.keystore не был создан... и я не мог понять, как заставить Android Studio создать его.
Наконец, я создал новый пустой проект... и создал файл debug.keystore!
Надеюсь, это поможет другим, у кого есть эта проблема.