ที่ต้องทำบทความนี้ก็เนื่องมาจากยังมีผู้ที่หลงเข้ามาอ่านไม่เข้าใจใน GMapsV2 ซึ่งตอนทดสอบแอปฯในเครื่องจะใช้รหัส SHA1 จากไฟล์ Debug.keystore แต่เมื่อจะ Export เป็น APK เพื่ออัพขึ้น Play Store ก็จะต้องเปลี่ยน Keystore ด้วย
ก่อนอื่นขออธิบายเรื่อง debug.keystore กันก่อน เพื่อให้เข้าใจกับไฟล์ตัวนี้ เวลาที่ผู้ที่หลงเข้ามาอ่านกดปุ่ม Run เพื่อทดสอบแอปพลิเคชันทุกครั้ง โปรแกรมก็จะทำการ Compile ไฟล์ออกมาเป็น APK นั่นแหละ
เพียงแต่ตอน Export ไฟล์ Keystore ที่ใช้จะเป็นของ debug.keystore ซึ่ง APK ดังกล่าวจะไม่สามารถนำไปอัพขึ้น Play Store ได้ ทั้งนี้เพื่อใช้ในการ Debug หรือทดสอบแอปพลิเคชันเท่านั้น
Export จาก debug.keystore จะเรียกกันว่าเป็น Debug Keystore
Export จากไฟล์ Keystore เพื่ออัพขึ้น Play Store เรียกว่า Signed Keystore
พูดไปคร่าวๆแล้ว คราวนี้ก็มาดูการดึงค่า Certificate Fingerprint กันบ้าง คงจะคุ้นเคยกับคำสั่งดึงค่า SHA1 จาก debug.keystore กันมาแล้ว
keytool -list -v -keystore ~/.android/debug.keystore
-storepass android -alias androiddebugkey -keypass android -v
ใครที่ยังไม่รู้ว่าพิมคำสั่งนี้ตรงไหนดูที่บทความนี้เลย หัวข้อ Certificate Fingerprint รู้จักกับ Keystore และ Debug/Signed Keystore
ที่เน้นตัวอักษรไว้ก็คือ
- รหัสผ่านของ Keystore
- ชื่อ Key หรือ Alias
- รหัสผ่านของ Key หรือ Alias
ซึ่งไฟล์ debug.keystore ของทุกเครื่อง จะถูกกำหนดไว้ตายตัวอยู่แล้วว่ารหัสผ่านของ Keystore คือ android ชื่อ Alias คือ androiddebugkey และรหัสของ Alias คือ android นั่นเอง (เรียงตามลำดับ)
ดังนั้นคำสั่งที่จะต้องเปลี่ยน ก็จะออกมาเป็นดังนี้
keytool -list -v -keystore “D:/Work/Android Apps/MyKeystore/SleepingForLess.keystore” -storepass 123456789 -alias sleepingforless -keypass 1150 -v
ผลที่ได้ก็จะออกมาเป็นแบบนี้
ก็เป็นอันเรียบร้อย นำรหัส SHA1 ไปใช้ได้เลย หรือจะรหัสอื่นก็ตามแต่