วิธีรับใบรับรองลายนิ้วมือ SHA-1 ใน Android Studio สำหรับโหมดแก้ไขข้อบกพร่อง


491

ผมได้ขยับตัวเองจากEclipseเพื่อAndroid สตูดิโอ ตอนนี้ฉันกำลังพยายามทำงานบนแอพ Map ของฉัน ดังนั้นฉันต้องการหมายเลขใบรับรองลายนิ้วมือ SHA-1 ของฉัน

เมื่อฉันถูกใช้ Eclipse มันเป็นสิทธิภายใต้Windows -> Preferences -> Android -> รูปร่าง แต่ใน Android Studio ฉันไม่พบตัวเลือกใด ๆ เช่นนี้เพื่อที่ฉันจะสามารถหาลายนิ้วมือได้อย่างง่ายดาย ฉันใช้ Windows ฉันได้อ่านจากลิงค์นี้ที่:

Android Studio ลงชื่อเข้าใช้แอปของคุณในโหมดดีบักโดยอัตโนมัติเมื่อคุณเรียกใช้หรือดีบักโครงการของคุณจาก IDE

ดังนั้นฉันจึงพยายามรันในบรรทัดคำสั่งหลังจากตั้งค่าเส้นทาง Java bin ของฉันจากลิงก์นี้และน่าเสียดายที่ไม่พบลายนิ้วมือ มันเป็นเรื่องที่บอกว่ามันเป็นตัวเลือกที่ผิดกฎหมาย

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

มีวิธีในการค้นหาลายนิ้วมือ SHA-1 จาก Android Studio เหมือนมันง่ายมากใน Eclipse หรือไม่? เมื่อฉันเป็นมือใหม่ใน Android Studio กระบวนการทั้งหมดในการค้นหาคืออะไร

อีกสิ่งหนึ่งที่ฉันต้องการเพิ่มคือฉันให้ Eclipse สร้างลายนิ้วมือ SHA-1 และก่อนหน้านี้ฉันมีแอปของฉันลงทะเบียนบนลายนิ้วมือนั้นในคอนโซลนักพัฒนาซอฟต์แวร์ของ Google และฉันทำงานกับแอปนั้นใน Eclipse ด้วยรหัส API นั้น คีย์ API เดียวกันนี้สามารถใช้กับโครงการของฉันใน Android Studio ได้หรือไม่


1
วิธีที่ง่ายที่สุดในการรับ SHA-1 สำหรับการเปิดตัวและการดีบักโหมด android studio gradle ตรวจสอบสิ่งนี้
Naeem Ibrahim

ลองทำสิ่งต่อไปนี้: วิธีการรับ -sha-1-key-in-android-studio?
Himanshu itmca

คำตอบ:


1252

วิธีที่ง่ายที่สุดที่เคย:

เพิ่มการอัปเดตสำหรับ Android Studio V 2.2 ในขั้นตอนสุดท้ายแล้ว

มีสองวิธีในการทำเช่นนี้

1. วิธีที่เร็วกว่า :

  1. เปิด Android Studio
  2. เปิดโครงการของคุณ
  3. คลิกที่ Gradle (จากแผงด้านขวาคุณจะเห็นแถบ Gradle )
  4. คลิกที่รีเฟรช (คลิกที่รีเฟรชจากแถบ Gradleคุณจะเห็นรายการสคริปต์ Gradle ของโครงการของคุณ)
  5. คลิกที่โครงการของคุณ( รายการแบบฟอร์มชื่อโครงการของคุณ(root))
  6. คลิกที่ Tasks
  7. คลิกที่ Android
  8. ดับเบิ้ลคลิกที่ signReport (คุณจะได้รับSHA1และMD5ในRun Bar (บางครั้งมันจะอยู่ใน Gradle Console))
  9. เลือกโมดูลแอพจากดรอปดาวน์การเลือกโมดูลเพื่อเรียกใช้หรือแก้ไขข้อบกพร่องแอปพลิเคชันของคุณ

ตรวจสอบภาพหน้าจอด้านล่าง:

ป้อนคำอธิบายรูปภาพที่นี่

