การสร้าง keystore ไฟล์สำหรับ ลงทะเบียน app ด้วย keytool

เขียนเมื่อ 9 ปีก่อน โดย Ninenik Narkdee
signed apk phonegap google play keystore

คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ signed apk phonegap google play keystore

ดูแล้ว 12,274 ครั้ง




ก่อนที่เราจะทำการ signed application หรือลงทะเบียนใบรับรอง app ของเรา
เราจำเป็นจะต้องสร้างไฟล์ keystore ก่อน โดยในที่นี้เราจะใช้ keytool command 
ซึ่งมีมาให้แล้วใน JDK ของ java
 
โดยใช้คำสั่งตามรูปแบบดังนี้
 
 keytool -genkey -v -keystore Your_personal_file_title.keystore -alias Your_personal_alias -keyalg RSA -keysize 2048 -validity 10000 
 
จากรูปแบบด้านบน สิ่งที่เราต้องเปลี่ยนคือ 
Your_personal_file_title เปลี่ยนเป็นชื่อไฟล์ที่เราต้องการ และ 
Your_personal_alias เปลี่ยนเป็นชื่อเรียก
ส่วน 10000 คือจำนวนวัน ที่เราต้องการให้สามารถใช้งานได้ 10000 คือ 1 หมื่นวัน
ประมาณ 27 ปี (10000 / 365) 
*ปกติใช้ 25 ปี แต่เพื่อตัวเลขกลมๆ ก็ใช้เป็น 10000 ได้
 
 
ความสำคัญของ keystore กับการ signing application
ไฟล์ keystore จะเป้นไฟล์ที่ใช้สำหรับลงทะเบียนให้กับ app เราทุกครั้ง
ที่มีการอัพเดท app ใหม่ เพื่อใช้ใน google play store ดังนั้นไฟล์นี้จะหาย
ไม่ได้ เพราะถ้าไฟล์นี้หาย เราจะไม่สามารถ publish app เดิมได้ 
ดังนั้นเราจึงควร backup ไฟล์นี้ไว้ใน cloud storage อย่าง google drive,dropbox
หรือไว้ใน email เพื่อป้องกันกรณีเครื่อง PC ของเรามีปัญหาแล้วเกิดไฟล์หายไป
 
ไฟล์ keystore จะใช้ไฟล์เดียวกับทุก app หรือ ใช้หลายไฟล์ สำหรับแต่ละ app ก็ได้
บางคนป้องกันการสับสนก็ใช้ไฟล์เดียวกับทุกๆ app แต่กรณีนี้ถ้าไฟล์หาย app ทั้งหมด
ก็จะไม่สามารถ publish ได้
อันนี้เลือกตามความเหมาะสม แต่ตัวอย่างในที่นี้ เราจะใช้ 1 ไฟล์ต่อ 1 app
 
 
เริ่มสร้างไฟล์ keystore สำหรับ phonegap Project
 
เนื้อหาต่อจากตอนที่แล้ว
การ export apk ใน phonegap แบบต่างๆ 
 
ตอนนี้เราอยู่ใน Project demoapk เราจะสร้างไฟล์ keystore ไว้ในโฟลเดอร์นี้
 
ด้วยคำสั่งดังนี้
 
keytool -genkey -v -keystore demoapk.keystore -alias demoapk -keyalg RSA -keysize 2048 -validity 10000 
 
เมื่อ run คำสั่ง จะขึ้นให้เราใส่รหัสผ่าน ให้เราพิมพ์รหัสผ่านลงไป ให้จดไว้ห้ามหาย
โดยเวลาที่เราพิมพ์ จะไม่เห็นรหัสผ่านที่พิมพ์ (เหมือนพิมพ์ไม่ได้ แต่ที่จริงคือได้พิมพ์ไปแล้ว)
ให้เรากด Enter ไป แล้วจะขึ้นให้พิมพ์ซ้ำอีกครั้ง เสร็จก็กด Enter ไป
จากนั้นก็กรอกข้อมูลต่างๆ โดยประมาณตามรูป พอถึงขึ้นตอนสุดท้าย ระบบจะแจ้ง
ข้อมูลที่เรากรอก ให้เราพิมพ์ตอบไปว่า yes แล้วกด Enter
ระบบจะถามรหัสผ่าน ให้เรากด Enter ไปเลย ไม่ต้องพิมพ์อะไร คือใช้รหัสผ่านเดียวกับด้านบน
 
รูปแสดงการทำงานของการใช้งาน keytool สร้าง keystore ไฟล์ทั้งหมด เป็นดังนี้
 


 
 
และเราจะได้ไฟล์ keystore ในโฟลเดอร์ demoapk ตามรูป
 
 

 
การ signing application หรือลงทะเบียนไฟล์ apk
 
