Android Studio - anahtar deposunda hata ayıklama


107

Android Studio, hata ayıklama yapılarını imzalar mı? Öyleyse, bunu yapmak için kullandığı anahtar deposu nerede?


1
Yine de imzalar çünkü yalnızca imzalı yapılar kurulabilir.
Alexander Kulyakhtin

3
Bunun geçerli bir programlama sorusu olduğunu düşünüyorum. Doğrudan Android uygulamaları geliştirirken kullanılan araç zinciri ile ilgilidir.
Austyn Mahoney


@ Prachi bu nasıl 3 yıldan fazla bir süre sonra sorulan bir sorunun kopyası olabilir? Belki diğeri bunun kopyasıdır.
fasteque

Yanıtlar:


179

Aynı yerde: ~/.android/debug.keystore


5
Onun yerine ~ / .android içinde değil mi?
Eugene Mymrin

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

5
Bu, keytool komutunun Windows sürümüdür: keytool -exportcert -alias androiddebugkey -keystore C: \ Users \ <User> \ .android \ debug.keystore -list -v
Simon

12
Varsayılan şifre "android" ve anahtar diğer adı "androiddebugkey" dir.
naXa

1
Ve androiddebugkey için varsayılan şifre de "android" dir.
kibitzerCZ

64

Windows kullanıyorsanız, muhtemelen konum şu şekildedir:

C: \ Kullanıcı \ Kullanıcınız \ .android \ debug.keystore


30

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 , Signingsekmedeki 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.propertiesDosyayı işaret eden bir giriş ekleyin . (Windows için örnek)

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

3) yourprojectname.properties2. 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.buildiçin yourprojectname.propertiesdosyanı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 ifkoşulu propsdeğ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 .


1
"2) Giriş ekle ..." ile ilgili. Nereye giriş eklensin?
VikingGlen

yapı otomasyonu fikrini seviyorum
Khurram Shehzad

Teşekkürler, bu, üretim şifrelerini kaynak kontrolü dışında tutmanın harika bir yoludur (bu nedenle tüm geliştiriciler tarafından kullanılamazlar)!
sham

15

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 /


1
Sağladığınız çözüm hakkında biraz daha açıklama ekleyerek yanıtınızı biraz daha detaylandırır mısınız?
abarisone

87 kişi neden ~ / .android / debug.keystore'da olduğunu düşünüyor, hepsinde "ANDROID_SDK_HOME" adında bir ortam değişkeni yok ???
IloveIniesta

Bu çok yardımcı oldu. Çok teşekkürler
Rahul

4

İş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.


1

Mac'te onu burada bulabilirsiniz: /Users/$username/.android


1

Windows kullanıyorsanız, şunu göreceksiniz: Dosya -> Proje Yapısı -> Fasetler

Android projenizi seçin ve "Facet 'Android" penceresinde "Packaging" SEKMESİNE tıklayın, istediğinizi bulacaksınız


2
'
Facets
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.