2. ทำงานกับกิจกรรม Google Maps :

  1. เปิด Android Studio
  2. เปิดโครงการของคุณ
  3. คลิกที่เมนูไฟล์ -> เลือกใหม่ -> คลิกที่Google -> เลือกกิจกรรมของ Google Maps
  4. กล่องโต้ตอบจะปรากฏขึ้น -> คลิกที่เสร็จสิ้น
  5. Android Studio จะสร้างไฟล์XML ชื่อด้วยโดยอัตโนมัติgoogle_maps_api.xml
  6. คุณจะได้รับdebugคีย์SHA1ที่นี่ (ที่หมายเลขบรรทัด 10ของไฟล์ XML)

ตรวจสอบภาพหน้าจอด้านล่าง:

ป้อนคำอธิบายภาพที่นี่

อัพเดต Android Studio V 2.2

มีปัญหากับคือการดำเนินการ

สารละลาย:

  • คลิกที่สลับการทำงาน / โหมดข้อความจากRun bar

ตรวจสอบภาพหน้าจอด้านล่าง:

ป้อนคำอธิบายรูปภาพที่นี่

เสร็จสิ้น


6
ยอดเยี่ยม :) แต่ฉันสามารถใช้ SHA1 นี้ (ผลิตตามที่คุณอธิบาย) ในคอนโซลนักพัฒนาซอฟต์แวร์ของ Google เพื่อสร้างข้อมูลรับรองสำหรับแอปพลิเคชันของฉันได้อย่างไร เพราะมันอยู่ในหน้าต่าง (Signing Report) มันบอกว่า (config: debug) ไม่ใช่โหมด release หรือไม่?
Ashraf Alshahawy

2
ยินดีที่ได้พบวิธีที่ไม่เกี่ยวข้องกับบรรทัดคำสั่ง
Androidcoder

2
คุณเป็นเพื่อนอึนี้ทำงานได้อย่างสมบูรณ์แบบตั้งแต่ฉันไม่สามารถหา debug.keystore ในโฟลเดอร์. android ของฉัน @HirenPatel
Manny265

2
สำหรับการวางจำหน่าย SHA1 สำหรับที่เก็บคีย์โปรดดูstackoverflow.com/questions/15727912/…อันที่หนึ่ง
Hiren Patel

12
ในฐานะที่เป็นของ Android Studio 2.2 มันแสดงให้เห็นในคอนโซล Gradle ไม่ทำงาน
adsamcik

296

ปัญหาของฉันเป็นเช่นเดียวกับฉันได้ยังขยับตัวของฉันGoogle MapsโครงการจากEclipseเพื่อAndroid สตูดิโอ ฉันได้แก้ไขปัญหาของฉันโดยทำตามสิ่งนี้:

ไปที่ไดเร็กทอรี Java bin ของคุณผ่านคำสั่ง:

C:\Program Files\Java\jdk1.7.0_71\bin>

ตอนนี้พิมพ์คำสั่งด้านล่างในหน้าต่างคำสั่งของคุณ (CMD.EXE):

keytool -list -v -keystore c:\users\your_user_name\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

ตัวอย่าง:

keytool -list -v -keystore c:\users\James\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

หรือคุณสามารถเขียนสิ่งนี้เป็นคำสั่งหากคุณไม่ทราบชื่อผู้ใช้:

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

และคุณจะได้รับ SHA1

จากนั้นฉันสร้างรหัสใหม่จากhttps://code.google.com/apis/consoleเนื่องจากชื่อแพ็คเกจของฉันเปลี่ยนไปจากนั้นใช้รหัสนี้ในแอปพลิเคชันของฉัน มันใช้งานได้ดี

ตรวจสอบให้แน่ใจว่าคุณอยู่ในโฟลเดอร์BINของjdkX.X.X_XX (ชื่อโฟลเดอร์ของฉันคือ jdk1.7.0_71)หรืออื่น ๆ หากคุณไม่ทราบชื่อโฟลเดอร์ที่คุณพบจากการเปิดโฟลเดอร์ Java และคุณจะเห็น ชื่อโฟลเดอร์คืออะไร แต่คุณต้องอยู่ในโฟลเดอร์ BIN ของคุณจากนั้นเรียกใช้คำสั่งนี้ วันนี้ฉันมีค่า SHA1 ของฉันในหน้าต่างคำสั่ง cmd โดยขั้นตอนข้างต้น

