Apakah Android Studio menandatangani build debug? Jika ya, di mana keystore yang digunakan untuk melakukannya?
Apakah Android Studio menandatangani build debug? Jika ya, di mana keystore yang digunakan untuk melakukannya?
Jawaban:
Itu ada di lokasi yang sama: ~/.android/debug.keystore
Jika Anda menggunakan Windows, mungkin lokasinya seperti ini:
C: \ User \ YourUser \ .android \ debug.keystore
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 Structure
dan menetapkan keystore dan sandi penandatanganan di Signing
tab 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.properties
file.
(contoh untuk Windows)
yourprojectname.properties=c:\\Users\\<username>\\signing\\yourprojectname.properties
3) Buat yourprojectname.properties
file 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.build
file Anda agar mengarah ke yourprojectname.properties
file 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 if
kondisi pertama di mana props
variabel 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 .
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
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.
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