Google Flutter

วิธีใช้ซ้ำ SHA-1 keys แบบได้หลายเครื่อง ไม่ต้องปวดหัวเปลี่ยนไปมา

เรื่องที่เกี่ยวข้อง - Android, Google Flutter, SHA

คำเคือน

ปกติเราไม่ควร แชร์ keystore หรือ SHA-1 key ไปบน git สาธารณะ วิธีนี้เป็นทางเลือกหนึ่งในการลดความวุ่นวายกรณีต้องใช้โปรเจคเดียวกันในหลายๆ เครื่อง และตัวโปรเจค Android ผูกเข้ากับบริการต่างๆ นะ

โดยปกติการพัฒนาแอพ Android จะมีการสร้างไฟล์ debug.keystore ขึ้นมาอัตโนมัติเพื่อใช้ในการทดสอบตัวแอพพลิเคชั่น โดยตัวไฟล์นี้ จะอยู่ในโฟลเดอร์ .android ของเครื่องของเรา เช่น

  • Windows: C:\Users\Teerasej\.android\debug.keystore
  • MacOS: ~/.android/debug.keystore

ซึ่งการสร้างขึ้นให้อัตโนมัตินี้เอง ทำให้ key ในแต่ละเครื่องไม่เหมือนกัน ทำให้เวลาเราเอา SHA-1 key นี้ ไปผูกกับบริการต่างๆ เช่น Firebase

และเพราะ key ถูกสร้างขึ้นใหม่ตลอด ทำให้ SHA key ไม่ตรงกับที่เอาไปเพิ่มไว้ใน Firebase นี่แหละ ทำให้มีความวุ่นวายมากเวลาเกิดการ build ทดสอบในแต่ละเครื่อง

เรามาลองแก้ปัญหาชวนปวดหัวนี้ ด้วยโดยการแชร์ debug.keystore ไปใน git repository

อย่าลืมว่านี่เป็นหนึ่งในวิธีแก้ไขปัญหาเบื้องต้น และไม่ควรเอาไปใช้กับ public repository หรือว่าแชร์ keystore ที่ใช้ release นะ นะ นะ

1. คัดลอก debug.keystore มาไว้ในโปรเจค android

จากที่อยู่ของไฟล์ debug.keystore ที่พูดถึงด้านบน ให้ทำการ copy เอามาไว้ในโปรเจค android

เช่น ของพลจะไว้ที่อยู่เดียวกันกับไฟล์ android/app/build.gradle เพื่อให้การอ้างอิงถึงที่อยู่ไฟล์ไม่ซับซ้อนเกินไป แต่ก็สามารถเปลี่ยนที่ได้ตามความต้องการ

ไฟล์ debug.keystore ก็จะอยู่ตามด้านล่าง

android/app/keystore/debug.keystore

จากนั้นให้เปิดไฟล์ android/app/build.gradle และทำการเพิ่ม config ลงไปในส่วน android ดังตัวอย่างด้านล่าง

android {
    
    ...

    signingConfigs {
        debug {
            storeFile file('keystore/debug.keystore')
        }
    }

    buildTypes {
        release {
            signingConfig signingConfigs.debug
        }
    }
}

บันทึกไฟล์

2. แก้ไขไฟล์ .gitignore

จากนั้นไปแก้ไฟล์ android/.gitignore เพื่อให้สามารถ push ไฟล์ keystore ขึ้นไปที่ git repository ได้ (ปกติในไฟล์ .gitignore จะกันไม่ให้ทำส่วนนี้)

หาบรรทัดที่เขียนว่า 

**/*.keystore

แก้ไขเป็น

# **/*.keystore

จากนั้นบันทึกไฟล์ เท่านี้เราก็สามารถเอา debug.keystore ขึ้น git repository ได้แล้ว

เริ่มต้นยุค AI ด้วยคอร์สฟรี และพรีเมี่ยม กับพล

หากชอบสิ่งที่พลเล่า เรื่องที่พลสอน สามารถสนับสนุนพลโดยการเข้าเรียนคอร์สออนไลน์ของพลนะคร้าบ

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

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

Allow All
Manage Consent Preferences
  • Always Active

Save