ภาพรวม:

ป้อนคำอธิบายภาพที่นี่


1
keytool -list -v -keystore "% USERPROFILE% \. android \ debug.keystore" -alias androiddebugkey -storepass android -passpass android -keypass android แทนที่จะพิมพ์ชื่อผู้ใช้ของคุณเอง

ใช่ แต่เป็น "keytool -list -v -keystore"% USERPROFILE% \. android \ debug.keystore "-alias androiddebugkey -storepass android -passpass android -keypass android" แสดงให้เห็นแล้วในหลาย ๆ ตัวอย่างใน stack overflow ... ฉันแค่ต้องการ เพื่อให้อีกตัวอย่าง
Jamil

1
ฉันไม่สามารถคัดลอก SHA1 จาก CMD ดังนั้นฉันจึงย้ายผลลัพธ์ทั้งหมดของคำสั่งที่คุณกำหนดไปยังไฟล์โดยเพิ่ม: > output.txtbehind คำสั่งของคุณ นอกจากนี้คุณยังสามารถเพิ่ม| clipหลังคำสั่ง คุณจะได้ผลลัพธ์ของคำสั่งในคลิปบอร์ด Windows ของคุณ ฉันหวังว่ามันจะช่วยประหยัดเวลาสำหรับผู้อื่น ข้อมูลเพิ่มเติมเกี่ยวกับการใช้ | คลิป
Sjoerd Pottuit

1
@SPuituit: เคล็ดลับที่น่าสนใจclip.exeไม่รู้ว่ามีอยู่แล้วขอบคุณ นอกจากนี้การลบ-vจะให้ SHA1 เป็นเอาต์พุตเท่านั้นหรือใน Windows คุณสามารถ| find "SHA1" | clip
ไพพ์

131

สำหรับ Mac สิ่งนี้ใช้ได้อย่างสมบูรณ์แบบ:

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

ดีสำหรับฉันด้วย
Ranjith Kumar

112

ฉันเพิ่งพบเคสเพื่อรับ SHA-1 ใน Android Studio:

  1. คลิกที่แพ็คเกจและเลือกใหม่ -> Google -> กิจกรรม Google Maps
  2. Android Studio เปลี่ยนเส้นทางคุณไปที่ google_maps_api.xml

google_maps_keyและคุณจะเห็นสิ่งที่คุณต้องการที่จะได้รับ

ภาพ


1
ฉันพบ Sha1 แต่มันทำให้ฉันประหลาดใจกับโครงการมันกล่าวว่า "ข้อผิดพลาด: ข้อยกเว้นระหว่างการทำงานกับระบบภายนอก:" และเปลี่ยนโครงสร้างทั้งหมดในโครงการของฉัน .... ขอบคุณ !!! เพื่ออะไร !!! ฉันคิดว่าไม่มีทางที่จะกลับมา
user3050757

41

ทางออกที่ดีที่สุดสำหรับการสร้างSHA-1ที่สำคัญสำหรับ Android จากAndroid สตูดิโอ

คลิกที่ Gradle ทางด้านขวาสุด:

คลิกที่ไอคอนรีเฟรชแล้วคุณจะเห็นชื่อแอพ:

คลิกที่Tasks -> Report -> Report Signing :

ค้นหาคีย์ SHA-1 ที่ส่วนล่างของคอนโซล:


ขอบคุณสำหรับสิ่งนี้! ไม่มีตัวเลือกอื่นที่ใช้งานได้และนี่ก็เป็นเรื่องง่ายยิ่งขึ้นไปอีก
Kebman

ขอบคุณมากเพื่อน!
Hanish Sharma

บน Android 3.1.4: Tasks -> android -> registrationReport
Mete

คำตอบที่ดีที่สุด
Nurseyit Tursunkulov

36

[อัพเดท 2017]

ขั้นตอนที่ 1: ทางด้านขวาบนของตัวเลือก Android Studio Click On Gradle

Android Studio คลิกที่ตัวเลือก Gradle

ขั้นตอนที่ 2:

- คลิกที่รีเฟรช (คลิกที่รีเฟรชจากแถบ Gradle คุณจะเห็นรายการสคริปต์ Gradle ของโครงการของคุณ)

