Android'de OAuth 2.0 için İmzalama sertifikası parmak izi (SHA1) nasıl edinilir?


154

Ben adımları izleyerek benim android app kayıt çalışıyorum https://developers.google.com/console/help/#installed_applications takip etmemi açar http://developer.android.com/tools/publishing/app- signing.html .

Ancak, imza sertifikası parmak izini (SHA1) nasıl alacağımdan emin değilim.

Eclipse ADT eklentisini ilk önce anahtar deposu / anahtarını dışa aktarmak ve oluşturmak için kullandım. Sonra yapmayı denedim keytool -list keystore mykeystore.keystoreve bana bir MD5 Sertifikası parmak izi veriyor. İmzayı yeniden yapmam gerekiyor mu (yani, eclipse dışa aktarma sihirbazını kullanamıyorum)?

İlk olarak bir hata ayıklama sertifikası kullanabilir miyim?


Uygulamanızı dışa aktarmadan / yüklemeden önce user2453771'in yanıtını kullanın. İhracat / yükleme sonra frederick nyawaya'nın cevabını kullanın. Bunu hatırlayın ve birkaç saat acıdan kurtulun.
SmulianJulian

linux terminali kullanarak sürüm apk anahtar deposu nasıl üretilir
Manish

1
Sürüm ve Hata Ayıklama modu android studio gradle için SHA-1 almanın en kolay yolu. Bu kontrol
Naeem İbrahim

Yanıtlar:


174

Uygulamanız için bir apk oluşturmak ve üretim anahtarınızı kullanmak için bir dışa aktarma işlemi başlatın. Son sayfada hem SHA1 hem de MD5 sertifikası parmak izleriniz görüntülenirenter image description here


2
MD5 şimdi logcat'te görünür (oluşturma sırasında pencerede değil).
Alet

4
Dışa aktarma işlemini iki kez yapın. İkinci turda gösterilecektir.
keybee

Bu yöntemi kullanarak yeni bir tane oluşturmanın bir yolu var mı? Bunu yapmaya çalıştım, ancak eski anahtar deposu dosyam var, ama yanlış olduğunu düşünüyorum (bir hata ayıklama sertifikasına ihtiyacım var, bir sürüm değil), artı şifreyi unuttum. > _ <Bir ipucunuz varsa teşekkürler.
Azurespot

NOT: Bir .apk dosyasını tamamen dışa aktarmanız gerekmez. Gereksiz .apks oluşturmamak için SHA1'i kopyaladıktan sonra bu noktada iptal edebilirsiniz.
GraSim

139

Bu sorunun cevaplandığını biliyorum ama varsayılan anahtar deposu için imzamı bu şekilde buldum. Eclipse'de, Windows -> Tercihler -> Android -> Oluştur'a giderseniz

resim açıklamasını buraya girin


5
Bu en kolay yol olduğu için kabul edilen cevap olmalıdır.
Mustafa

3
varsayılan / hata ayıklama anahtar deposu için değil, üretim anahtar deposu için
Frederick Nyawaya

