Android Facebook Key Hash nasıl oluşturulur?


182

Bu süreci hiç anlamıyorum. Java SDK'da tuş takımını içeren klasöre gidebildim. Her ne kadar ben hata almaya devam rağmen dahili veya harici komut olarak tanınmadı. Sorun şu ki, bu işe başlasam bile, ne yapardım ve sonrasında ne yapmalıyım?


Eğer son facebook sdk kullanıyorsanız ve facebook api mükemmel
koyduysanız

yerel bilgisayarınızda anahtar karmasını oluşturmak için Java'nın keytool yardımcı programını (konsolunuzun yolunda olması gerekir) Android hata ayıklama anahtar deposunda çalıştırın. Bu, varsayılan olarak ana .android dizininizde bulunur). OS X'te çalıştırın: keytool -exportcert -alias androiddebugkey -keystore ~ ​​/ .android / debug.keystore | openssl sha1 -binary | openssl base64 Windows'da şunları kullanın: - keytool -exportcert -alias androiddebugkey -keystore% HOMEPATH% \. android \ debug.keystore | openssl sha1 -binary | openssl base64
Rakesh

Neden bir hata ayıklama anahtarı oluşturmak istesin ki?
Anders Lindén

Anahtar karmasını oluşturdum ama bu anahtarı nereye koyacağımı bilmiyorum, bana rehberlik eder misiniz? Ubuntu'da android stüdyosu kullanıyorum.
Apurva

Yanıtlar:


242

Yapman gerekenler işte burada -

Kod ayıkla openSSl indirin . C: / klasöründe OpenSSL oluşturun ve çıkarılan kodu buraya kopyalayın.

debug.keystore dosya yolunu algıla. Eğer u bulamadıysanız, C: / dizininde bir arama yapın ve sonraki adımda komuttaki Yolu kullanın.

keytool.exe yolunuzu tespit edin ve bu dir / in komut istemine gidin ve bu komutu 1 satırda çalıştırın.

$ keytool -exportcert -alias androiddebugkey -keystore "C:\Documents and Settings\Administrator.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64

şifre isteyecek, hepsi bu android koymak. bir anahtar karması alacaksın


bir şifre istediğinde istediğim her şeyi koyabilir miyim?
Somk

5
@Max, varsayılan şifre android.
jamapag

2
anahtar karma herhangi bir kayıtlı anahtar karma android ile çalışmıyor, çalışmıyor
Boldijar Paul

1
Önce stüdyonuzdan Build -> Build Apk'e giderek bir anahtar deposu oluşturun. bir ad ve parola sağlayın vb. Kolay erişilebilir bir klasörde .jks dosyası olarak saklayın. Şimdi yolu kopyalayın ve yukarıda belirtilen cevapta bu yolu değiştirerek anahtarı oluşturun.
buggydroid

1
Bana bir hata gösteriyor: "... İfadelere yalnızca bir ardışık düzenin ilk öğesi olarak izin verilir. Satırda: 1 karakter: 184 ... İfade veya ifadede beklenmeyen simge 'sha1'. ... İfadelere yalnızca bir boru hattının ilk elementi ... ifade veya açıklamada beklenmeyen belirteç 'base64' + CategoryInfo: ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId:.. ExpressionsMustBeFirstInPipeline "
android geliştirici

175

Linux ve Mac için

Açık Terminal:

Hata Ayıklama Derlemesi için

keytool -exportcert -alias androiddebugkey -keystore debug.keystore | openssl sha1 -binary | openssl base64

Sen bulacaksınız debug.keystore ".android" klasöründe. Kopyalayın ve masaüstüne yapıştırın ve yukarıdaki komutu çalıştırın.

Sürüm Derlemesi için

keytool -exportcert -alias <aliasName> -keystore <keystoreFilePath> | openssl sha1 -binary | openssl base64

NOT: Her iki durumda da parola istediğinden emin olun. Parola istemezse, komutta bir şeylerin yanlış olduğu anlamına gelir. İçin şifre debug.keystore olan " android " ve serbest bırakılması için size bu şifreyi girmek zorunda deposu oluşturmak sırasında ayarlanır .


3
Açık olmak gerekirse, şifre boş. İstendiğinde <enter> tuşuna basmanız yeterlidir.
Tom Redman

