問題定義
離線包驗簽的原理與作用如 離線包簡介 中所述,驗簽失敗並不會直接導致 H5 應用不可用,但會導致 H5 容器無法從本地擷取到 H5 應用的資源,所有流量都會 fallback 到線上,對使用者體驗和效能有一定的影響。

常見癥狀
網路正常的情況下,離線包應用可以正常開啟;關閉網路,離線包應用無法開啟。
H5 應用載入緩慢。
基本排查動作
確認控制台是否開啟了離線包驗簽(上傳了加簽私密金鑰)。確認用戶端 H5 容器是否啟用了離線包驗簽功能。常見的配置組合及結果如下:
控制台開啟 & 用戶端開啟:驗簽可能失敗,失敗的原因可能是驗簽密鑰不匹配。
控制台開啟 & 用戶端關閉:問題可能與驗簽無關。
控制台關閉 & 用戶端開啟:驗簽必然失敗。
控制台關閉 & 用戶端關閉:問題可能與驗簽無關。
重要用戶端驗簽的配置是否生效是該項檢查中一項容易忽略的地方。
抓取 Charles/Fiddler 資料包,觀察是否存在 amr 下載動作,確認是否有 fallback 流量。
如果觀察到存在對應離線包的 amr 下載動作,且存在 fallback 流量,則可能是驗簽失敗。
如果沒有觀察到 amr 的下載動作,但是依然存在 fallback 流量,不能完全排查其他原因(離線包預置失敗/下載失敗等等)。

查看用戶端日誌,判斷驗簽結果。
Android 用戶端日誌中搜尋
signature verify result,根據日誌上下文判斷是否存在驗簽失敗。
解決方案
根據文檔,仔細檢查離線包驗簽配置,確認控制台上傳的私密金鑰和用戶端配置的公開金鑰是否匹配。
重要
如果重新上傳控制台離線包簽名私密金鑰,所有離線包均需要重新上傳,重建 amr/h5_json 檔案。