แก้ปัญหา App Link

คู่มือนี้อธิบายปัญหาที่พบบ่อยและวิธีแก้ปัญหา นอกจากนี้ คุณยังใช้เครื่องมือแก้ปัญหาในหน้า Deep Link ของ Play Console หรือ ผู้ช่วย App Link ของ Android Studio ได้ด้วย ดูข้อมูลเพิ่มเติมได้ที่เครื่องมือสำหรับนักพัฒนาแอป App Links

  • ปัญหา: คุณคลิกลิงก์ที่ควรจะเปิดแอป แต่ลิงก์กลับเปิดในเว็บ เบราว์เซอร์หรือแสดงกล่องโต้ตอบที่มีคำอธิบาย
  • วิธีแก้ปัญหา
    • ตรวจสอบ 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 ที่สมบูรณ์ได้โดยทำตามวิธีการเกี่ยวกับการประกาศการเชื่อมโยงเว็บไซต์