Anahtar karmasını oluşturdum ama bu anahtarı nereye koyacağımı bilmiyorum, bana rehberlik eder misiniz? Ubuntu'da android stüdyosu kullanıyorum.
Apurva

1
Bu not: "NOT: Her iki durumda da parola istediğinden emin olun. Parola istemezse, komutta bir sorun var demektir." sorunu çözmek için gerekli
Bleno Silva

hayatımı kurtardığın için teşekkür ederim. Im her zaman anahtar deposu şifresi için mac şifremi yazarak ve ben bunun yanlış olduğunu fark
Lucky Angelo

1
Şifre istemek bile her şeyin yolunda olduğu anlamına gelmez (yanlış şifre, yanlış anahtar takma adı). keytool -exportcert -alias <aliasName> -keystore <keystoreFilePath>Her şeyin yolunda olup olmadığını görmek için önce yalnız koş . Ayrıca, kanal oluşturulduğunda, tuş takımı etkileşimli olmayan moddadır ve girdiğinizde şifreyi düz metin olarak gösterir. Komutları ayrı ayrı çalıştıran küçük bir komut dosyası yazmanız daha iyi olur.
Pierre

98

Lütfen şunu deneyin:

public static void printHashKey(Context pContext) {
        try {
            PackageInfo info = pContext.getPackageManager().getPackageInfo(pContext.getPackageName(), PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                String hashKey = new String(Base64.encode(md.digest(), 0));
                Log.i(TAG, "printHashKey() Hash Key: " + hashKey);
            }
        } catch (NoSuchAlgorithmException e) {
            Log.e(TAG, "printHashKey()", e);
        } catch (Exception e) {
            Log.e(TAG, "printHashKey()", e);
        }
    }

Anahtar karmasını oluşturdum ama bu anahtarı nereye koyacağımı bilmiyorum, bana rehberlik eder misiniz? Ubuntu'da android stüdyosu kullanıyorum.
Apurva

bu gitmek için bir yol
Tentenabulator Zea

1
Bu, pContext.getPackageInfo çağırırsanız çalışır. Veya sadece bir işlevden kaldırın ve onCreate herhangi bir etkinlik oluşturun.
Dpedrinha

1
. Bu şimdi getPackageManager () getPackageInfo ([your-package_name], PackageManager.GET_SIGNATURES) gibi görünüyor
Till

@Apurva Daha sonra kullanmanız durumunda Android SharedPreferences'a koyabilirsiniz.
Maddy

49

OpenSSL: İşletim sisteminizle önceden kurulu değilse (örneğin Windows önceden kurulu değilse) yüklemeniz gerekir . Bunu nasıl kuracağınız işletim sisteminize bağlıdır (Windows için coder_For_Life22 tarafından sağlanan bağlantıyı kontrol edin ).

Etrafta dolaşmadan en kolay yolu, Windows'da iseniz, openssl.exe ikili dosyasını keytool yolunuza kopyalamaktır. Bunu yapmak istemiyorsanız, PATHortam değişkeninize eklemeniz gerekir . Ardından dokümanlarda verilen komutu yürütün.

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

-keystoreSonraki bağımsız değişkenin hata ayıklama anahtar deponuzu gösterdiğini unutmayın. Bu konum işletim sisteminize de bağlıdır. Aşağıdaki konumlardan birinde olmalıdır:

  • Windows Vista veya 7 - C: \ Kullanıcılar \ .android \ debug.keystore
  • Windows XP - C: \ Belgeler ve Ayarlar \ .android \ debug.keystore
  • OS X ve Linux - ~ / .android / debug.keystore

Her şeyi doğru yaptıysanız, bir parola girmeniz istenir. Yani androidayıklama sertifikası için. Şifre doğruysa, konsol bir karma (biraz rastgele karakter ve sayılar) yazdırır.

Bunu alın ve android key hashuygulamanızın tercihlerinin bulunduğu alana facebook'ta kopyalayın . Oraya ulaşmak için developers.facebook.com/apps adresine gidin , uygulamanızı seçin, gidin Edit settingsve aşağı kaydırın. Bundan sonra, değişikliklerin geçerli olması için birkaç dakika bekleyin.


Ben cmd bu koştu ve bir = işareti sonra hiçbir şey $ keytool -exportcert -alias androiddebugkey -keystore "C: \ Kullanıcılar \ .android \ debug.keystore" ile biten bir karma gibi görünen karakter çok uzun bir liste çıktı | "C: \ OpenSSL \ bin \ openssl" sha1 -binary | "C: \ OpenSSL \ bin \ openssl" base64
Somk

