คู่มือนี้อธิบายปัญหาที่พบบ่อยและวิธีแก้ปัญหา นอกจากนี้ คุณยังใช้เครื่องมือแก้ปัญหาในหน้า Deep Link ของ Play Console หรือผู้ช่วย App Link ของ Android Studio ได้ด้วย ดูข้อมูลเพิ่มเติมได้ที่ เครื่องมือสำหรับนักพัฒนาแอป App Link
App Link เปิดในเบราว์เซอร์แทนที่จะเปิดในแอป
- ปัญหา: คุณคลิกลิงก์ที่ควรจะเปิดแอป แต่ลิงก์กลับเปิดในเว็บ เบราว์เซอร์หรือแสดงกล่องโต้ตอบการแยกความกำกวม
- วิธีแก้ปัญหา:
- ตรวจสอบ
assetlinks.json: ตรวจสอบว่าไฟล์เป็น JSON ที่ถูกต้อง เข้าถึงได้ที่https://<your-domain>/.well-known/assetlinks.jsonและแสดงผ่าน HTTPS โดยไม่มีการเปลี่ยนเส้นทาง ใช้โปรแกรมตรวจสอบออนไลน์ - ยืนยันลายนิ้วมือ SHA-256: ตรวจสอบอีกครั้งว่า
sha256_cert_fingerprintsในassetlinks.jsonตรงกับ ลายนิ้วมือของคีย์การลงนามสำหรับการเผยแพร่แอปทุกประการ (ใช้ลายนิ้วมือจาก Play Console หากคุณใช้ Play App Signing) ลายเซ็นควรเป็นตัวพิมพ์ใหญ่ - ยืนยัน
autoVerify: ตรวจสอบว่า<intent-filter>ในAndroidManifest.xmlมีandroid:autoVerify="true" - ตรวจสอบการเปลี่ยนเส้นทางฝั่งเซิร์ฟเวอร์: การเปลี่ยนเส้นทางจาก
httpเป็นhttpsหรือ จากโดเมนที่ไม่ใช่ www เป็นwwwอาจทำให้การยืนยันล้มเหลว - บังคับให้ยืนยันอีกครั้ง: เรียกใช้คำสั่ง ADB ในคู่มือทดสอบ App Link เพื่อดูผลการยืนยันล่าสุด
- วินิจฉัยการแก้ปัญหาลิงก์ (Android 17 ขึ้นไป): เรียกใช้
adb shell am start --debug-link -a android.intent.action.VIEW -d "<URL>"เพื่อตรวจสอบแอปที่เข้าข่าย ตัวกรอง Intent ของไฟล์ Manifest และกฎ Dynamic App Link ที่ตรงกับ URL ดูรายละเอียดได้ที่หัวข้อ วินิจฉัยการแก้ปัญหาลิงก์ด้วยแฟล็ก debug-link
- ตรวจสอบ
กฎแบบไดนามิกใน Android 15 ขึ้นไปไม่อัปเดต
- ปัญหา: คุณอัปเดตกฎในไฟล์
assetlinks.jsonแล้ว แต่แอปไม่จัดการลิงก์ใหม่ - วิธีแก้ปัญหา:
- บังคับให้ยืนยันอีกครั้ง: วิธีที่น่าเชื่อถือที่สุดในการทดสอบการเปลี่ยนแปลงคือการ
บังคับให้ดึงข้อมูลอีกครั้งด้วย
adb shell pm verify-app-links --re-verify <your-package-name> - ตรวจสอบการพิมพ์ผิด: ตรวจสอบตัวจับคู่รูปแบบในกฎอย่างละเอียด เพื่อหาข้อผิดพลาดทางไวยากรณ์
- ตรวจสอบกฎตัวกรองไฟล์ Manifest: ตรวจสอบกฎตัวกรอง Intent ในไฟล์ Manifest ของแอปเพื่อให้แน่ใจว่าระบบไม่ได้กรองเส้นทางลิงก์ออก หากระบบกรองลิงก์ออก ให้แก้ไขตัวกรอง Intent ในไฟล์ Manifest ของแอปให้มีข้อจำกัดน้อยลง
- วินิจฉัยกฎที่ตรงกัน (Android 17 ขึ้นไป): เรียกใช้
adb shell am start --debug-link -a android.intent.action.VIEW -d "<URL>"เพื่อตรวจสอบกฎที่ได้รับการประเมินและดูว่ากฎการยกเว้น (allow = 1) ป้องกันไม่ให้แอปเปิดหรือไม่ ดู หัวข้อวินิจฉัยการแก้ปัญหาลิงก์ด้วยแฟล็ก debug-link
- บังคับให้ยืนยันอีกครั้ง: วิธีที่น่าเชื่อถือที่สุดในการทดสอบการเปลี่ยนแปลงคือการ
บังคับให้ดึงข้อมูลอีกครั้งด้วย
แก้ไขข้อผิดพลาดในการติดตั้งใช้งานที่พบบ่อย
หากยืนยัน Android App Link ไม่ได้ ให้ตรวจสอบข้อผิดพลาดที่พบบ่อยต่อไปนี้ ส่วนนี้ใช้ example.com เป็นชื่อโดเมนตัวยึดตำแหน่ง เมื่อทำการตรวจสอบเหล่านี้ ให้แทนที่ example.com ด้วยชื่อโดเมนจริงของเซิร์ฟเวอร์
- ตั้งค่าตัวกรอง Intent ไม่ถูกต้อง
- ตรวจสอบว่าคุณได้ใส่ URL ที่แอปไม่ได้เป็นเจ้าของไว้ในองค์ประกอบ
<intent-filter>หรือไม่ - การกำหนดค่าเซิร์ฟเวอร์ไม่ถูกต้อง
ตรวจสอบการกำหนดค่า JSON ของเซิร์ฟเวอร์ และตรวจสอบว่าค่า SHA ถูกต้อง
นอกจากนี้ ให้ตรวจสอบว่า
example.com.(มีจุดต่อท้าย) แสดง เนื้อหาเดียวกันกับexample.com- การเปลี่ยนเส้นทางฝั่งเซิร์ฟเวอร์
ระบบจะไม่ยืนยัน Android App Link ใดๆ สำหรับแอปหากคุณตั้งค่าการเปลี่ยนเส้นทาง เช่น การเปลี่ยนเส้นทางต่อไปนี้
http://example.comเป็นhttps://example.comexample.comเป็นwww.example.com
ลักษณะการทำงานนี้จะช่วยปกป้องความปลอดภัยของแอป
- ความเสถียรของเซิร์ฟเวอร์
ตรวจสอบว่าแอปไคลเอ็นต์เชื่อมต่อกับเซิร์ฟเวอร์ได้หรือไม่
- ลิงก์ที่ยืนยันไม่ได้
คุณอาจเพิ่มลิงก์ที่ยืนยันไม่ได้โดยเจตนาเพื่อวัตถุประสงค์ในการทดสอบ โปรดทราบว่าใน Android 11 และต่ำกว่า ลิงก์เหล่านี้จะทำให้ระบบไม่ยืนยัน Android App Link ทั้งหมด สำหรับแอป
- ลายเซ็นใน assetlinks.json ไม่ถูกต้อง
ตรวจสอบว่าลายเซ็นถูกต้องและตรงกับลายเซ็นที่ใช้ลงนามแอป ข้อผิดพลาดที่พบบ่อย ได้แก่
- การลงนามแอปด้วยใบรับรองสำหรับการแก้ไขข้อบกพร่องและมีเพียงลายเซ็นสำหรับการเผยแพร่ใน
assetlinks.json - มีลายเซ็นตัวพิมพ์เล็กใน
assetlinks.jsonลายเซ็นควรเป็นตัวพิมพ์ใหญ่ - หากใช้ Play App Signing ให้ตรวจสอบว่าคุณใช้ลายเซ็นที่ Google ใช้ลงนามการเผยแพร่แต่ละครั้ง คุณสามารถยืนยันรายละเอียดเหล่านี้ รวมถึงข้อมูลโค้ด JSON ที่สมบูรณ์ได้โดยทำตามวิธีการ เกี่ยวกับ การประกาศการเชื่อมโยงเว็บไซต์
- การลงนามแอปด้วยใบรับรองสำหรับการแก้ไขข้อบกพร่องและมีเพียงลายเซ็นสำหรับการเผยแพร่ใน
บันทึกรายงานข้อบกพร่อง
สำหรับปัญหาที่ซับซ้อนซึ่งจำลองได้ยาก ให้บันทึกรายงานข้อบกพร่องและวิเคราะห์รายงาน ซึ่งจะให้ข้อมูลเชิงลึกที่มีคุณค่าเกี่ยวกับกระบวนการยืนยันและข้อผิดพลาดระดับระบบ