ฉันไม่เข้าใจกระบวนการนี้เลย ฉันสามารถนำทางไปยังโฟลเดอร์ที่มี keytool ใน Java SDK ได้ แม้ว่าฉันจะได้รับข้อผิดพลาด openssl ไม่ได้รับการยอมรับว่าเป็นคำสั่งภายในหรือภายนอก ปัญหาคือแม้ว่าฉันจะสามารถทำงานได้ฉันจะทำอะไรและทำอะไรต่อไป
ฉันไม่เข้าใจกระบวนการนี้เลย ฉันสามารถนำทางไปยังโฟลเดอร์ที่มี keytool ใน Java SDK ได้ แม้ว่าฉันจะได้รับข้อผิดพลาด openssl ไม่ได้รับการยอมรับว่าเป็นคำสั่งภายในหรือภายนอก ปัญหาคือแม้ว่าฉันจะสามารถทำงานได้ฉันจะทำอะไรและทำอะไรต่อไป
คำตอบ:
นี่คือสิ่งที่คุณต้องทำ -
ดาวน์โหลด openSSl จากCode Extract สร้างโฟลเดอร์ - OpenSSL ใน C: / และคัดลอกรหัสที่แยกออกมาที่นี่
ตรวจจับเส้นทางไฟล์ debug.keystore หากคุณไม่พบให้ทำการค้นหาใน C: / และใช้ Path ในคำสั่งในขั้นตอนถัดไป
ตรวจสอบเส้นทาง keytool.exe ของคุณและไปที่พรอมต์คำสั่ง dir / in และเรียกใช้คำสั่งนี้ใน 1 บรรทัด
$ keytool -exportcert -alias androiddebugkey -keystore "C:\Documents and Settings\Administrator.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64
มันจะถามรหัสผ่านใส่ android นั่นคือทั้งหมด คุณจะได้รับแฮชคีย์
android
รหัสผ่านเริ่มต้นคือ
สำหรับ Linux และ Mac
เปิดเทอร์มินัล:
สำหรับ Debug Build
keytool -exportcert -alias androiddebugkey -keystore debug.keystore | openssl sha1 -binary | openssl base64
คุณจะพบdebug.keystoreในโฟลเดอร์ ".android" คัดลอกและวางลงบนเดสก์ท็อปและเรียกใช้คำสั่งด้านบน
สำหรับรุ่น Build
keytool -exportcert -alias <aliasName> -keystore <keystoreFilePath> | openssl sha1 -binary | openssl base64
หมายเหตุ:ตรวจสอบให้แน่ใจว่าในทั้งสองกรณีจะขอรหัสผ่าน หากไม่ขอรหัสผ่านก็หมายความว่ามีบางอย่างผิดปกติในคำสั่ง รหัสผ่านสำหรับdebug.keystoreเป็น" หุ่นยนต์ "และสำหรับการเปิดตัวคุณจะต้องป้อนรหัสผ่านที่คุณตั้งในระหว่างการสร้างที่เก็บคีย์
keytool -exportcert -alias <aliasName> -keystore <keystoreFilePath>
คนเดียวในตอนแรกเพื่อดูว่าทุกอย่างโอเค นอกจากนี้เมื่อไพพ์, keytool อยู่ในโหมดไม่โต้ตอบและแสดงรหัสผ่านเป็นข้อความธรรมดาเมื่อคุณป้อน ดังนั้นคุณควรเขียนสคริปต์ขนาดเล็กที่รันคำสั่งแยกกัน
โปรดลองสิ่งนี้:
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);
}
}
OpenSSL: คุณมีการติดตั้งว่าถ้ามันไม่ได้มาติดตั้งกับระบบปฏิบัติการของคุณ(เช่น Windows ไม่ได้มีมันติดตั้งไว้แล้ว) วิธีการติดตั้งที่ขึ้นอยู่กับระบบปฏิบัติการของคุณ (สำหรับ Windows ให้ตรวจสอบลิงค์ที่ให้ไว้โดย coder_For_Life22)
วิธีที่ง่ายที่สุดโดยไม่ต้องเล่นซอคือการคัดลอกไบนารี openssl.exe ไปยังพา ธ keytool ของคุณหากคุณใช้ Windows หากคุณไม่ต้องการทำเช่นนั้นคุณต้องเพิ่มลงในPATH
ตัวแปรสภาพแวดล้อมของคุณ จากนั้นดำเนินการคำสั่งที่ระบุไว้ในเอกสาร
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
โปรดทราบว่าอาร์กิวเมนต์หลังจาก-keystore
ชี้ไปที่ที่เก็บคีย์การดีบักของคุณ ตำแหน่งนี้ยังขึ้นอยู่กับระบบปฏิบัติการของคุณ ควรอยู่ในตำแหน่งใดตำแหน่งหนึ่งต่อไปนี้:
หากคุณทำทุกอย่างถูกต้องคุณควรได้รับพร้อมท์ให้ใส่รหัสผ่าน นั่นคือandroid
สำหรับใบรับรองการดีบัก หากรหัสผ่านถูกต้องคอนโซลพิมพ์แฮช (ตัวอักษรและตัวเลขสุ่ม)
ใช้สิ่งนั้นและคัดลอกลงในandroid key hash
ฟิลด์ภายในการตั้งค่าแอพของคุณบน facebook ในการไปที่นั่นให้ไปที่Developers.facebook.com/appsเลือกแอพของคุณไปที่Edit settings
และเลื่อนลง หลังจากนั้นรอสักครู่จนกว่าการเปลี่ยนแปลงจะมีผล
เพื่อสร้างแฮชคีย์ของคุณบนคอมพิวเตอร์ในพื้นที่ของคุณให้รันยูทิลิตี keytool ของ Java (ซึ่งควรอยู่บนพา ธ ของคอนโซล) กับที่เก็บคีย์การดีบัก Android นี่คือค่าเริ่มต้นในไดเรกทอรี. android ของคุณ) บน OS X ให้รัน:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
บน Windows ให้ใช้: -
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
หวังว่านี่จะช่วยคุณได้
Ref - เว็บไซต์ facebook สำหรับนักพัฒนา
คุณสามารถใช้จาวาสคริปต์บรรทัดเดียวในคอนโซลเบราว์เซอร์เพื่อแปลงคีย์แผนที่ฐานสิบหกเป็น base64 เปิดคอนโซลในเบราว์เซอร์ใหม่ล่าสุด (F12 ใน Windows) และวางโค้ดและแทนที่SHA-1
, SHA-256
แผนที่ hex ว่า Google เล่นให้อยู่ภายใต้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="
นี่คือรายละเอียดที่สมบูรณ์(สำหรับ Windows)
1.ดาวน์โหลดOpenSSlทั้ง 3 หรือ 4 (โดย e จะทำงานได้ดีขึ้น) ตามระบบ 32 บิตหรือ 64 บิต
2.แตกไฟล์ zip ที่ดาวน์โหลดมาไว้ในไดเรกทอรี C
3.เปิดโฟลเดอร์ที่แตกแล้วขึ้นมาที่ bin และคัดลอกพา ธ ควรเป็นอย่างเช่นC:\openssl-0.9.8k_X64\bin\openssl
(เพิ่ม \ openssl ที่ส่วนท้าย)
4. (รับเส้นทางไปยังโฟลเดอร์ bin ของ Jdk หากคุณรู้วิธีให้ละเว้นสิ่งนี้)
เปิด android studio ~ file ~ โครงสร้างโครงการ (ctrl + alt + shift + s) เลือกตำแหน่ง SDK ในแผงด้านซ้ายคัดลอกตำแหน่ง JDK และเพิ่ม / bin ลงไป
ดังนั้นตำแหน่ง JDK สุดท้ายจะเป็นเช่นนั้น C:\Program Files\Android\Android Studio\jre\bin
เรากำลังติดตามวิธีนี้เพื่อรับตำแหน่ง Jdk เพราะคุณอาจใช้ jdk แบบฝังเช่นฉัน
ตอนนี้คุณมีตำแหน่ง OpenSSl และตำแหน่ง JDK
5.ตอนนี้เราต้องการตำแหน่งที่เก็บคีย์ debug สำหรับที่เปิด C ~> Users ~> YourUserName ~> .android ควรมีชื่อไฟล์ debug.keystore ตอนนี้คัดลอกตำแหน่งพา ธ มันควรจะมีบางอย่างเช่น
C:\Users\Redman\.android\debug.keystore
6.ตอนนี้เปิดพร้อมรับคำสั่งและพิมพ์คำสั่ง
cd YourJDKLocationFromStep4
ในกรณีของฉัน
cd "C:\Program Files\Android\Android Studio\jre\bin"
7.ตอนนี้สร้างคำสั่งต่อไปนี้
keytool -exportcert -alias androiddebugkey -keystore YOURKEYSTORELOCATION | YOUROPENSSLLOCATION sha1 -binary | YOUROPENSSLLOCATION base64
ในกรณีของฉันคำสั่งจะมีลักษณะ
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
ตอนนี้ป้อนคำสั่งนี้ในพรอมต์คำสั่งหากคุณทำสิ่งที่ถูกต้องคุณจะถูกถามรหัสผ่าน (รหัสผ่านเป็น Android)
Enter keystore password: android
คุณจะได้รับ Key Hash เพียงคัดลอกและใช้
สำหรับ KeyHash ที่ลงชื่อแล้วให้สร้างคำสั่งต่อไปนี้
keytool -exportcert -alias YOUR_ALIAS_FOR_JKS -keystore YOUR_JKS_LOCATION | YOUROPENSSLLOCATION sha1 -binary | YOUROPENSSLLOCATION base64
ป้อนรหัสผ่านที่เก็บคีย์ของคุณหากคุณป้อนรหัสผ่านผิดรหัสผ่านจะให้ KeyHash ผิด
บันทึก
หากด้วยเหตุผลบางอย่างถ้ามันให้ข้อผิดพลาดที่บางเส้นทางแล้วตัดเส้นทางนั้นด้วยเครื่องหมายคำพูดคู่นอกจากนี้ Windows power shell ไม่ทำงานได้ดีสำหรับฉันฉันใช้ git bash (หรือใช้ command command)
ตัวอย่าง
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
มีวิธีแก้ไขปัญหาสั้น ๆ เช่นกัน เพียงเปิดใช้งานในแอปของคุณ:
FacebookSdk.sdkInitialize(getApplicationContext());
Log.d("AppLog", "key:" + FacebookSdk.getApplicationSignature(this));
อีกต่อไปที่ไม่ต้องใช้ FB SDK (ขึ้นอยู่กับการแก้ปัญหาที่นี่ ):
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);
}
}
ผลลัพธ์ควรลงท้ายด้วย "="
-AAAAAAAA_AAAAAA-AAAAAAAAAA
ไม่ได้รับอนุญาตจาก Facebook printHashKey ส่งคืนกุญแจในรูปแบบที่ถูกต้อง+AAAAAAAA/AAAAAA+AAAAAAAAAA=
สำหรับ Windows:
keytool -exportcert -alias androiddebugkey -keystore% HOMEPATH% .android \ debug.keystore | openssl sha1 -binary | openssl base64
ป้อนรหัสผ่าน: android -> กด Enter
คัดลอกรหัสสร้างแฮช -> ลงชื่อเข้าใช้ Facebook ด้วยบัญชีนักพัฒนาซอฟต์แวร์ของคุณ
ไปที่แอพ Facebook ของคุณ -> การตั้งค่า -> วางแฮชคีย์ในตัวเลือก "แฮชคีย์" -> บันทึกการเปลี่ยนแปลง
ทดสอบแอพ android ของคุณด้วย Facebook Log-in / Share เป็นต้น
ตั้งแต่ API 26 คุณสามารถสร้างคีย์แฮชของคุณโดยใช้รหัสต่อไปนี้ในKOTLINโดยไม่จำเป็นต้องใช้ Facebook SDK
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)
}
}
class MainActivity: FlutterActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) GeneratedPluginRegistrant.registerWith(this) } }
นั่นคือวิธีที่ฉันได้รับ:
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();
}
ดังนั้นเมื่อคุณพยายามป้อนโดยไม่ใช้คีย์ข้อยกเว้นจะเกิดขึ้น Facebook ใส่รหัส RIGHT ลงในข้อยกเว้นนี้ สิ่งที่คุณต้องทำคือคัดลอก
หากคุณได้อัปโหลดแอปไปยัง Play store แล้วคุณสามารถสร้างรหัสแฮชได้ดังนี้:
1) ไปที่การจัดการการเผยแพร่ที่นี่
2) เลือก Release Management -> Signing App
3) คุณสามารถเห็นคีย์ SHA1 ในรูปแบบฐานสิบหกใบรับรองการลงนามแอป
4) คัดลอก SHA1 ในรูปแบบเลขฐานสิบหกและแปลงเป็นรูปแบบ base64 คุณสามารถใช้ลิงก์นี้โดยไม่ใช้ SHA1: ส่วนหนึ่งของฐานสิบหก
5) ไปที่คอนโซลผู้พัฒนา Facebook และเพิ่มรหัส (หลังจากแปลงเป็นฐาน 64) ในการตั้งค่า -> พื้นฐาน -> แฮชของคีย์
จากนั้นเพิ่ม openssl \ bin ให้กับตัวแปรระบบพา ธ :
คอมพิวเตอร์ของฉัน -> คุณสมบัติ -> การกำหนดค่าขั้นสูง -> ขั้นสูง -> ตัวแปรระบบ -> ภายใต้ตัวแปรระบบค้นหาเส้นทางและเพิ่มสิ่งนี้ในตอนท้าย:; yourFullOpenSSLDir \ bin
ตอนนี้เปิดบรรทัดคำสั่งในโฟลเดอร์ jdk \ bin ของคุณ C: \ Program Files \ Java \ jdk1.8.0_40 \ bin (บน windows ค้างกะและคลิกขวา -> บรรทัดคำสั่งเปิดที่นี่) และใช้:
keytool -exportcert -alias keystorealias -keystore C:\yourkeystore\folder\keystore.jks | openssl sha1 -binary | openssl base64
และคัดลอกหมายเลข 28 ความยาวที่สร้างขึ้นหลังจากให้รหัสผ่าน
เรียกใช้สิ่งนี้ในแอปของคุณ:
FacebookSdk.sdkInitialize(getApplicationContext());
Log.d("AppLog", "key:" + FacebookSdk.getApplicationSignature(this)+"=");
หรือสิ่งนี้:
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);
}
}
และจากนั้นดูที่บันทึก
ผลลัพธ์ควรลงท้ายด้วย "="
การแก้ปัญหาจะขึ้นอยู่กับที่นี่และที่นี่
วิธีง่าย ๆ -> อย่าติดตั้ง openssl -> ใช้ GIT BASH!
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
รหัสผ่านเริ่มต้นคือ "android"
พวกเราส่วนใหญ่ติดตั้ง Git Bash ดังนั้นนี่เป็นวิธีที่ฉันชอบ
นี้จะช่วย newbees ด้วย
เพียงเพิ่มรายละเอียดเพิ่มเติมในคำตอบของ @ coder_For_Life22
ถ้าคำตอบนี้ช่วยคุณอย่าลืมโหวต มันกระตุ้นเรา
สำหรับสิ่งนี้คุณต้องทราบเส้นทางของไฟล์ที่เก็บคีย์และรหัสผ่านของแอป
สำหรับตัวอย่างนี้ให้พิจารณาว่าคีย์ถูกเก็บไว้ที่ "c: \ keystorekey \ new.jks"
1. เปิดหน้านี้ https://code.google.com/archive / p / openssl-for-windows / ดาวน์โหลด
2. ดาวน์โหลดไฟล์ zip 32 หรือ 64 บิตตามระบบปฏิบัติการ windows ของคุณ
3. แยกไฟล์ที่ดาวน์โหลดมาซึ่งคุณต้องการและจดจำเส้นทาง
4. สำหรับตัวอย่างนี้เราพิจารณาว่าคุณได้แตกโฟลเดอร์ในโฟลเดอร์ดาวน์โหลดแล้ว
ดังนั้นที่อยู่ไฟล์จะเป็น "C: \ Users \ 0 \ Downloads \ openssl-0.9.8e_X64 \ bin \ openssl.exe";
5. บนแป้นพิมพ์กดปุ่ม windows + r
6. จะเป็นการเปิดกล่องวิ่ง
7. พิมพ์ cmd และกดCtrl + Shift + Enter
8. สิ่งนี้จะเปิดพร้อมรับคำสั่งในฐานะผู้ดูแลระบบ
9. นี่นำทางไปยังโฟลเดอร์ bin ของ Java:
ถ้าคุณใช้บริการที่มีให้ JRE โดย Android สตูดิโอที่คุณจะหาเส้นทางดังนี้
เปิด android studio
ข File-> โครงสร้างโครงการ
ค ในบานหน้าต่างด้านซ้ายคลิก 'ตำแหน่ง SDK'
d ในบานหน้าต่างด้านขวาด้านล่าง 'ตำแหน่ง JDK' เป็นเส้นทาง jre ของคุณ
อี เพิ่ม "\ bin" ที่ท้ายเส้นทางนี้เป็นไฟล์ "keytool.exe" ที่เราต้องการอยู่ในโฟลเดอร์นี้
สำหรับตัวอย่างนี้ฉันพิจารณา
"C: \ Program Files \ Java \ jre-10.0.2 \ bin"
"C: \ Program Files (x86) \ Java \ jre-10.0.2 \ bin"
10. ตอนนี้โดยใช้คำสั่ง path ข้างต้นดำเนินการดังต่อไปนี้:
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
ข้อผิดพลาด: ถ้าคุณได้รับ:
---
'keytool' ไม่ได้รับการยอมรับว่าเป็นคำสั่งภายในหรือภายนอก
---
ซึ่งหมายความว่ามีการติดตั้งจาวาไว้ที่อื่น
ขั้นตอนที่ 1-> C: \ Program Files \ Java \ jdk1.6.0_43 \ bin>
ขั้นตอนที่ 2> keytool -list -v -keystore C: \ Users \ leon \ .android \ debug.keystore -alias androiddebugkey -passpass android -keypass android
คุณได้รับค่าSHA1 คลิกที่ลิงค์นี้และแปลงค่า SHA1 ของคุณเป็น HASH KEY
ฉันแน่ใจว่าลิงค์นี้จะช่วยคุณได้ 100%
ทางที่ง่าย
เมื่อใช้เว็บไซต์นี้คุณสามารถรับ Hash Key ได้โดยการแปลงคีย์ SHA1 เป็น Hash Key สำหรับ Facebook
คุณสามารถรับลายนิ้วมือได้จากhttps://console.developers.google.com/projectselector/apis/credentials
และใช้รหัส Kotlin นี้เพื่อแปลงเป็น keyhash:
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) }
}
https://developers.facebook.com/docs/android/getting-started/
4.19.0 - 25 มกราคม 2017
Facebook SDK
ดัดแปลง
Facebook SDK จะเริ่มต้นโดยอัตโนมัติเมื่อแอปพลิเคชันเริ่มต้น ในกรณีส่วนใหญ่ไม่จำเป็นต้องโทรไปที่ FacebookSDK.sdkInitialize () อีกต่อไป ดูคู่มือการอัพเกรดสำหรับรายละเอียดเพิ่มเติม
สำหรับ Debug
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();
}
เพียงแค่เรียกใช้รหัสนี้ในของคุณOnCreateViewหรือOnStart Actvity และฟังก์ชั่นนี้กลับมาให้คุณพัฒนากุญแจแฮ
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";
}
ฉันพบปัญหาเดียวกันฉันไม่ได้ขอรหัสผ่านและดูเหมือนว่าฉันมีเส้นทางที่ไม่ถูกต้องสำหรับไฟล์ที่เก็บคีย์
ในความเป็นจริงหาก keytool ไม่พบที่เก็บคีย์ที่คุณได้ตั้งค่ามันจะสร้างขึ้นมาใหม่และให้คีย์ผิดเนื่องจากคุณไม่ได้ใช้ที่ถูกต้อง
กฎทั่วไปคือถ้าคุณไม่ได้ถูกถามรหัสผ่านคุณจะต้องสร้างรหัสผิด
คุณสามารถใช้apkนี้
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
ลองคำตอบนี้
https://stackoverflow.com/a/54513168/9236994
ด้วยความพยายามเพียงเล็กน้อยช่วยในการแก้ไขปัญหา
keytool -exportcert -alias androiddebugkey -keystore "C: \ Users ** Deepak **. android \ debug.keystore" | " C: \ Users \ Deepak \ ssl \ bin \ openssl" sha1 -binary | " C: \ Users \ Deepak \ ssl \ bin \ openssl" base64
2 การเปลี่ยนแปลงในคำสั่งด้านบนนี้ 1.Deepak === แทนที่ด้วยระบบของคุณ USERNAME 2.C: \ Users \ Deepak \ ssl === ทำการรีโหลดเส้นทาง Open SSL ของคุณ
เรียกใช้คำสั่งนี้และรับผลลัพธ์เช่นนี้
C: \ Users \ Deepak> keytool -exportcert -alias androiddebugkey -keystore "C: \ Users \ D eepak.android \ debug.keystore" | "C: \ Users \ Deepak \ ssl \ bin \ openssl" sha1 -binary | "C: \ Users \ Deepak \ ssl \ bin \ openssl" base64 ป้อนรหัสผ่านที่เก็บคีย์: ****** ga0RGNY ****************** =
หากใครบางคนมีปัญหากับ openssl ให้ทำตามคำแนะนำนี้:
แค่นั้นแหละ
https://sourceforge.net/projects/openssl/files/latest/download