- คลิกที่โครงการของคุณ (รายการแบบฟอร์มชื่อโครงการของคุณ (รูท))

- คลิกที่ Tasks

- คลิกที่ Android

- ดับเบิ้ลคลิกที่ signReport (คุณจะได้รับ SHA1 และ MD5 ใน Gradle Console / Run Bar)

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนที่ 3: คลิกที่ตัวเลือก Gradle Console ด้านล่างของ Android Studio เพื่อดูรหัส SHA1 ของคุณ

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนที่ 4:ตอนนี้คุณมีคีย์ SHA แต่คุณไม่สามารถเรียกใช้โครงการของคุณได้นั่นคือเหตุผลที่เปลี่ยนการกำหนดค่าของคุณเป็นโหมดแอป ดูภาพด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่

แบบนี้.

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนที่ 5: การเข้ารหัสที่มีความสุข !!


21

ฉันจะตอบ @Hiren Patel แต่เปลี่ยนไปเล็กน้อยใน android studio 2.2

ป้อนคำอธิบายรูปภาพที่นี่


ฉันไม่พบสวิตช์นี้ใน android studio 2.2.2
Zeeshan Shabbir

คุณได้ทำตามคำตอบของ @hiren Patel แล้วหรือยัง?
Arpit Patel

20

สำหรับ Linux & Mac

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

@vicky ตัวอย่างโปรด .. /home/desktop/././ , abc.jks เราต้องใช้รายละเอียดทั้งหมดในรหัสผ่านทั้งหมดหรือไม่?
Prabs

@ แท็บฉันไม่สามารถรับคุณได้ คุณอธิบายอีกหน่อยได้ไหม
Vicky

@ vicky เราจำเป็นต้องแก้ไขคำสั่งก่อนที่จะดำเนินการหรือไม่ถ้าใช่แล้วรายละเอียดอะไรที่เราควรให้ นั่นคือคำถามของฉัน
Prabs

1
@ แท็บคุณไม่จำเป็นต้องให้ข้อมูลเพิ่มเติมใด ๆ สำหรับคีย์ดีบักคุณเพียงแค่เรียกใช้คำสั่งข้างต้นใน linux terminal ของคุณ
Vicky

14
  1. คลิกที่ไอคอน Gradle ในบานหน้าต่างด้านขวา
  2. คลิกที่ชื่อโครงการราก
  3. คลิก Tasks
  4. คลิก Android
  5. คลิกการลงชื่อเข้าใช้รายงาน
  6. ในบานหน้าต่างด้านล่างที่คุณเห็นเรียกใช้รายงาน
  7. คลิกที่ "สลับงาน Execytions / โหมดข้อความ"
  8. คุณสามารถดู sha-1

Android Studio SHA-1


1
ขอบคุณ ทำงานได้ดีมาก / ฉันไม่รู้ว่าฉันต้องสลับมัน
Raul

12

ฉันทำอย่างนี้:

ขั้นตอนที่ 1:ไปที่โฟลเดอร์นี้

On Mac: /Users/<username>/.android/

On Windows: C:\Documents and Settings\<username>\.android\

On Linux: ~/.android/

ขั้นตอนที่ 2:เรียกใช้บรรทัดคำสั่งนี้:

keytool -list -v -keystore debug.keystore -storepass android

คุณจะเห็นปุ่ม SHA-1


/Users/<username>สำหรับ Mac เป็นโฟลเดอร์บ้านของผู้ใช้ดังนั้น~ทางลัดจึงสามารถใช้ได้เช่นเดียวกับLinux
user28434

ขอบคุณสำหรับความช่วยเหลือของคุณ
Aoun

11

ฉันใช้คำสั่งต่อไปนี้โดยตรงจาก Mac ของฉันโดยใช้เทอร์มินัล ฉันได้ SHA1 Finger นี่คือคำสั่ง:

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

มันจะทำงานสำหรับ Windows และ cmd คือ: keytool -list -v -keystore% USERPROFILE% \. android \ debug.keystore -alias androiddebugkey -passpass android -keypass android
หนุมาน

9