3
Çocuklar güvenli cevabın @frederick nyawaya olduğunu lütfen unutmayın. Uygulamanız farklı mağaza anahtarları oluşturup yayınladıysa (ki çoğu zaman durum budur, harita müşterileriniz üzerinde çalışmaz. Ve Tanrı bunu kendi bilgisayarınızda iyi çalıştığı için ne zaman bileceğinizi biliyor. Lütfen dikkatli olun. Bu kolaydır, ancak büyük olasılıkla istemci cihazlarınızda çalışmayan bir harita servisine sahip olursunuz
Tina

92

Bunun mükemmel bir şekilde çalışacağını düşünüyorum. Ben de aynı şeyi kullandım:

Android Studio için:

  1. Oluştur > İmzalı APK Oluştur'u tıklayın .
  2. Bir mesaj kutusu alacaksınız, sadece Tamam'ı tıklayın.
  3. Şimdi başka bir pencere olacak sadece Anahtar Mağaza Yolu kopyalayın .
  4. Şimdi bir komut istemi açın ve C: \ Program Files \ Java \ jdk1.6.0_39 \ bin> (veya yüklü herhangi bir jdk sürümüne) gidin.
  5. Tip keytool -list -v -keystore ve ardından yapıştırın Anahtar Deposu Yolu (Ör C:. \ Program Files \ Java \ jdk1.6.0_39 \ bin> keytool -list -v -keystore "E: \ My Projects \ Android \ android studio \ imzalı apks \ Hello World \ HelloWorld.jks ").
  6. Şimdi Anahtar Deposu Parolasını Soruyor, sizinkini sağlayacak ve EnterSHA1 ve MD5 Sertifika anahtarlarınızı almak için düğmesine basacaktır.

diğer makine ile oluşturulan anahtar deposu dosyası farklı machinge yukarıdaki prosedürü ile aynı anahtar mağaza dosyası ile sh1 alabilirim
Mahendra Dabi

Çok teşekkür ederim
Hiren

74

Mac veya hatta Linux kullanıyorsanız, bunu Terminal uygulamasına kopyalayıp yapıştırmanız yeterlidir ve hemen SHA1 anahtarını alırsınız. Hiçbir şeyi değiştirmeye gerek yok.

 keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

Örnek çıktı:

Alias name: androiddebugkey
Creation date: 17 Feb 12
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 4f3dfc69
Valid from: Fri Feb 17 15:06:17 SGT 2012 until: Sun Feb 09 15:06:17 SGT 2042
Certificate fingerprints:
     MD5:  11:10:11:11:11:11:11:11:11:11:11:11:11:11:11:11
     SHA1: 11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:01:11
     Signature algorithm name: SHA1withRSA
     Version: 3

@yuku örnek lütfen. /home/desktop/././. , abc.jks, hangi şifre n, tüm bu ayrıntılara ihtiyacımız var mı ??
Prabs

Teşekkürler. Sadece bu en kolay yol.
Sayka

Aslında benim günümü kurtardın. Bir ton teşekkürler.
Karan Nagpal

keytool -list -v -keystore my-release-key.keystore
Snow Bases

JKS anahtar deposu özel bir biçim kullanır. "Keytool -importkeystore -srckeystore <use-present-key-store path> / <variant-name> .keystore -destkeystore <new-key-store path> / < varyant-adı> .keystore -deststoretype pkcs12 ".
Arpit J.

68

bunu komut satırında kullan

c:\Program Files\Java\jdk1.6.25\bin>keytool -list -v -keystore c:\you_key_here.key

1
daha fazla insan IntelliJ / Studio'ya göç ettikleri ve Eclipse / ADT'nin kolaylığına erişemedikleri için en basit ve standart yol olduğunu hissettim. Şerefe arkadaşlar!!
Himadri Pant

Neden bana şifre soruyor
Abhijit Chakra

aldım, erişim reddedildi.!
sudhakar phad

59

Açık terminali (içinde Unix , içinde MAC ), ( cmdiçinde Windows'un ) ve cdbu (sizin java) için yol:

C:\Program Files\Java\jdk1.6.0_43\bin>

Bu komutu çalıştırın:

keytool -list -v -keystore C:\Users\leon\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

Sadece yolu değiştirin debug.keystoreve hem MD5 hem de SHA-1 parmak izlerini alacaksınız.


40
keytool -list -v -keystore "keyStoreName"

Bu komutu uygulamanızın anahtar deposunun bulunduğu dizinden çalıştırın.


Bu, dışa aktarıp yayınlayacağınız istemci uygulamanız için SHA1'i almak için kullanılabilir. Bu muhtemelen bir hata ayıklama anahtar deposu olan eclipse'takinden farklıdır.
dannyhan12

29

Android Studio'da şu adımları izleyin:

  1. Android stüdyo IDE'nizin sağ tarafındaki Gradle özellikleri menüsünü tıklayın.
  2. Görev ağacını genişletin.
  3. İmzalama üzerine tıklayın Raporla SHA1'inizi alt konsolda görebilirsiniz

resim açıklamasını buraya girin


13

Google Mapİhtiyacınız olan zamanda kullanmak isteyip istemediğinize bakınMD5 parmak izineapi kay , android uygulamanızda google harita kullanmak için .

Keytool komutu MD5kullanırsanız parmak izi JDK 1.6üretir ve kullanırsanız SHA1parmak izi üretirJDK 1.7 .

Yani bir şey olduğunu okumak sonra yayınlanması için uygulama imzalamak istiyorsanız bu .

Ve kullanım istiyorsanız google-mapokumak bu .


Tekrar için teşekkürler Akshay. Görünüşe göre diğer sertifika parmak izlerini göstermek için keytool komutuma -v eklemem gerekiyordu. Ayrıca, görünüşe göre bir istemci kimliği oluşturmak için bir hata ayıklama sertifikası kullanabilirsiniz.
Alex

1
Çoğunlukla. Müşteri Kimliği oluşturma sorunumu çözdüm. Ancak, sertifikaların ve parmak izlerinin nasıl çalıştığını değil, genel olarak OAuth için yeniyim. Sanırım bir sertifika hem MD5 hem de SHA1 parmak izine sahip olabilir mi? En azından şu keytool -list -v etckomutu verdiğimde alacağım
Alex

12

IntelliJ (12+?) Kullanıyorsanız İmzalı API oluştur / oluştur menüsüne gidin

Bir pop-up'ı doldurduktan sonra, "anahtar saklama yolu" alanındaki verileri alın (örn. C: \ Kullanıcılar \ kullanıcı \ Belgeler \ mağaza \ mağaza)

Ve bir komut satırında çalıştırın:

>keytool -list -v -keystore "C:\Users\user\Documents\store\store"

....
         MD5: 11:C5:09:73:50:A4:E5:71:A2:26:13:E0:7B:CD:DD:6B
    -->  SHA1: 07:0B:0E:E8:F7:22:59:72:6A:1C:68:05:05:CF:2E:6F:59:43:48:99
         SHA256: E6:CE:DA:37:C1:18:43:C1:A3:F0:9E:8F:1A:C2:69:AF:E6:41:F7:C0:18:
1D:1D:55:5D:F0:52:6C:EE:77:84:A7
...

İyi şanslar


12

Android stüdyosunu kullanan biri varsa ...

click: Oluştur> Oturum Açmış APK Oluştur Yeni bir anahtar oluşturun: bu ".jks" dosyaları oluşturur

Verileri okumak için aşağıdaki komutu kullanın (SHA1 ve diğer bilgiler):

$ keytool -list -v -keystore dosyaadı.jks


ekstra ipucu : facebook için Anahtar Hash oluşturma komutu$keytool -keystore filename.jks | openssl sha1 -binary | openssl base64
MuhFred

4

OpenSSL kullananlar için SHA1 parmak izini şu şekilde alabilirsiniz:

OpenSSL> dgst -sha1 my-release-key.keystore

Bu da aşağıdaki çıktıyla sonuçlanır:

resim açıklamasını buraya girin


4

Android Studio kullanıyorsanız. Cmd istemini kullanarak SHA1 parmak izi oluşturmanıza gerek yoktur. Android Studio'nun varsayılan Haritalar Etkinliği ile bir proje oluşturmanız yeterlidir.Projede parmak izini Değerler klasörü altında google_maps_api.xml dosyasında bulabilirsiniz. Umarım bu size yardımcı olacaktır. :)

resim açıklamasını buraya girin


4

İşte bunun için benim kolay çözüm:

Tıklamak Gradle , sağ üstte bulabilirsiniz. tüm gradle dosyalarını göreceksiniz. Şimdi android'e gidin ve signingReport'a çift tıklayın. Gradle derlemesi bittiğinde, SHA anahtarını görürsünüz. Adım adım kılavuz için aşağıdaki resimlere bakın.

Gradle'a tıkladıktan sonra aşağıdaki resimleri kontrol edin. Umarım bu birine yardımcı olur.

AŞAMA 1:

Image Birinci adım

ADIM 2:

Image İkinci adım


3

Android Studio kullanıyorsanız. Gradle Tasks aracılığıyla SHA1 sertifikası parmak izini (hata ayıklama, serbest bırakma ... tüm Yapı Türleri !!) hızla alabilirsiniz :

signingReport

SHA1, Mesaj Kayıtlarında gösterilir

Android Eklentisi (derecelendirme uygulamasında yapılandırılır) varsayılan olarak bir hata ayıklama modu oluşturur.

com.android.application

Anahtar deposuna dosya yolu:

ANA / .android / debug.keystore

Ben tavsiye takmak build.gradle için debug.keystore. Bunu yapmak için bir uygulama klasörüne debug.keystore dosyası koyun ve ardından gradle uygulamasına SigningConfigs ekleyin:

apply plugin: 'com.android.application'

    android {
        ................
        signingConfigs {
            debug {
                storeFile file("../app/debug.keystore")
                storePassword "android"
                keyAlias "androiddebugkey"
                keyPassword "android"
            }
            release {
                storeFile file("../app/debug.keystore")
                storePassword "android"
                keyAlias "androiddebugkey"
                keyPassword "android"
            }
        }    
        ........
    }

Ekstra: Sürümün oluşturulmasını istiyorsanız, uygulama klasörüne bir release.keystore dosyası koyun. (Bu örnekte aynı debug.keystore kullanılır)


3

Bunu bir deneyin: Windows ---- tercihleri ​​---- Android - yapı --- sh1 kodu kopyasını buradan


3

İlk kez kafa karıştırıcıydım, ancak size Windows için son çalışma çözümünü öneriyorum :

1) cmd'yi açın ve Java / jdk / bin dizininize cd ..gidin (bir klasör geri cd NAME_FOLDERgitmek ve bir klasör ileri gitmek için tuşuna basın ), benim durumumda, son klasör:C:\Program Files\Java\jdk1.8.0_73\bin> resim açıklamasını buraya girin

2) Şimdi bu komutu yazın keytool -list -v -keystore C:\Users\YOUR_WINDOWS_USER\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

