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.