สำหรับการรับ SHA1 สำหรับที่เก็บคีย์การผลิต:

  1. สร้าง -> สร้าง APK ที่ลงชื่อแล้ว ...

  2. สร้างที่เก็บคีย์ด้วยรหัสผ่านและทำตามขั้นตอน

  3. ไปที่ Mac / Library / Java / JavaVirtualMachines / jdk1.8.0_20.jdk ของคุณ / Contents / Home / bin และลากโฟลเดอร์ bin ไปยังเทอร์มินัลหลังจากคำสั่ง cd ชี้ไปที่มันเพื่อให้คุณสามารถใช้เครื่องมือ keytool ดังนั้นในเทอร์มินัลเขียนcd(ลากถังที่นี่) จากนั้นกด Enter

  4. จากนั้นคัดลอกและวางสิ่งนี้ในเทอร์มินัล:

    keytool -exportcert -alias Your_keystore_AliasName -keystore /Users/Home/Development/AndroidStudioProjects/YoutubeApp/app/YoutubeApp_keystore.jks -list -v
    

    ลบเส้นทางของฉันและไปที่ที่คุณเก็บที่เก็บคีย์ของคุณและลากที่เก็บคีย์ของคุณและวางลง-keystoreในบรรทัดคำสั่งเพื่อที่เส้นทางจะถูกสร้างขึ้น

    นอกจากนี้ให้ลบ Your_keystore_AliaseName เพื่อใส่ชื่อนามแฝงของคุณที่คุณใช้เมื่อคุณสร้างมันขึ้นมา

  5. กด Enterและใส่รหัสผ่าน :)

  6. เมื่อคุณป้อนรหัสผ่านเทอร์มินัลจะไม่แสดงว่าได้รับรายการคีย์บอร์ด แต่จริง ๆ แล้วให้ใส่รหัสผ่านและกดEnterแม้ว่าคุณจะไม่เห็นรหัสผ่านถูกพิมพ์ออกมา


คุณมีของฉันได้รับรางวัลTHANK SO MUCH When you enter the password, the terminal won't show that it receives keyboard entries, but it actually does
Farid

7

มันง่ายมากใน Gnu / Linux - Mac - Windows

ครั้งแรก: - คัดลอกคำสั่งนี้

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

ที่สอง:ตอนนี้คัดลอกและวางคำสั่งในเทอร์มินัลของ Android Studio ป้อนคำอธิบายรูปภาพที่นี่

ผลลัพธ์!

ป้อนคำอธิบายรูปภาพที่นี่

โชคดี!!


7

หากคุณใช้ Android Studio คุณจะได้รับลายนิ้วมือใบรับรอง SHA-1 และ MD5 (ตรวจแก้จุดบกพร่องปล่อย ... ประเภทการสร้างทั้งหมด !!) ได้อย่างรวดเร็วผ่านงาน Gradle :

signingReport

ใบรับรอง SHA-1 และ MD5 จะแสดงในข้อความบันทึก

ปลั๊กอิน Android (กำหนดค่าในแอป Gradle) สร้างโหมดแก้ไขข้อบกพร่องสำหรับค่าเริ่มต้น

com.android.application

เส้นทางไฟล์ไปยังที่เก็บคีย์:

HOME/.android/debug.keystore

ผมขอแนะนำให้แนบ ไปdebug.keystore build.gradleในการทำเช่นนี้ให้ใส่ไฟล์debug.keystoreในโฟลเดอร์แอพแล้วเพิ่ม SigningConfigs ในแอปGradle :

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"
            }
        }
        ........
    }

พิเศษ: ถ้าคุณต้องการสร้างเพื่อวางจำหน่ายให้วางไฟล์release.keystoreในโฟลเดอร์แอพ (ตัวอย่างนี้ใช้เหมือนกันdebug.keystore)


1
ฉันทำสิ่งที่คุณกล่าวข้างต้น แต่ฉันไม่ได้รับการปล่อยตัว SHA1 สำหรับการเปิดตัวมันส่งคืนฉัน: ตัวแปร: ปล่อยกำหนดค่า: ไม่มี
Ashraf Alshahawy

เมนู AndroidStudio: สร้าง / สร้าง apk ที่ลงชื่อแล้วและสร้างไฟล์ใหม่ หลังจากเปลี่ยนการลงนามConfig> ปล่อยบน build.gradle (ด้านบน)
SergioLucas