Sonuç olarak böyle bir şey elde etmelisiniz: resim açıklamasını buraya girin


2

Bunun mükemmel bir şekilde çalışacağını düşünüyorum. Ben de aynı şeyi kullandım:

Android Studio için:

Oluştur> İmzalı APK Oluştur'u tıklayın. Bir mesaj kutusu alacaksınız, sadece Tamam'ı tıklayın.

Şimdi başka bir pencere olacak sadece Anahtar Mağaza Yolu kopyalayın.

Şimdi bir komut istemi açın ve C: \ Program Files \ Java \ jdk1.6.0_39 \ bin> (veya yüklü herhangi bir jdk sürümüne) gidin.

Keytool -list -v -keystore yazın ve Anahtar Mağaza Yolunuzu yapıştırın (Örn. C: \ Program Files \ Java \ jdk1.6.0_39 \ bin> keytool -list -v -keystore "E: \ Projelerim \ Android \ android studio \ imzalı apks \ Hello World \ HelloWorld.jks ").

Şimdi Anahtar Deposu Parolasını Sorur, sizinkini sağlar ve SHA1 ve MD5 Sertifika anahtarlarınızı almak için Enter tuşuna basın.

Şimdi bu SHA1 anahtarını kimlik bilgileri sekmesindeki google geliştirici konsoluna ekleyin ve ayrıca android stüdyosundaki derleme varyantlarını serbest bırakma moduna değiştirin.