Kulağa doğru geliyor. Sadece makinemde test ettim, benim için 28 karakter uzunluğundaydı, sadece bir fikir vermek için. Şimdi kopyala ve iyisin. :)

pharse android olsa kullanmak istendi değildi. Üzgünüm yavaş mıyım?
Somk

Dürüst olmak gerekirse, neden istenmediğinden emin değilim. Ama kulağa doğru geliyor. Yani, yanlış bir şey yaparsanız, bunun yerine bir hata mesajı olmalı. Sadece kopyalayın ve çalışıp çalışmadığını görün. Grafik sorgularının bazılarını Grafik API Gezgini ile test edebilirsiniz . Üst kısımdaki uygulamanızı seçin ve geçerli sonuçlar alıp almadığınızı görün. Yanlış bir şey varsa bir hata tükürmelidir. Düzenleme: Ve yavaş beeing ile yanlış bir şey. Acelemiz yok. :)

24

yerel bilgisayarınızda anahtar karmasını oluşturmak için Java'nın keytool yardımcı programını (konsolunuzun yolunda olması gerekir) Android hata ayıklama anahtar deposunda çalıştırın. Bu, varsayılan olarak, ana .android dizininizde bulunur). OS X'te çalıştırın:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

Windows'ta şunları kullanın: -

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64

umarım bu sana yardımcı olur

Ref - geliştirici facebook sitesi


Anahtar karmasını oluşturdum ama bu anahtarı nereye koyacağımı bilmiyorum, bana rehberlik eder misiniz? Ubuntu'da android stüdyosu kullanıyorum.
Apurva

19

Onaltılık bir harita anahtarını base64'e dönüştürmek için tarayıcı konsolunda bir satır javascript'i kullanabilirsiniz. Açık son tarayıcı (pencerelerde F12) 'de konsol ve kodu yapıştırın ve değiştirme SHA-1, SHA-256Google Play bu altında sağladığı altıgen haritası Release Managment> App signing:

> btoa('a7:77:d9:20:c8:01:dd:fa:2c:3b:db:b2:ef:c5:5a:1d:ae:f7:28:6f'.split(':').map(hc => String.fromCharCode(parseInt(hc, 16))).join(''))
< "p3fZIMgB3fosO9uy78VaHa73KG8="

1
Bir cankurtaran, teşekkürler
Yusuf Adeyemo

SHA-1 oydu.
Travo

19

İşte tüm ayrıntılar (Windows için)

1. Yükleme OpenSSL'yi 3 veya sistem 32bit veya 64bit dayalı 4 (e daha iyi çalışır) ya.

2. İndirilen zip dosyasını C dizinine çıkarın

3. Çıkarılan klasörü bin'e kadar açın ve yolu kopyalayın, bunun gibi bir şey olmalıdır C:\openssl-0.9.8k_X64\bin\openssl (sonunda add \ openssl)