6

หากคุณมีAndroid Studioมันง่ายมาก ๆ เพียงสร้าง MapActivity โดยใช้ Android Studio และหลังจากสร้างขึ้นให้เป็น google_maps_api.xml ในนั้นจะมีลิงค์ที่ให้ไว้ในความคิดเห็น หากคุณวางลงในเบราว์เซอร์ระบบจะขอให้กรอกรายละเอียดเล็กน้อยและหลังจากนั้น API ของคุณจะถูกสร้างขึ้น ไม่จำเป็นต้องใช้ keytool และทั้งหมด

ภาพหน้าจอ:

ป้อนคำอธิบายภาพที่นี่


แต่วิธีนี้จะใช้สำหรับการแก้ไขข้อบกพร่องเท่านั้น คุณต้องกำหนดลายนิ้วมือกุญแจปล่อยเอง
Hyndrix

@Hyndrix คุณจะตรวจสอบลายนิ้วมือที่สำคัญได้อย่างไร?
Micro

นี่เป็นขั้นตอนที่ไม่จำเป็นโดยสิ้นเชิง ไม่จำเป็นต้องสร้าง MapActivity เพียงแค่นี้ คุณเพียงแค่ต้องดูในโครงการ Gradle ของคุณ> แอป> งาน> Android> การลงนามรายงานและดูผลลัพธ์ใน Gradle Console ภายใต้ SHA1
Kebman

5

สิ่งนี้ใช้งานได้ในกรณีของฉัน: ใช้% USERPROFILE%แทนที่จะให้ไฟล์. keystore ที่เก็บไว้ในพา ธ นี้โดยอัตโนมัติC: ผู้ใช้ / ชื่อผู้ใช้ /. android :

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

5

ใช้คำสั่งง่าย ๆ :

keytool -exportcert -keystore path-to-debug-or-production-keystore -list -v

และคุณจะได้รับรหัส SHA1


4

สำหรับWindows 10จากเทอร์มินัลAndroid Studio :

keytool -exportcert -alias androiddebugkey -keystore %USER_PROFILE%"/.android/debug.keystore -list -v

หมายเหตุ: สำหรับdebug.keystoreรหัสผ่านคือ "android" keystore "%USER_PROFILE%"/.android/debug.keystoreแก้ปัญหามักจะตั้งอยู่ที่


4

ฉันต้องการเพิ่มสิ่งหนึ่งกับคำตอบที่ได้รับจากSoftcoder ผมเคยเห็นบางคนไม่สามารถให้พวกเขาdebug.keystorecommand lineเส้นทางอย่างถูกต้องบน พวกเขาเห็นว่าพวกเขากำลังทำกระบวนการตรงตามที่ยอมรับข้างต้น แต่มันไม่ทำงาน ณ จุดนั้นลองลาก debug.keystore แล้ววางลงบนบรรทัดคำสั่ง มันจะช่วยถ้าคำตอบที่ยอมรับไม่ได้ผลสำหรับคุณ ทำกระบวนการทั้งหมดโดยไม่ลังเล มันเป็นคำตอบที่ดี


4

ฉันพบขั้นตอนง่าย ๆ ในการค้นหาลายนิ้วมือ MD5, SHA-1 โดยใช้ Android Studio

  1. เรียกใช้โครงการของคุณ
  2. ไปที่เมนู Gradle (เมนู: ดู -> เครื่องมือ Windows -> Gradle)
  3. ไปที่ 'การลงนามรายงาน' ในหน้าต่าง Gradle (โครงการของคุณ -> งาน -> Android -> การลงนามรายงาน)
  4. เรียกใช้ (ใช้ดับเบิลคลิกหรือ Ctrl + Shift + F10)
  5. ในหน้าต่าง Run คุณจะพบข้อมูลทั้งหมด

ใช้งานได้เฉพาะในโหมดแก้ไขข้อบกพร่อง ในโหมด realease ฉันไม่เห็น sha-1 ที่นี่ผลของgradlew signingReport