anahtar deposu parolasını giremiyorum i yazın ancak komut istemine
yazılmayan

parola görünmüyor parolanızı doğru şekilde yazın ve enter tuşuna basın, anahtarlarınızı alacaksınız
Rishab Jain

teşekkür ederim yanlış şifre girdim şimdi iş teşekkür ederim çocuklar
Mahendra Dabi

1

Mac'te keytool arayanlar için. bu adımları takip et:

Öncelikle Java JDK'yı yüklediğinizden emin olun http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html

Sonra bunu komut istemine yazın:

/usr/libexec/java_home -v 1.7

şöyle bir şey tükürecek:

/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home

keytool ile aynı dizinde bulunur javac. yani:

/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin

Bin dizininden tuş takımını kullanabilirsiniz.


1

Mac / Linux kullanıyorsanız, terminalde aşağıdaki satırı yazarak SHA1 parmak izi alabilirsiniz:

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

Bundan sonra 2 şey mümkün

  1. Sizden şifreyi soracaktır

    Sadece yaz

android

ve enter tuşuna basın, SHA1 tuşunu aşağıda gösterilen çıktıda bulabilirsiniz.

  1. Sizden uygun bir program indirmenizi isteyecektir (ve bazı listeler verilecektir)

    Terminalde aşağıdakileri yazmanız yeterlidir

sudo apt install openjdk-8-jre-başsız

ve daha sonra terminalde tekrar çalıştırın: keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

Bu kez, yalnızca şifreyi girmeniz gereken 1. adıma yönlendirileceksiniz.

android

ve SHA1 parmak izinizi çıktıda aşağıda bulabilirsiniz.


0

Portecle kullanma :

  • Dosya> Anahtar deposu dosyasını aç
  • Anahtar deposu şifresini girin
  • Takma adın üzerine sağ tıklayın> Sertifika ayrıntıları> SHA-1 Parmak İzi


0

Benimle aynı sorunu yaşayanlara bir bildirim göndermek istedim. Hata ayıklama SHA-1'i ve sürüm SHA-1'i oluşturmak için adımlardan geçtim. Google Oturum Açma API'sını uygulamama bağlamaya çalışıyordum.