4. (Nasıl yapıldığını biliyorsanız Jdk'nin bin klasörünün yolunu alın, bunu dikkate almayın).

Android studio ~ dosyasını açın ~ Proje Yapısı (ctrl + alt + shift + s), sol taraftaki panelde SDK konumunu seçin, JDK konumunu kopyalayın ve ona / bin ekleyin

Son JDK Konumu şöyle olacak: C:\Program Files\Android\Android Studio\jre\bin

benim gibi gömülü jdk kullanabileceğiniz için Jdk konumunu almak için bu yöntemi uyguluyoruz

resim açıklamasını buraya girin

Artık OpenSSl ve JDK konumlarınız var

5. şimdi hata ayıklama anahtar deposu konumuna ihtiyacımız var, bu açık C ~> Kullanıcılar ~> KullanıcıAdınız ~> .android için debug.keystore dosya adı olmalı, şimdi yol konumunu kopyalayın, böyle bir şey olmalı

C:\Users\Redman\.android\debug.keystore

6. şimdi komut istemini açın ve command yazın

cd YourJDKLocationFromStep4  

benim durumumda

 cd "C:\Program Files\Android\Android Studio\jre\bin"

7. şimdi aşağıdaki komutu oluşturun

keytool -exportcert -alias androiddebugkey -keystore YOURKEYSTORELOCATION | YOUROPENSSLLOCATION sha1 -binary | YOUROPENSSLLOCATION base64

benim durumumda komut şöyle görünecek

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Redman\.android\debug.keystore" | "C:\openssl-0.9.8k_X64\bin\openssl" sha1 -binary | "C:\openssl-0.9.8k_X64\bin\openssl" base64

şimdi komut istemine bu komutu girin, eğer doğru bir şey yaptıysanız sizden şifre istenecektir (şifre android)

Enter keystore password:  android

bu, size Anahtar Karma verilecektir, sadece kopyalayın ve kullanın

İmzalı KeyHash için aşağıdaki Komutu oluşturun

keytool -exportcert -alias YOUR_ALIAS_FOR_JKS -keystore YOUR_JKS_LOCATION | YOUROPENSSLLOCATION sha1 -binary | YOUROPENSSLLOCATION base64

anahtar deposu şifrenizi girin, yanlış şifre girerseniz yanlış KeyHash verecektir

NOT

Herhangi bir nedenle bir yolda hata veriyorsa, bu yolu çift tırnak içine alın.Ayrıca Windows güç kabuğu benim için iyi çalışmıyor, git bash kullandım (veya komut istemini kullan).

misal

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Redman\.android\debug.keystore" | "C:\openssl-0.9.8k_X64\bin\openssl" sha1 -binary | "C:\openssl-0.9.8k_X64\bin\openssl" base64

1
Çok teşekkür ederim, yeni başlayanlar için çok ayrıntılı bir rehber!
Pablo Quemé

@TamimProduction yukarıdaki prosedürü openssl'nin k sürümüyle deneyin ve code.google.com/archive/p/openssl-for-windows/downloads
Manohar Reddy

@TimimProduction Yanlış şifre girerseniz yanlış keyhash döndürür. Ayrıca anahtar deposunu sildikten sonra apk'yi tekrar yaptınız mı?
Manohar Reddy

@TamimProduction Facebook uygulamasını indirip yükleyin, facebook uygulamasında oturum açın. Uygulamanızı açın ve facebook girişi yapın. Size facebook uygulamasında anahtar karma verecektir, seninle aynı olup olmadığını kontrol edin
Manohar Reddy


16

Kısa bir çözüm de var. Bunu uygulamanızda çalıştırmanız yeterlidir:

FacebookSdk.sdkInitialize(getApplicationContext());
Log.d("AppLog", "key:" + FacebookSdk.getApplicationSignature(this));

FB SDK'ya ihtiyaç duymayan daha uzun bir çözüm ( buradaki bir çözüme dayanarak ):

public static void printHashKey(Context context) {
    try {
        final PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
        for (android.content.pm.Signature signature : info.signatures) {
            final MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            final String hashKey = new String(Base64.encode(md.digest(), 0));
            Log.i("AppLog", "key:" + hashKey + "=");
        }
    } catch (Exception e) {
        Log.e("AppLog", "error:", e);
    }
}

Sonuç "=" ile bitmelidir.


1
Anahtar karmamın içinde FB tarafından izin verilmeyen bir '_' olduğunu fark ettim. Karma kullanmak için onu '/' olarak değiştirmek zorunda kaldım.
Abdelalim Hassouna

Facebook işlevi Facebook -AAAAAAAA_AAAAAA-AAAAAAAAAAtarafından izin verilmediği için anahtarımı döndürdü, printHashKey anahtarı geçerli bir biçimde döndürdü+AAAAAAAA/AAAAAA+AAAAAAAAAA=
GrafOrlov

@GrafOrlov Ne kadar garip. Belki de bazı yeni FB SDK sürümlerinde bir hata var. Bu konuda onlara rapor vermelisin.
android geliştirici

9

Pencereler için:

  1. komut istemini aç ve komutun altına yapıştır

keytool -exportcert -alias androiddebugkey -keystore% HOMEPATH% .android \ debug.keystore | openssl sha1 -binary | openssl base64

  1. Şifre girin: android -> Hit Enter

  2. Oluşturulan Karma Anahtarı Kopyala -> Geliştirici hesabınızla Facebook'a giriş yapın

  3. Facebook Uygulamanıza gidin -> Ayarlar -> Hash tuşunu "anahtar karmaları" seçeneğine yapıştırın -> değişiklikleri kaydedin.

  4. Şimdi Android Uygulamanızı Facebook Giriş / Paylaşım vb. İle test edin.


Anahtar karmasını oluşturdum ama bu anahtarı nereye koyacağımı bilmiyorum, bana rehberlik eder misiniz? Ubuntu'da android stüdyosu kullanıyorum.
Apurva

Merhaba, benim ana faaliyet kod yoluyla karma anahtar oluşturmak mümkün ama oluşturulan karma anahtar sadece tek bir cihaz üzerinde çalışmaktır. Aynı apk'yi başka bir cihaza yüklediğimde ve geçersiz karma anahtar hatası gösterdiğini çalıştırdığımda. Kaçırdığım bir şey var mı?
Deepak

8

API 26 beri , Facebook SDK gerek kalmadan KOTLIN aşağıdaki kodu kullanarak HASH KEYS üretebilirsiniz .

fun generateSSHKey(context: Context){
    try {
        val info = context.packageManager.getPackageInfo(context.packageName, PackageManager.GET_SIGNATURES)
        for (signature in info.signatures) {
            val md = MessageDigest.getInstance("SHA")
            md.update(signature.toByteArray())
            val hashKey = String(Base64.getEncoder().encode(md.digest()))
            Log.i("AppLog", "key:$hashKey=")
        }
    } catch (e: Exception) {
        Log.e("AppLog", "error:", e)
    }

}

resim açıklamasını buraya girin


Yani kodunuzu ben yerleştiriyorum class MainActivity: FlutterActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) GeneratedPluginRegistrant.registerWith(this) } }
asdfasdf

