排解應用程式連結問題

本指南說明常見問題及疑難排解方法。您也可以使用 Play 管理中心「深層連結」頁面或 Android Studio 應用程式連結小幫手中的疑難排解工具。詳情請參閱「應用程式連結開發人員工具」。

  • 問題:您點選應開啟應用程式的連結,但系統卻在網頁瀏覽器中開啟連結,或顯示消歧對話方塊。
  • 解決方案
    • 檢查 assetlinks.json:確認檔案是有效的 JSON,可在 https://<your-domain>/.well-known/assetlinks.json 存取,且透過 HTTPS 提供,沒有重新導向。使用線上驗證工具。
    • 驗證 SHA-256 指紋:仔細檢查 assetlinks.json 中的 sha256_cert_fingerprints 是否與應用程式發布版本的簽署金鑰指紋完全相符 (如果使用 Play 應用程式簽署,請使用 Play 管理中心的指紋)。簽名應為大寫。
    • 驗證 autoVerify:確認 AndroidManifest.xml 中的 <intent-filter> 包含 android:autoVerify="true
    • 檢查伺服器端重新導向:從 http 重新導向至 https,或從非 www 網域重新導向至 www,都可能導致驗證失敗。
    • 強制重新驗證:在「測試應用程式連結」指南中執行 ADB 指令,取得最新的驗證結果。

Android 15 以上版本的動態規則未更新

  • 問題:您已更新 assetlinks.json 檔案中的規則,但應用程式未處理新的連結。
  • 解決方案
    • 強制重新驗證:如要測試變更,最可靠的方式是使用 adb shell pm verify-app-links --re-verify. <your-package-name> 強制重新擷取。
    • 檢查錯別字:仔細檢查規則中的模式比對器,看看有無語法錯誤。
    • 檢查資訊清單篩選器規則:檢查應用程式資訊清單中的意圖篩選器規則,確認連結路徑未遭到篩除。如果連結遭到篩除,請在應用程式資訊清單中,使用限制性較低的意圖篩選器。

修正常見的導入錯誤

如果無法驗證 Android 應用程式連結,請檢查下列常見錯誤。本節使用 example.com 做為預留位置網域名稱;執行這些檢查時,請將 example.com 替換為伺服器的實際網域名稱。

意圖篩選器設定不正確
檢查您是否在 <intent-filter> 元素中加入應用程式不擁有的網址。
伺服器設定有誤

檢查伺服器的 JSON 設定,確認 SHA 值正確無誤。

此外,請檢查 example.com. (結尾有句號) 是否與 example.com 提供相同的內容。

伺服器端重新導向

如果您設定了下列重新導向,系統就不會驗證應用程式的任何 Android 應用程式連結:

  • http://example.comhttps://example.com
  • example.comwww.example.com

這項行為可保護應用程式安全。

伺服器穩定性

檢查用戶端應用程式是否可以連線至伺服器。

無法驗證的連結

如果是測試用途,您可能會刻意加入無法驗證的連結。請注意,在 Android 11 以下版本中,這些連結會導致系統無法驗證應用程式的所有 Android 應用程式連結。

assetlinks.json 中的簽名不正確

確認簽名正確無誤,且與用於簽署應用程式的簽名相符。常見錯誤包括:

  • 使用偵錯憑證簽署應用程式,且 assetlinks.json 中只有發布簽章。
  • assetlinks.json 中使用小寫簽名。簽名應為大寫。
  • 如果您使用 Play 應用程式簽署功能,請務必使用 Google 簽署各個版本時所用的簽章。如要驗證這些詳細資料 (包括完整的 JSON 程式碼片段),請按照宣告網站關聯的說明操作。