แก้ปัญหา 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 ตรงกับลายนิ้วมือของคีย์ Signing สำหรับรุ่นของแอปทุกประการ (ใช้ลายนิ้วมือจาก 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 และกฎ 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.com
  • example.com ถึง www.example.com

ลักษณะการทำงานนี้จะช่วยปกป้องความปลอดภัยของแอป

ความทนทานของเซิร์ฟเวอร์

ตรวจสอบว่าแอปไคลเอ็นต์เชื่อมต่อกับเซิร์ฟเวอร์ได้หรือไม่

ลิงก์ที่ยืนยันไม่ได้

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

ลายเซ็นใน assetlinks.json ไม่ถูกต้อง

ตรวจสอบว่าลายเซ็นถูกต้องและตรงกับลายเซ็นที่ใช้ในการรับรองแอป ข้อผิดพลาดที่พบบ่อยมีดังนี้

  • การรับรองแอปด้วยใบรับรองสำหรับการแก้ไขข้อบกพร่องและมีเฉพาะลายเซ็นสำหรับการเผยแพร่ใน assetlinks.json
  • มีลายเซ็นตัวพิมพ์เล็กใน assetlinks.json ลายเซ็นควรเป็นตัวพิมพ์ใหญ่
  • หากคุณใช้ Play App Signing โปรดตรวจสอบว่าคุณใช้ลายเซ็นที่ Google ใช้ในการรับรองแต่ละรุ่นของคุณ คุณสามารถยืนยันรายละเอียดเหล่านี้ รวมถึงข้อมูลโค้ด JSON ที่สมบูรณ์ได้โดยทำตามวิธีการเกี่ยวกับการประกาศการเชื่อมโยงเว็บไซต์

บันทึกรายงานข้อบกพร่อง

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