6

Bu şekilde elde ettim:

private class SessionStatusCallback implements Session.StatusCallback {
        @Override
        public void call(Session session, SessionState state, Exception exception) {

            if (exception != null) {
                new AlertDialog.Builder(FriendActivity.this)
                        .setTitle(R.string.login_failed_dialog_title)
                        .setMessage(exception.getMessage())
                        .setPositiveButton(R.string.ok_button, null)
                        .show();
            }

Anahtar olmadan girmeye çalıştığınızda, bir istisna oluşacaktır. Facebook SAĞ tuşunu bu istisnayı içine aldı. Tek yapmanız gereken kopyalamak.


Anahtar karmasını oluşturdum ama bu anahtarı nereye koyacağımı bilmiyorum, bana rehberlik eder misiniz? Ubuntu'da android stüdyosu kullanıyorum.
Apurva

6

Uygulamayı Play Store'a zaten yüklediyseniz Hash Key'i aşağıdaki gibi oluşturabilirsiniz:

1) Sürüm Yönetimine buradan gidin

2) Sürüm Yönetimi -> Uygulama İmzalama'yı seçin

3) SHA1 anahtarını onaltılık formatta Uygulama imzalama sertifikasında görebilirsiniz.


4) SHA1'i onaltılı biçimde kopyalayın ve base64 formatına dönüştürün, bu bağlantıyı SHA1: hex'in bir parçası olmadan yapabilirsiniz.