Variant: release
Config: none
----------
Variant: releaseUnitTest
Config: none
----------
Variant: debug
Config: debug
Store: path\Android\avd\.android\debug.keystore
Alias: AndroidDebugKey
MD5: xx:xx:xx:62:86:B7:9C:BC:FB:AD:C8:C6:64:69:xx:xx
SHA1: xx:xx:xx:xx:0F:B0:82:86:1D:14:0D:AF:67:99:58:1A:01:xx:xx:xx
Valid until: Friday, July 19, 2047
----------

ดังนั้นฉันต้องใช้ keytool เพื่อรับ sha-1 นี่คือ Firebase doc อย่างเป็นทางการ:

Get_sha-1_for_release


3

คลิกที่ไอคอน Gradle บนแผงด้านขวาจากนั้นคลิกที่ (รูท)

งาน> Android> การลงนามรายงาน

จากนั้นสคริปต์ Gradle จะทำงานและคุณจะเห็นกุญแจของคุณ


3

ง่าย ๆ ให้ใช้วิธีนี้ในหน้าจอ Splash ของคุณ: hash () และ getCertificateSHA1Fingerprint () จากนั้นก็จะเห็นปุ่มต่าง ๆ ในบันทึก

private void hash() {


            PackageInfo info;
            try {

                info = getPackageManager().getPackageInfo(
                        this.getPackageName(), PackageManager.GET_SIGNATURES);

                for (android.content.pm.Signature signature : info.signatures) {
                    MessageDigest md;
                    md = MessageDigest.getInstance("SHA");
                    md.update(signature.toByteArray());
                    Log.e("sagar sha key", md.toString());
                    String something = new String(Base64.encode(md.digest(), 0));
                    Log.e("sagar Hash key", something);
                    System.out.println("Hash key" + something);
                }

            } catch (PackageManager.NameNotFoundException e1) {
                Log.e("name not found", e1.toString());
            } catch (NoSuchAlgorithmException e) {
                Log.e("no such an algorithm", e.toString());
            } catch (Exception e) {
                Log.e("exception", e.toString());
            }
        }

        private void getCertificateSHA1Fingerprint() {
            PackageManager pm = this.getPackageManager();
            String packageName = this.getPackageName();
            int flags = PackageManager.GET_SIGNATURES;
            PackageInfo packageInfo = null;
            try {
                packageInfo = pm.getPackageInfo(packageName, flags);
            } catch (PackageManager.NameNotFoundException e) {
                e.printStackTrace();
            }
            Signature[] signatures = packageInfo.signatures;
            byte[] cert = signatures[0].toByteArray();
            InputStream input = new ByteArrayInputStream(cert);
            CertificateFactory cf = null;
            try {
                cf = CertificateFactory.getInstance("X509");
            } catch (CertificateException e) {
                e.printStackTrace();
            }
            X509Certificate c = null;
            try {
                c = (X509Certificate) cf.generateCertificate(input);
            } catch (CertificateException e) {
                e.printStackTrace();
            }
            String hexString = "";
            try {
                MessageDigest md = MessageDigest.getInstance("SHA1");
                byte[] publicKey = md.digest(c.getEncoded());
                Log.e("sagar SHA",byte2HexFormatted(publicKey));
            } catch (NoSuchAlgorithmException e1) {
                e1.printStackTrace();
            } catch (CertificateEncodingException e) {
                e.printStackTrace();
            }
        }

        public static String byte2HexFormatted(byte[] arr) {
            StringBuilder str = new StringBuilder(arr.length * 2);
            for (int i = 0; i < arr.length; i++) {
                String h = Integer.toHexString(arr[i]);
                int l = h.length();
                if (l == 1) h = "0" + h;
                if (l > 2) h = h.substring(l - 2, l);
                str.append(h.toUpperCase());
                if (i < (arr.length - 1)) str.append(':');
            }
            return str.toString();
        }

ขอบคุณ.


2

ใช้คำแนะนำจาก API Manager โดยใช้ keytool:

รับชื่อแพ็กเกจจากไฟล์ AndroidManifest.xml ของคุณ จากนั้นใช้คำสั่งต่อไปนี้เพื่อรับลายนิ้วมือ:

keytool -list -v -keystore mystore.keystore


1

คุณสามารถใช้คำสั่งต่อไปนี้และเปลี่ยน AJAY SUNDRIYAL ด้วยชื่อระบบของคุณนี่คือเฉพาะสำหรับ debug.keystore ของคุณซึ่งจะทำงานให้คุณ

