Android Studio, hata ayıklama yapılarını imzalar mı? Öyleyse, bunu yapmak için kullandığı anahtar deposu nerede?
Android Studio, hata ayıklama yapılarını imzalar mı? Öyleyse, bunu yapmak için kullandığı anahtar deposu nerede?
Yanıtlar:
Aynı yerde: ~/.android/debug.keystore
Windows kullanıyorsanız, muhtemelen konum şu şekildedir:
C: \ Kullanıcı \ Kullanıcınız \ .android \ debug.keystore
Dilerseniz kendi hata ayıklama anahtar deponuzu belirtebilirsiniz. Bu çözüm ayrıca anahtarlarınızı proje dizininin dışında saklamanıza ve imzalama sürecinde otomasyonun keyfini çıkarmanıza olanak tanır. Evet gidebilirsinFile -> Project Structure
, Signing
sekmedeki imzalama anahtar depolarına ve şifrelerine ve atayabilirsiniz, ancak bu, gradle.build dosyanıza düz metin girişlerini koyacaktır, bu da sırlarınızın ifşa edilebileceği anlamına gelir (özellikle depo kayıtlarında). Bu çözümle, hata ayıklama ve sürüm yapıları sırasında kendi anahtar deponuzu ve otomasyonun büyüsünü kullanmanın kontrolünü elde edersiniz.
1) Bir gradle.properties oluşturun (henüz sahip değilseniz).
Bu dosyanın konumu işletim sisteminize bağlıdır:
/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)
2) yourprojectname.properties
Dosyayı işaret eden bir giriş ekleyin .
(Windows için örnek)
yourprojectname.properties=c:\\Users\\<username>\\signing\\yourprojectname.properties
3) yourprojectname.properties
2. Adımda belirttiğiniz konumda aşağıdaki bilgilerle dosya oluşturun :
keystore=C:\\path\\to\\keystore\\yourapps.keystore
keystore.password=your_secret_password
4) Değişkenleri kullanmak gradle.build
için yourprojectname.properties
dosyanızı , dosyaya işaret edecek şekilde değiştirin .
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) Keyfini çıkarın! Artık tüm anahtarlarınız dizinin kökünün dışında olacak ve yine de her derlemede otomasyonun zevkine sahip olacaksınız.
Eğer "sahne" değişkeni hakkında gradle.build dosyasında bir hata alırsanız ilk içeride "android {}" blok yürütme değildir çünkü bu kadar if
koşulu props
değişken yüzden sadece bir bütün olarak Android {taşımak atanır ... } props değişkeninin atandığı koşulun bölümüne girin ve ardından tekrar deneyin.
Bu adımları burada ve burada bulunan bilgilerden bir araya getirdim .
Android Studio debug.keystore dosya yolu, ANDROID_SDK_HOME ortam değişkenine bağlıdır.
ANDROID_SDK_HOME tanımlıysa, dosya SDK'nın .android adlı alt klasörüne yerleştirilir .
Tanımlanmadığında, anahtar deposu aynı alt klasörde kullanıcı ana yoluna yerleştirilir:
- Windows'ta % HOMEPATH% \. Android \
- Linux'ta $ HOME / .android /
İşte sonunda ~ / .android / debug.keystore dosyasını nasıl oluşturduğum.
Önce biraz arka plan. Yeni bir seyahat dizüstü bilgisayarım var. Android Studio yüklendi. Android projemi git hub'dan klonladım. Proje çalışmayacaktı. Sonunda debug.keystore'un oluşturulmadığını anladım ... ve Android Studio'nun onu oluşturmasını nasıl sağlayacağımı bulamadım.
Son olarak, yeni bir boş proje yarattım ... ve bu debug.keystore'u yarattı!
Umarım bu, bu sorunu yaşayanlara yardımcı olur.