關聯域深度校驗
iOS 通用連結與 Android 應用程式連結仰賴以 HTTPS 提供的 `apple-app-site-association` 與 Digital Asset Links JSON,並須滿足內容類型、重新導向與快取等細節。將來源站回應與蘋果 CDN 視圖對照,可在使用者回落瀏覽器前找出政策不一致。
使用方法
- 填入你在 Associated Domains 或 Android intent 中宣告的全部網域,包含預備與區域化主機。
- 並排檢查 HTTP 狀態、JSON 結構、應用程式識別、路徑萬用字元、團隊 ID 與簽章指紋等,並與各平台官方指南對照。
- 修正標頭與內容後重新部署,待快取擴散後於實機點擊驗證;當套件識別或簽章指紋輪替時同步更新權利聲明。
常見問題
- 為何 iOS 仍用 Safari 開啟連結?
- 常見原因包含 `/.well-known/` 或根路徑缺少/無效的 AASA、錯誤的 `Content-Type`、重新導向鏈路問題、載荷過大,或應用識別與權利聲明不符。可藉蘋果 CDN 快照對照來源以定位陳舊快取。
- Android 與 Apple 設定檔要列相同路徑嗎?
- 兩平台模式不同:iOS 需要 `applinks` 下的應用 ID 與路徑規則;Android 需要套件名稱加上驗證過的簽章憑證。依各自路由矩陣協調,但欄位結構須分別遵循平台格式。
- AASA/CDN 快取會保留多久?
- 蘋果側快取較積極,修復後仍可能延遲生效。記錄標頭與版本,更新權利並定期複測,勿假設立即失效。
移動關聯域深度診斷分析
極速併發審計 iOS Universal Links 與 Android App Links 配置文件,穿透蘋果 CDN 緩存層進行實時差異同步比對。
📖 Associated Domains 關聯域技術 Wiki 與運維指南
// 為開發與運維人員打造的 Universal Links 與 App Links 一站式運維寶典。
通用鏈接是蘋果提供的深度鏈接協議。它允許用戶在點擊網頁鏈接時,不通過 Safari 瀏覽器中轉,而是直接靜默攔截並喚起本地已安裝的 App。
核心工作機制:
- 配置聲明: 開發者在 Xcode 項目中開啟 Associated Domains,並聲明格式如
applinks:yourdomain.com的關联域。 - 系統安裝靜默拉取: 用戶安裝 App 時,iOS 操作系統會自動靜默連通蘋果官方 CDN (
app-site-association.cdn-apple.com) 抓取您源站上的apple-app-site-association文件。 - 設備端安全註冊: 蘋果系統解析該文件。如若文件合法,且文件中聲明的
appID匹配,系統便會在設備上為 App 註冊該域名下特定路徑攔截規則。 - 無縫拉起: 此後,點擊此域名下的匹配 URL,系統即可在瞬時自動拉起 App。
Android App Links 是谷歌在 Android 6.0 及更高版本推出的方案,能自動將用戶引導至相應的特定內容,無需彈出應用選擇器對話框。
核心工作機制:
- 清單聲明: 在 App 的
AndroidManifest.xml的 Intent 過濾器中配置android:autoVerify="true"並指定目標域名。 - 系統安裝校驗: 在安裝 App 時,Android 系統的 Package Manager 會向您的源站
/.well-known/assetlinks.json發起 HTTPS 校驗。 - 校驗確認: 確認域名所提供 JSON 中的
package_name和 SHA-256 證書指紋與正在安裝的 App 簽名完全相符後,系統會將該 App 設為該域名鏈接的默認處理程序。
蘋果抓取程序和 Android 系統在讀取 AASA/Assetlinks 文件的請求鏈路上嚴禁任何 HTTP 301/302 重定向,哪怕只是 http 到 https 或者是斜槓後綴補全。
源站的 AASA 響應 Header 必須為 application/json 或 application/pkcs7-mime,Assetlinks 必須為 application/json。返回 text/plain 或 text/html 會被徹底拒收。
AASA 聲明必須是嚴格的合規 JSON。常見的如尾部逗號、中文雙引號、無效注釋會使系統 JSON 解析器直接崩潰報錯,導致註冊失效。
蘋果官方 CDN 採用約 24 小時的強緩存機制,在開發調試中修改了源站 AASA 往往需要漫長的等待。若要即時生效,可在系統設置中通過開啟 Developer mode 調試直接讀取源站。
如果您的源站使用自簽名、不受信或已過期的 HTTPS 證書,即使在電腦上能正常訪問,操作系統和蘋果抓取節點出於安全機制,也將拒絕與源站通信。