เมื่อเราได้ไฟล์ keystore แล้ว ต่อไปเราจะทำการลงทะเบียนไฟล์ apk
โดยก่อนอื่น ให้เราไป copy ไฟล์ CordovaApp-release-unsigned.apk 
(อ้างอิงจากเนื้อหาตอนที่แล้ว)
ที่อยู่ในโฟลเดอร์ 
 
C:\phonegap\demoapk\platforms\android\ant-build
 


 
 
มาไว้โฟลเดอร์เดียวกับไฟล์ keystore ที่เพิ่งสร้าง ตามรูป
 

 
 
 
ต่อไปเราจะทำการ sign ไฟล์ที่เป็น unsigned apk ด้วยคำสั่ง jarsigner ซึ่งมีมาให้แล้วใน JDK ของ java
เช่นเดียวกับคำสั่ง keytool ด้วยรูปแบบดังนี้
 
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ชื่อไฟล์keystore.keystore ชื่อไฟล์unsigned.apk ชื่อเรียกkeystore
 
ในที่นี่ ชื่อไฟล์keystore คือ demoapk.keystore
ชื่อไฟล์unsigned.apk คือ CordovaApp-release-unsigned.apk
ชื่อเรียกkeystore คือ demoapk
 
คำสั่งในการ sign ของเราจะได้เป็น
 
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore demoapk.keystore CordovaApp-release-unsigned.apk demoapk
 
เมื่อเรา run คำสั่งและกดปุ่ม Enter จะขึ้นให้เรากรอกรหัสผ่านของ keystore 
ให้เรากรอก (เวลากรอกจะไม่เห็นตัวอักษรแสดง) แล้วให้กดปุ่ม Enter
ระบบจะทำการลงทะเบียนไฟล์ CordovaApp-release-unsigned.apk ให้เราเรียบร้อยแล้ว
 
 
ขั้นตอนสุดท้าย เราจะใช้ zip align tool ทำการ optimize ไฟล์ apk
ด้วยรูปแบบคำสั่งดังนี้
 
zipalign -v 4 CordovaApp-release-unsigned.apk demoapk.apk
 
run คำสั่งแล้วจะพบว่า ไม่สามารถใช้คำสั่งนี้ได้ เนื่องจากไม่มีโปรแกรม zipalign
 
รูปแสดง zipalign ไม่ทำงาน
 
 
 
วิธีการคือ ให้เราพิมพ์ android เพื่อเปิด android sdk manager ขึ้นมา
(ถ้าเรารู้ path ของ sdk เราไม่จำเป็นต้องเปิด android sdk manager ก็ได้)
 
 
 
จากรูปจะเห็น SDK path ของเราอยู่ที่ C:\SDK\ (แต่ละเครื่องไม่เหมือนกัน)
ให้เราไปที่โฟลเดรอืดังกล่าวผ่าน window explorer แล้วไปที่ โฟลเดอร์ build-tools
แล้วไปที่โฟลเดอร์เวอร์ชั่น ตามรูปมีติดตั้งแค่เวอร์ชั่น 21.1.1 
 
C:\SDK\build-tools\21.1.1
 
หากเรามีหลายเวอร์ชั่นที่ติดตั้งจะมีหลายไฟล์เดอร์ตมแต่ละเวอร์ชั่น
ให้เข้าไปดูว่ามีไฟล์ zipalign.exe หรือไม่
 

 
 
หากมีไฟล์ตามรูป ให้เราทำการ copy ไฟล์ zipalign.exe นั้นแล้วเอามาไว้ในโฟลเดอร์
 
C:\SDK\tools
 
เมื่อ copy มาแล้วจะได้ดังรูป
 

 
 
*ถ้าหาทุกโฟลเดอร์ของเวอร์ชั่นแล้วไม่มีไฟล์นี้ ให้เราทำการติดตั้ง package android
build-tools เวอร์ชั่น 20 ในโปรแกรม android sdk manager ก่อน เนื่องจากในเวอร์ชั่นนี้
จะมีไฟล์ zipalign.exe
 
 
หลังจากนั้นให้ปิด android sdk manager ไปและกลับมาที่ command prompt ของเราอีกครั้ง
แล้วใช้คำสั่ง 
 
zipalign -v 4 CordovaApp-release-unsigned.apk demoapk.apk
 
แล้วกด Enter ใหม่อีกครั้ง
 
โปรแกรมจะทำงาน และได้ผลลัพธ์ดังนี้
 
 
 
และท้ายสุดเราก็จะได้ไฟล์ demoapk.apk สำหรับนำไปติดตั้ง
หรือ publish ใน google play store ได้เลย
 


กด Like หรือ Share เป็นกำลังใจ ให้มีบทความใหม่ๆ เรื่อยๆ น่ะครับ







เนื้อหาที่เกี่ยวข้อง









URL สำหรับอ้างอิง





คำแนะนำ และการใช้งาน

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


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )







เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