วันอาทิตย์ที่ 4 พฤษภาคม พ.ศ. 2557

สอน Unity : วิธีลงลายเซ็น keystore ให้กับ apk สำหรับลงขายใน Google Play



Android เป็นระบบ OS ที่มีแอพเยอะมาก มากจนเสี่ยงกับมัลแวร์ที่แฝงมากับแอพ
Android เลยประกาศว่า แอพพลิเคชั่นบนแอนดรอยทุกแอพฯ
จะต้องถูกเซ็นด้วยรหัสรูปแบบนึงที่เรียกว่า keystore certification
ใช้เพื่อป้องกันแอพปลอมที่ใช้ชื่อ และ package name เดียวกัน เพราะใครๆก็ตั้งเองได้ทั้งนั้น


ง่ายๆก็คือ ถึงแม้ว่าจะมี ชื่อแอพและ package name ที่เหมือนกันทุกประการ
แต่ถ้ามี keystore ต่างกัน จะทำให้ติดตั้งลงทับกันไม่ได้ จะเด้ง error มาแบบนี้



ถ้าใครสงสัยว่าทำไมตัวเองก็ไม่เคยใช้ keystore เลยทำไมถึงใช้ apk ได้ปกติ
นั่นก็เพราะว่า unity เขาต้งค่า default key ให้เป็น debug keystore ซึ่งใช้ได้ปกติหากติดตั้งในเครื่องเราเอง
แต่ Google Play และ Store อื่นๆ จะไม่รับแอพของเราไปขึ้น store ของเขา


ต้องระวังนิดหน่อยคือจะต้องเก็บไฟล์ .keystore เอาไว้ให้ดี เพราะเราจำเป็นจะต้องใช้ไฟล์นี้ในการเซ็นตอนที่ build .apk ออกมาทุกๆครั้ง ถ้าหายเราจะไม่มีทางอัพเดตแอพของเราได้อีกเลย เพราะมันจะ error แบบด้านบน


STEP 1 : สร้างไฟล์ keystore

  • ไฟล์ keystore จะเป็นไฟล์ที่เก็บ key หลายๆอันไว้ในไฟล์เดียว
  • key แต่ละอันควรจะใช้กับแอพพลิเคชั่นเดียวเท่านั้น
  • กด ctrl + shift + b แล้วคลิก Player Settings
  • ทางช่อง inspector ขวามือให้กดที่แถบ publishing setting
  • ติ้ก Create new keystore แล้วคลิก browse
  • ตั้งชื่อไฟล์ เลือกที่อยู่ แล้ว save (ชื่อไฟล์ตั้งยังไงก็ได้)


STEP 2 : ตั้งรหัสไฟล์ keystore

  • keystore จะมีรหัส 2 ตัว คือ รหัสสำหรับเปิด keystore กับรหัสสำหรับเซ็น key ลงแอพพลิเคชั่น
  • หลังจาก save ไฟล์ keystore แล้ว ให้ใส่รหัสที่ต้องการใช้กับ keystore 
  • พิมสร้างรหัสในช่อง Keystore password
  • กรอก Confirm อีกรอบกันพิมพลาด



STEP 3 : สร้าง key

  • เราสามารถสร้างคีย์กี่อันก็ได้ใน keystore
  • คลิกที่ Alias แล้วเลือก Create a new key
  • จะมีบล้อก Key Creation ขึ้นมา สำหรับใส่ identity ของ key
  • ช่องที่จำเป็นต้องใส่มีแค่ 4 ช่องช่องบน ที่เหลือไม่ใส่ก็ได้
  • Alias : ชื่อของ key
  • Validity : เวลาของ key ที่จะใช้ได้(เป็นปี) ใส่ได้ตั้งแต่ 30 - 1000 ปีเลยทีเดียว
  • คลิก Create key


STEP 4 : เลือก key สำหรับแอพพลิเคชั่น

  • หลังจากสร้าง key เสร็จ unity จะพากลับมาที่ Use Existing Keystore
  • ใส่ password ช่องแรก เป็น password ดียวกับ STEP 2
  • เลือก Alias และใส่ password ด้านล่างเป็น password ที่เราสร้างใน STEP 3
  • เรียบร้อยแล้วสามารถ Build .APK ได้เลย


EXTRA
  • password จะไม่ถูกจำเอาไว้ต้องใส่ใหม่ทุกครั้งเหมือน STEP 4
  • key จะถูกใส่เวลาวันที่ของตอนที่เราสร้างเอาไว้ ตามนาฬิกาของคอมเรา บางทีสร้างแล้วใช้เลยเวลาของประเทศมันเหลื่อมกันอาจจะหลายชั่วโมง ถ้าไม่อยากรอก็อาจจะโกงเวลาก่อนแล้วค่อยสร้างก็ได้
  • ใน windows 8 สำหรับใครตั้งปีเป็น พศ ต้องเปลี่ยนเป็นปี คศ ก่อนเพราะ unity จะไม่แปลงให้
  • ใครที่ลง crack เอาไว้ key ที่สร้างจะใช้ไม่ได้นะจ้ะ การ uninstall หรือแม้แต่ล้าง registry ก็ไม่ช่วย (รู้สึกเหมือนโดน unity เอาคืน 55 -k-)