Android Studio - debug keystore


107

Apakah Android Studio menandatangani build debug? Jika ya, di mana keystore yang digunakan untuk melakukannya?


1
Itu tetap masuk karena hanya build yang ditandatangani yang dapat diinstal.
Alexander Kulyakhtin

3
Saya rasa ini adalah pertanyaan pemrograman yang valid. Ini secara langsung berkaitan dengan toolchain yang digunakan saat mengembangkan aplikasi Android.
Austyn Mahoney


@Prachi bagaimana ini bisa menjadi duplikat dari pertanyaan yang diajukan lebih dari 3 tahun kemudian? Mungkin yang satunya adalah duplikat dari ini.
puasa

Jawaban:


179

Itu ada di lokasi yang sama: ~/.android/debug.keystore


5
Bukankah di ~ / .android saja?
Eugene Mymrin

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

5
Ini adalah versi windows dari perintah keytool: keytool -exportcert -alias androiddebugkey -keystore C: \ Users \ <User> \ .android \ debug.keystore -list -v
Simon

12
Sandi default adalah "android" dan alias kunci adalah "androiddebugkey".
naXa

1
Dan kata sandi default untuk androiddebugkey juga "android".
kibitzerCZ

64

Jika Anda menggunakan Windows, mungkin lokasinya seperti ini:

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


30

Anda dapat menentukan keystore debug Anda sendiri jika mau. Solusi ini juga memberi Anda kemampuan untuk menyimpan kunci Anda di luar direktori proyek serta menikmati otomatisasi dalam proses penandatanganan. Ya, Anda dapat pergi ke File -> Project Structuredan menetapkan keystore dan sandi penandatanganan di Signingtab tetapi itu akan menempatkan entri teks biasa ke dalam file gradle.build Anda yang berarti rahasia Anda mungkin terungkap (terutama dalam komitmen repositori). Dengan solusi ini, Anda mendapatkan kontrol untuk menggunakan keystore Anda sendiri dan keajaiban otomatisasi selama proses debug dan rilis.

1) Buat properti gradle.properties (jika Anda belum memilikinya).

Lokasi file ini bergantung pada OS Anda:

   /home/<username>/.gradle/ (Linux)
   /Users/<username>/.gradle/ (Mac)
   C:\Users\<username>\.gradle (Windows)

2) Tambahkan entri yang menunjuk ke yourprojectname.propertiesfile. (contoh untuk Windows)

yourprojectname.properties=c:\\Users\\<username>\\signing\\yourprojectname.properties

3) Buat yourprojectname.propertiesfile di lokasi yang Anda tentukan di Langkah 2 dengan informasi berikut:

keystore=C:\\path\\to\\keystore\\yourapps.keystore
keystore.password=your_secret_password

4) Ubah gradle.buildfile Anda agar mengarah ke yourprojectname.propertiesfile untuk menggunakan variabel.

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) Selamat menikmati! Sekarang semua kunci Anda akan berada di luar root direktori, namun Anda masih memiliki kesenangan otomatisasi untuk setiap build.

Jika Anda mendapatkan kesalahan dalam file gradle.build Anda tentang variabel "props" itu karena Anda tidak mengeksekusi blok "android {}" di dalam ifkondisi pertama di mana propsvariabel ditetapkan jadi cukup pindahkan seluruh android {... } ke dalam kondisi di mana variabel props diberikan kemudian coba lagi.

Saya menggabungkan langkah-langkah ini dari informasi yang ditemukan di sini dan di sini .


1
Mengenai "2) Tambahkan entri ...". Tambahkan entri ke mana?
VikingGlen

menyukai ide otomatisasi build
Khurram Shehzad

Terima kasih, ini adalah cara yang bagus untuk menyimpan kata sandi produksi di luar kendali sumber (sehingga tidak tersedia untuk semua pengembang)!
palsu

15

Jalur file debug.keystore Android Studio bergantung pada variabel lingkungan ANDROID_SDK_HOME.

Jika ANDROID_SDK_HOME sudah ditentukan, maka file ditempatkan di subfolder SDK bernama .android .
Jika tidak ditentukan, maka keystore ditempatkan di jalur beranda pengguna di subfolder yang sama:
- % HOMEPATH% \. Android \ di Windows
- $ HOME / .android / di Linux


1
Bisakah Anda menjelaskan lebih lanjut jawaban Anda dengan menambahkan sedikit lebih banyak deskripsi tentang solusi yang Anda berikan?
abarisone

mengapa 87 orang mengira itu ada di ~ / .android / debug.keystore, mereka semua tidak memiliki variabel lingkungan bernama "ANDROID_SDK_HOME" ???
IloveIniesta

Ini sangat membantu. Terima kasih banyak
Rahul

4

Inilah cara saya akhirnya membuat file ~ / .android / debug.keystore.

Pertama beberapa latar belakang. Saya mendapat laptop perjalanan baru. Android Studio yang diinstal. Mengkloning proyek android saya dari git hub. Proyek tidak akan berjalan. Akhirnya saya tahu bahwa debug.keystore tidak dibuat ... dan saya tidak tahu cara membuat Android Studio untuk membuatnya.

Akhirnya, saya membuat proyek kosong baru ... dan itu membuat debug.keystore!

Semoga ini bisa membantu orang lain yang memiliki masalah ini.


1

Di Mac, Anda akan menemukannya di sini: /Users/$username/.android


1

Jika Anda menggunakan Windows, Anda akan menemukannya sebagai berikut: File -> Project Structure -> Facets

pilih proyek Android Anda dan di jendela "Facet 'Android'" klik TAB "Packaging", Anda akan menemukan apa yang Anda inginkan


2
Tidak ada menu seperti 'Facets'
IgorGanapolsky
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.