Android Studio - налагодження зберігання ключів


107

Чи будується налагодження знаків Android Studio? Якщо так, то де це магазин ключів, який він використовує для цього?


1
Це все одно підписується, оскільки можна встановити лише підписані збірки.
Олександр Куляхтін

3
Я думаю, це правильне питання програмування. Це безпосередньо стосується ланцюжка інструментів, що використовується при розробці додатків для Android.
Austyn Mahoney


@Prachi, як це може бути дублікат запитання, поставленого більше ніж через 3 роки? Можливо, це інший дублікат цього.
fasteque

Дивіться також stackoverflow.com/questions/12456491/…
caw

Відповіді:


179

Це в одному місці: ~/.android/debug.keystore


5
Чи не замість цього в ~ / .android?
Євген Мимрін

14
keytool -list -v -keystore ~ ​​/ .android / debug.keystore
jturolla

5
Це версія Windows для команди keytool: keytool -exportcert -alias androiddebugkey -keystore C: \ Users \ <User> \ .android \ debug.keystore -list -v
Simon

12
Типовим паролем є "android", а псевдонім ключа - "androiddebugkey".
naXa

1
І пароль за замовчуванням для androiddebugkey також "android".
kibitzerCZ

64

Якщо ви використовуєте Windows, можливо, розташування виглядає так:

C: \ User \ YourUser \ .android \ debug.keystore


30

За бажанням можна вказати власний магазин ключів налагодження. Це рішення також дає можливість зберігати ваші ключі поза каталогом проектів, а також насолоджуватися автоматизацією в процесі підписання. Так, ви можете перейти до 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 {... } в умові, в якому призначена змінна реквізиту, потім спробуйте ще раз.

Я зібрав ці кроки разом із інформації, знайденої тут і тут .


1
Щодо "2) Додати запис ...". Додати запис де?
VikingGlen

люблю ідею автоматизації побудови
Хуррам Шехзад

Дякую, це чудовий спосіб збереження виробничих паролів поза контрольним джерелом (тому вони доступні не всім розробникам)!
шаман

15

Шлях файлу Android debug.keystore для файлу Android Studio залежить від змінної середовища ANDROID_SDK_HOME.

Якщо визначено ANDROID_SDK_HOME, файл розміщується у підпапці SDK під назвою .android .
Якщо це не визначено, то клавіша зберігання розміщується на домашньому шляху користувача в тій самій папці:
- % HOMEPATH% \. Android \ у Windows
- $ HOME / .android / у Linux


1
Чи можете ви детальніше розглянути свою відповідь, додавши трохи більше опису про рішення, яке ви надаєте?
аборисон

чому 87 людей думають, що це в ~ / .android / debug.keystore, всі вони не мають змінної середовища з назвою "ANDROID_SDK_HOME" ???
IloveIniesta

Це було дуже корисно. Велике спасибі
Рахул,

4

Ось як я нарешті створив файл ~ / .android / debug.keystore.

Спочатку деяке тло. Я придбав новий ноутбук для подорожей. Встановлено Android Studio. Клонував мій андроїд-проект із git hub. Проект не запускався. Нарешті з'ясував, що debug.keystore не створений ... і я не міг зрозуміти, як отримати Android Studio для його створення.

Нарешті, я створив новий порожній проект ... і це створило debug.keystore!

Сподіваюся, це допомагає іншим, хто має цю проблему.



1

Якщо ви використовуєте Windows, ви побачите, що слідувати цьому: Файл -> Структура проекту -> Грані

вибрав проект Android, і у вікні "Фасетка Android" натисніть TAB "Упаковка", ви знайдете те, що хочете


2
Немає такого меню, як "Фасети"
ІгорГанапольський
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.