คู่มือนี้อธิบายปัญหาที่พบบ่อยและวิธีแก้ปัญหา นอกจากนี้ คุณยังใช้เครื่องมือแก้ปัญหาในหน้า Deep Link ของ Play Console หรือ ผู้ช่วย App Link ของ Android Studio ได้ด้วย ดูข้อมูลเพิ่มเติมได้ที่เครื่องมือสำหรับนักพัฒนาแอป App Links
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 15 ขึ้นไปไม่อัปเดต
- ปัญหา: คุณได้อัปเดตกฎในไฟล์
assetlinks.json
แล้ว แต่แอปยังไม่จัดการลิงก์ใหม่ - วิธีแก้ปัญหา
- บังคับให้ยืนยันอีกครั้ง: วิธีที่น่าเชื่อถือที่สุดในการทดสอบการเปลี่ยนแปลงคือการ
บังคับให้ดึงข้อมูลอีกครั้งด้วย
adb shell pm verify-app-links --re-verify. <your-package-name>
- ตรวจสอบการพิมพ์ผิด: ตรวจสอบตัวเทียบรูปแบบในกฎอย่างละเอียด เพื่อหาข้อผิดพลาดทางไวยากรณ์
- ตรวจสอบกฎตัวกรองของไฟล์ Manifest: ตรวจสอบกฎตัวกรอง Intent ในไฟล์ Manifest ของแอปเพื่อให้แน่ใจว่าระบบไม่ได้กรองเส้นทางลิงก์ออก หากระบบกรอง ลิงก์ออก ให้แก้ไขตัวกรอง Intent ในไฟล์ Manifest ของแอปให้เฉพาะเจาะจงน้อยลง
- บังคับให้ยืนยันอีกครั้ง: วิธีที่น่าเชื่อถือที่สุดในการทดสอบการเปลี่ยนแปลงคือการ
บังคับให้ดึงข้อมูลอีกครั้งด้วย
แก้ไขข้อผิดพลาดในการติดตั้งใช้งานที่พบบ่อย
หากยืนยัน 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.com
example.com
ถึงwww.example.com
ลักษณะการทำงานนี้ช่วยปกป้องความปลอดภัยของแอป
- ความเสถียรของเซิร์ฟเวอร์
ตรวจสอบว่าแอปไคลเอ็นต์เชื่อมต่อกับเซิร์ฟเวอร์ได้หรือไม่
- ลิงก์ที่ยืนยันไม่ได้
คุณอาจจงใจเพิ่มลิงก์ที่ตรวจสอบไม่ได้เพื่อวัตถุประสงค์ในการทดสอบ โปรดทราบว่าใน Android 11 และเวอร์ชันที่ต่ำกว่า ลิงก์เหล่านี้จะทำให้ระบบไม่ยืนยัน Android App Link ทั้งหมดสำหรับแอปของคุณ
- ลายเซ็นใน assetlinks.json ไม่ถูกต้อง
ตรวจสอบว่าลายเซ็นถูกต้องและตรงกับลายเซ็นที่ใช้ลงนามในแอป ข้อผิดพลาดที่พบบ่อย ได้แก่
- การลงนามในแอปด้วยใบรับรองการแก้ไขข้อบกพร่องและมีลายเซ็นรุ่นที่เผยแพร่ใน
assetlinks.json
เท่านั้น - การมีลายเซ็นตัวพิมพ์เล็กใน
assetlinks.json
ลายเซ็นควร เป็นตัวพิมพ์ใหญ่ - หากใช้ Play App Signing โปรดตรวจสอบว่าคุณใช้ลายเซ็น ที่ Google ใช้ในการรับรองรุ่นของคุณแต่ละรุ่น คุณยืนยันรายละเอียดเหล่านี้ รวมถึงข้อมูลโค้ด JSON ที่สมบูรณ์ได้โดยทำตามวิธีการเกี่ยวกับการประกาศการเชื่อมโยงเว็บไซต์
- การลงนามในแอปด้วยใบรับรองการแก้ไขข้อบกพร่องและมีลายเซ็นรุ่นที่เผยแพร่ใน