5) Facebook geliştirici konsoluna gidin ve anahtarı - (temel 64'e dönüştürdükten sonra) ayarlara ekleyin -> temel -> anahtar karmaları.



3

Download açık ssl :

Ardından path sistem değişkenlerine openssl \ bin ekleyin:

Bilgisayarım -> özellikler -> Gelişmiş yapılandırmalar -> Gelişmiş -> Sistem değişkenleri -> sistem değişkenleri altında yolu bul ve bunu sonuna ekle:; yourFullOpenSSLDir \ bin

Şimdi jdk \ bin klasörünüzde bir komut satırı açın C: \ Program Files \ Java \ jdk1.8.0_40 \ bin (Windows'ta shift tuşunu basılı tutup sağ tıklayın -> burada komut satırını aç) ve şunu kullanın:

keytool -exportcert -alias keystorealias -keystore C:\yourkeystore\folder\keystore.jks | openssl sha1 -binary | openssl base64

Ve parolayı verdikten sonra oluşturduğu 28 uzunluk numarasını kopyalayın.


Orijinal cevabın zaten openssl bağlantısına sahip olduğunu görmedim. Ancak sistem değişkeni için hala yararlıdır.
6'da 31 sagits

Anahtar karmasını oluşturdum ama bu anahtarı nereye koyacağımı bilmiyorum, bana rehberlik eder misiniz? Ubuntu'da android stüdyosu kullanıyorum.
Apurva

Tabii, 28 uzunluk numarasını oluşturduğunuzdan emin misiniz? Öyleyse, şimdi facebook geliştirici (google'da arama) sitesine gitmeniz ve yeni bir uygulama oluşturmanız gerekiyor, ayarlar altında yeni bir Android uygulaması ekleyebilirsiniz, oraya keyhash'inizi ve etkinlik adınızı (giriş kodunun bulunduğu yere yapıştırın) ). Facebook'ta da bu konuda bir öğretici var
18'de sagits

Hızlı cevap için teşekkürler,
birazdan

3

Bunlardan birini uygulamanızda çalıştırın:

FacebookSdk.sdkInitialize(getApplicationContext());
Log.d("AppLog", "key:" + FacebookSdk.getApplicationSignature(this)+"=");

Veya bu:

public static void printHashKey(Context context) {
    try {
        final PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
        for (android.content.pm.Signature signature : info.signatures) {
            final MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            final String hashKey = new String(Base64.encode(md.digest(), 0));
            Log.i("AppLog", "key:" + hashKey + "=");
        }
    } catch (Exception e) {
        Log.e("AppLog", "error:", e);
    }
}

Ve sonra günlüklere bakın.

Sonuç "=" ile bitmelidir.

Çözüm burada ve burada dayanıyor .


3

KOLAY YOL -> Açmayın openssl -> GIT BASH KULLANIN!

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

Varsayılan şifre "android"

Çoğumuz Git Bash kurduk, bu benim en sevdiğim yol.


3

bu yeni başlayanlara da yardımcı olacaktır.

@ coder_For_Life22'nin cevabına daha fazla ayrıntı ekleyerek.

eğer bu cevap yardımcı olursa, oy vermeyi unutma. bizi motive ediyor.

bunun için uygulamanın anahtar deposu dosyasının yolunu ve

bu örnek için parolayı zaten bilmeniz gerekir , anahtarın "c: \ keystorekey \ new.jks" adresinde saklandığını düşünün

1. bu sayfayı açın https://code.google.com/archive / p / windows için windows / indirmeler

2. Windows işletim sisteminize göre 32 veya 64 bit zip dosyası indirin.

3. indirilen dosyayı istediğiniz yere çıkarın ve yolu hatırlayın.

4. Bu örnek için indirme klasöründeki klasörü çıkardığınızı düşünüyoruz.

bu nedenle dosya adresi "C: \ Users \ 0 \ Downloads \ openssl-0.9.8e_X64 \ bin \ openssl.exe" olacaktır;

5. şimdi klavyede windows + r düğmesine basın.

6. Bu çalışma kutusunu açacaktır.

7. cmd yazın ve Ctrl + Shift + Enter tuşlarına basın .

8. Bu komut istemini yönetici olarak açar.

9. burada java'nın bin klasörüne gidin:

Android Studio tarafından sağlanan jre'yi kullanıyorsanız, yolu aşağıdaki gibi bulacaksınız:
a. açık android stüdyosu.
b. dosya-> proje yapısı
c. sol bölmede "SDK konumu" nu tıklayın
d. sağ bölmede, 'JDK konumu'nun altında jre yolunuz bulunur.
e. Bu yolun sonuna "keytool.exe" dosyası olarak "\ bin" ekleyin, ihtiyacımız olan bu klasörün içinde.
düşündüğüm bu örnek için,
"C: \ Program Files \ Java \ jre-10.0.2 \ bin"
32bit java yüklediyseniz
"C: \ Program Files (x86) \ Java \ jre-10.0.2 \ bin"
10 içinde olacaktır. yukarıdaki yollarla komutu aşağıdaki gibi çalıştırın:

keytool -exportcert -alias androiddebugkey -keystore "c:\keystorekey\new.jks" | "C:\Users\0\Downloads\openssl-0.9.8e_X64\bin\openssl.exe" sha1 -binary |"C:\Users\0\Downloads\openssl-0.9.8e_X64\bin\openssl.exe" base64
  1. Sizden şifre istenecektir, anahtar deposu anahtarı oluştururken verdiğiniz şifreyi verin.

    !!!!!! bu sana anahtarı verecek

hatalar: şunu alırsanız:
---
'keytool' dahili veya harici komut olarak tanınmaz
---
bu java'nın başka bir yere kurulduğu anlamına gelir.


3

adım 1-> C: \ Program Dosyaları \ Java \ jdk1.6.0_43 \ bin>

Adım 2-> keytool -list -v -keystore C: \ Kullanıcılar \ leon \ .android \ debug.keystore -alias androiddebugkey -storepass android -keypass android

u var SHA1 değeri bu bağlantıyı tıklayın u dönüştürmek ur SHA1 değeri HASH ANAHTAR

im% 100 emin bu bağlantı size yardımcı olacaktır



2

Tüm parmak izlerinizi https://console.developers.google.com/projectselector/apis/credentials adresinden alabilirsiniz
Ve bu Kotlin kodunu keyhash'e dönüştürmek için kullanın:

fun main(args: Array<String>) {
    listOf("<your_production_sha1_fingerprint>",
            "<your_debug1_sha1_fingerprint>",
            "<your_debug2_sha1_fingerprint>")
            .map { it.split(":") }
            .map { it.map { it.toInt(16).toByte() }.toByteArray() }
            .map { String(Base64.getEncoder().encode(it)) }
            .forEach { println(it) }
}

1

https://developers.facebook.com/docs/android/getting-started/

4.19.0 - 25 Ocak 2017

Facebook SDK'sı

Değiştirilmiş

Facebook SDK artık uygulama başladığında otomatik olarak başlatılıyor. Çoğu durumda artık bir FacebookSDK.sdkInitialize () çağrısına gerek yoktur. Daha fazla ayrıntı için yükseltme kılavuzuna bakın.

Hata Ayıklama için

try {
    PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
    for (Signature signature : info.signatures) {
        MessageDigest md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
    }
} catch (NoSuchAlgorithmException e) {
    e.printStackTrace();
} catch (Exception e) {
    e.printStackTrace();
}

1

Sadece bu kodu çalıştırmak için de OnCreateView Veya OnStart actvity ve bu İşlevini İade Eğer Kalkınma Anahtar Karması .

private String generateKeyHash() {
    try {
        PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = (MessageDigest.getInstance("SHA"));
            md.update(signature.toByteArray());
            return new String(Base64.encode(md.digest(), 0));
        }
    }catch (Exception e) {
        Log.e("exception", e.toString());
    }
    return "key hash not found";
}

0

Aynı sorunu yaşıyordum, bir şifre istenmiyordu ve anahtar deposu dosyası için yanlış bir yol vardı gibi görünüyor.

Aslında, keytool ayarladığınız anahtar deposunu bulamazsa, bir tane oluşturacak ve doğru anahtarı kullanmadığı için size yanlış anahtar verecektir.

Genel kural, sizden şifre istenmezse, yanlış anahtar üretilir.


Anahtar karmasını oluşturdum ama bu anahtarı nereye koyacağımı bilmiyorum, bana rehberlik eder misiniz? Ubuntu'da android stüdyosu kullanıyorum.
Apurva

0

Bu apk'yi kullanabilirsiniz

1.first install the app from the Google play store
2.install the above apk
3.launch the apk and input the package name of your app
4.then you will get the hash code you want

@Elynad Çince: D
armnotstrong


0

keytool -exportcert -alias androiddebugkey -keystore "C: \ Kullanıcılar ** Deepak **. android \ debug.keystore" | " C: \ Kullanıcılar \ Deepak \ ssl \ bin \ openssl" sha1 -binary | " C: \ Kullanıcılar \ Deepak \ ssl \ bin \ openssl" base64

2 Yukarıdaki komuttaki değişiklikler 1.Deepak === Sisteminiz tarafından değiştirin KULLANICI ADI 2.C: \ Users \ Deepak \ ssl === Açık SSL yolunuzu değiştirin

bu komutu çalıştır ve böyle çıktı al

C: \ Kullanıcılar \ Deepak> keytool -exportcert -alias androiddebugkey -keystore "C: \ Users \ D eepak.android \ debug.keystore" | "C: \ Kullanıcılar \ Deepak \ ssl \ bin \ openssl" sha1 -binary | "C: \ Kullanıcılar \ Deepak \ ssl \ bin \ openssl" base64 Anahtar deposu şifresini girin: ****** ga0RGNY ****************** =


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.