.Apk hata ayıklamasının iyi çalışacağı, Google Oturum Açma ile bağlantı kuracağı ve kimlik doğrulaması yapacağı sorunuyla karşılaştım. Yayınım .apk, telefona manuel olarak yüklendiğinde de çalışır. Sürüm .apk'ımı Google Play Store'a gönderdiğimde, google Oturum Açma kimlik doğrulamamıştı ve bir sorunla karşılaştım!

En uzun süredir anlayamadım, ancak uygulamamın google tarafından imzalandığını buldum, yani Geliştirici konsolunun üstündeki mesaj gösteriliyordu: Google Play Uygulama İmzalama bu uygulama için etkinleştirildi.

Sürüm Yönetimi sekmesine gittim, ardından Uygulama İmzalama'ya geçtim ve orada SHA-1'i buldum. Bunu koduma ve Google Oturum Açma için arka uç olarak kullandığım "firebase konsoluna" ekledikten sonra, her şey işe yaradı. Sürüm anahtar depomun google imzalı sertifika ile değiştirildiği anlaşılıyor ... Olanların bu olup olmadığından emin değilim, ancak sorunumu çözdü ve Google Play Store sürüm apk'nin google işareti ile doğru bir şekilde kimlik doğrulamasına izin verdi içinde!


0

Adım adım çözüm:

  1. Komut isteminizi veya Mac için Terminal'i açın
  2. Dizini, anahtar aracı dosya konumunun dizinine değiştirin. Komut kullanarak dizini değiştirin cd <directory path>. (Not: herhangi bir dizin adında boşluk varsa \, iki sözcük arasına ekleyin . Örnek cd /Applications/Android\ Studio.app//Contents/jre/jdk/Contents/Home/bin/)

    • Anahtar aracınızın yerini bulmak için android stüdyosuna gidin ... projenizi açın. Ve git

    • Dosya> proje Yapısı> SDK konumu .. ve JDK konumunu bulun.

  3. Tuş takımını şu komutla çalıştırın: keytool -list -v –keystore <your jks file path>(Not: herhangi bir dizin adında boşluk varsa, iki sözcük arasına \ ekleyin. Örnek keytool -list -v -keystore /Users/username/Desktop/tasmiah\ mobile/v3/jordanos.jks)

  4. Komut sizden parolayı girmenizi ister .. bu yüzden parolanızı girin .. sonra sonucu alırsınız


0

İşte tembel kodlayıcılar için araç:

1 bağımlılık ekleyin:

compile 'com.vk:androidsdk:1.6.9'

2 faaliyetinizde / uygulamanızda bir yere aşağıdaki satırları ekleyin:

String[] fingerprints = VKUtil.getCertificateFingerprint(this, getPackageName()); 
Log.d("SHA1", fingerprints[0]);

3 Logcat'i açın ve mesajı yakalayın.

4 Kâr!


0
  1. Komut isteminizi açın
  2. Çalışma dizinine 1.8.0 / bin'e gidin
  3. yapıştırmak keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
  4. Size bir şifre soruyorsa enter tuşuna basın

0

Keystore.jks dosyasını imzalayarak fingerprint-sha1 anahtarını almak istiyorsanız Terminalden aşağıdaki komutu çalıştırın:

keytool -list -v -keystore <.../path/keystore.jks>

Misal

keytool -list -v -keystore /Users/Home/Projects/Keystore/myApp_keystore.jks
Enter keystore password: 

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

Alias name:myApp_alias
Owner: CN=xxx, OU=xxx Dev, O=ZZZ, L=Dhaka, ST=Dhaka, C=BD
..........


Certificate fingerprints:
MD5:  12:10:11:12:11:11:11:11:11:11:33:11:11:11:11:11
SHA1: 11:44:11:11:55:11:17:11:11:66:11:11:88:11:11:77:11:11:01:11
.....................

0

Menü Sağ tarafında Gradle tıklayın Lütfen Sonra tıklayın: app Sonra android klasörü tıklayın Sonra SigningReport dosya adı var Orada çift tıklayın. Yürütmeye başlayacak ve bir süre sonra size SHA-1 Kodu gösterecektir Sadece kodu kopyalayın. Ve ihtiyacınız olan yere yapıştırın

Resimde Vurgulanan İmza Raporu

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.