全部產品
Search
文件中心

Mobile Platform as a Service:如何排查離線包驗簽失敗的問題

更新時間:Jul 13, 2024

問題定義

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

離線包驗簽

常見癥狀

  • 網路正常的情況下,離線包應用可以正常開啟;關閉網路,離線包應用無法開啟。

  • H5 應用載入緩慢。

基本排查動作

  1. 確認控制台是否開啟了離線包驗簽(上傳了加簽私密金鑰)。確認用戶端 H5 容器是否啟用了離線包驗簽功能。常見的配置組合及結果如下:

    • 控制台開啟 & 用戶端開啟:驗簽可能失敗,失敗的原因可能是驗簽密鑰不匹配。

    • 控制台開啟 & 用戶端關閉:問題可能與驗簽無關。

    • 控制台關閉 & 用戶端開啟:驗簽必然失敗。

    • 控制台關閉 & 用戶端關閉:問題可能與驗簽無關。

      重要

      用戶端驗簽的配置是否生效是該項檢查中一項容易忽略的地方。

  2. 抓取 Charles/Fiddler 資料包,觀察是否存在 amr 下載動作,確認是否有 fallback 流量。

    • 如果觀察到存在對應離線包的 amr 下載動作,且存在 fallback 流量,則可能是驗簽失敗。

    • 如果沒有觀察到 amr 的下載動作,但是依然存在 fallback 流量,不能完全排查其他原因(離線包預置失敗/下載失敗等等)。抓取資料包

  3. 查看用戶端日誌,判斷驗簽結果。

    Android 用戶端日誌中搜尋 signature verify result,根據日誌上下文判斷是否存在驗簽失敗。查看日誌

解決方案

根據文檔,仔細檢查離線包驗簽配置,確認控制台上傳的私密金鑰和用戶端配置的公開金鑰是否匹配。

重要

如果重新上傳控制台離線包簽名私密金鑰,所有離線包均需要重新上傳,重建 amr/h5_json 檔案。