C:\Program Files\Java\jdk1.8.0_91\bin>keytool -list -v -keystore "c:\users\AJAY SUNDRIYAL\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

1

สิ่งนี้ใช้ได้กับฉัน:

keytool -exportcert -alias androiddebugkey -keystore

ใส่ path-to-debug-or-production-keystore ที่นี่เช่น C: \ users \ youruser.android \ debug.keystore -list -v

ตรวจสอบให้แน่ใจว่าคุณอยู่ในJava\jdk*\binไดเรกทอรีในหน้าต่างคำสั่งหรือเทอร์มินัลแล้ว

จากนั้นใช้ Android เป็นรหัสผ่าน

บางครั้งทรัพยากรบนเว็บอาจทำให้เข้าใจผิด พวกนี้คือคนที่ทำงาน:


1

เส้นทางของที่เก็บคีย์อยู่ในเครื่องหมายคำพูดคู่ มันทำงานได้ดี

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


1

เมื่อสร้าง "Google Maps Project" ใหม่ใน Android Studio V 1.5.1 หน้าจอสุดท้ายจะเปิดgoogle_maps_api.xmlไฟล์และแสดงหน้าจอพร้อมคำแนะนำดังนี้:

แหล่งข้อมูล:

สิ่งที่ต้องทำ: ก่อนที่คุณจะเปิดใช้งานแอปพลิเคชันของคุณคุณต้องใช้คีย์ Google Maps API

ในการรับมาทำตามลิงค์นี้ทำตามคำแนะนำแล้วกด "สร้าง" ในตอนท้าย:

https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r= SHA-1 ของคุณ + ชื่อแพ็คเกจของคุณ

คุณยังสามารถเพิ่มข้อมูลรับรองของคุณไปยังคีย์ที่มีอยู่โดยใช้บรรทัดนี้:
YOUR SHA-1: ชื่อแพ็คเกจของคุณ

หรือทำตามคำแนะนำได้ที่นี่:
https://developers.google.com/maps/documentation/android/start#get-key

เมื่อคุณมีคีย์ของคุณ (เริ่มต้นด้วย "AIza") ให้แทนที่สตริง "google_maps_key" ในไฟล์นี้
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">YOUR GOOGLE MAPS KEY</string>

ในการรับคีย์แผนที่ GOOGLEของคุณเพียงตัดและวางลิงก์ URL ที่กำหนดในเบราว์เซอร์ของคุณและทำตามคำแนะนำด้านบนในเวลาที่สร้างแอปพลิเคชันใหม่ SHA-1และPackage namesมีอยู่แล้วในการเชื่อมโยงที่กำหนดเพื่อให้คุณไม่จำเป็นต้องรู้ว่าพวกเขา อย่างไรก็ตามพวกเขาจะอยู่ในโครงการของคุณในresources>Values>google_maps_api.xmlไฟล์ซึ่งเสร็จสมบูรณ์เมื่อคุณทำตามคำแนะนำในการสร้างโครงการ


1
  • ไปที่ไฟล์> โครงสร้างโครงการเลือกappหรือmobileอะไรก็ตามที่คุณให้ชื่อModules

  • เลือกSigningแท็บ

  • คุณสามารถเพิ่มใบรับรองคลิกที่+ปุ่ม


คุณช่วยแสดงขั้นตอนรายละเอียดด้วยการยกตัวอย่างได้ไหม
Setu Kumar Basak

0

วิธีที่ง่ายที่สุดในการรับลายนิ้วมือคือการเปลี่ยนจากแอพเป็นรายงานที่ลงชื่อโดยคลิกที่ดรอปดาวน์และคลิกบิวด์

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นคุณจะสามารถเห็นลายนิ้วมือ sha1 ที่บานหน้าต่างด้านล่างที่คุณเห็นรายงานการดีบักและการติดตามสแต็ก หมายเหตุอย่าลืมเปลี่ยนกลับไปที่แอพเมื่อคุณต้องการเรียกใช้แอพของคุณบนอุปกรณ์หรือโปรแกรมจำลอง


นี่อาจเป็นจุดที่ดี แต่ฉันไม่เข้าใจในสิ่งที่คุณต้องการ
nyxee
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.