整合Health Kit時因證書問題出現錯誤碼50063的解決方案

HMSCore發表於2023-03-29

一、問題描述及操作

應用整合Health Kit SDK後,在華為手機上進行登入授權時,返回錯誤碼50063。

1、檢視相關錯誤碼。‘50063’在Health Kit錯誤碼中的描述是“安裝的HMS Core APK版本不匹配,無法呼叫介面。”提供的解決方案是“請安裝最新版本的HMS Core(APK)後,再呼叫介面”。

2、根據文件中提供的解決方案,解除安裝了手機裝置中的HMS Core APK,重新更新到最新版本後,仍返回錯誤碼50063。

3、呼叫HuaweiApiAvailability#isHuaweiMobileServicesAvailable(Context context)介面,檢測HMS Core (APK)在裝置上是否成功安裝和整合時,返回結果1,表示在裝置上沒有發現HMS Core(APK),預期結果應該返回0。

4、使用‘adb logcat > log.txt’獲取完整日誌,進行日誌分析。

二、原因分析

在日誌中篩選“HMSSDK_”,可以看到關鍵日誌“E/HMSSDK_X509CertUtil: Not include alias 052root”。

根據日誌顯示,是因為hmsrootcas.bks證書中沒有發現052root資訊,導致校驗失敗,從而引起登入失敗。正常情況下,如果使用Maven倉整合SDK時,此hmsrootcas.bks證書檔案會在打包時自動放到apk的assets目錄下,一般不會出現問題。

如果沒有日誌,也可以藉助工具檢視APK中的hmsrootcas.bks是否包含052root:

三、解決方案

1、檢查專案工程中的assets資原始檔目錄中是否存在hmsrootcas.bks檔案,如果存在的話,可以刪除,在打包時hmsrootcas.bks會自動打包到apk中。

2、如果assets資原始檔目錄中不存在hmsrootcas.bks檔案或刪除後,仍出現此問題,可以手動整合包含052root資訊的bks檔案,具體操作如下:

1)訪問連結,下載SDK檔案。

2)解壓下載的檔案,根據以下路徑找到bks檔案,並整合到專案主工程下的assets中:hmssdk-eclipse-6.9.0.300\Security-ssl\assets。僅放置hmsrootcas.bks檔案即可。

3)重新編譯專案。

更多接入華為運動健康服務常見問題,請參見FAQ

瞭解更多詳情>>

訪問華為開發者聯盟官網
獲取開發指導文件
華為移動服務開源倉庫地址:GitHubGitee

關注我們,第一時間瞭解 HMS Core 最新技術資訊~