【FAQ】應用整合HMS Core部分服務出現“ 6003報錯”情況的解決方法來啦

HMSCore發表於2022-04-08

背景

開發者在應用中整合HMS Core部分服務時,android sdk 以及flutter等跨平臺sdk,會出現編譯打包後,執行報6003錯誤碼的情況。根據查詢可以得知,錯誤程式碼 6003 表示證書指紋配置不一致,主要是生成的包(例如安卓apk)的簽名,與華為開發者平臺上應用設定裡面配置的不一致。

原因

  1. 未按照開發文件,在AppGallery Connect 應用設定配置簽名SHA256
  2. 已經在開發者平臺上配置SHA256,但是和實際打包生成apk簽名的 SHA256不一致。

解決方法

  1. 按照官方文件配置SHA256即可:

注意:新增SHA256之後,需要重新下載agcconnect.json檔案更新到工程,重新生成應用apk。

  1. 可以直接獲取打包生成的apk簽名的SHA256, 新增配置到AppGallery Connect 應用設定配置下,然後重新下載agcconnect.json檔案更新到工程,重新生成應用apk。

開發者可以使用以下任意一種方式獲取apk 指紋並進行比較,確保它是相同的:

方式一:jarsigner

命令示例:jarsigner -verbose -verify MyAPK_base_v11.0.apk > MyAPK_info.txt

檢視MyAPK_info.txt 找到".RSA"檔案的路徑,然後使用以下命令 解析.RSA

unzip -p MyAPK_base_v11.0.apk META-INF/BNDLTOOL.RSA | keytool -printcert

結果:

Certificate fingerprints:

SHA1: D0:88:29:99:94:C3:72:44:EA:CF:B1:6B:09:3E:01:95:FE:E4:45:BE

SHA256: EF:68:A7:0A:3A:47:F8:DD:46:58:52:EA:E2:59:AE:D6:1A:43:38:D8:14:26:05:9E:D3:99:C2:D1:F6:34:D9:DE

Signature algorithm name: SHA1withRSA (weak)

Subject Public Key Algorithm: 1024-bit RSA key (weak)

方式二:apksigner.bat

命令示例:(apksigner.bat 通常位於 /android/build-tools 資料夾中)

apksigner.bat verify --print-certs MyAPK_base_v10.2.6-8569.apk

結果:

Signer #1 certificate DN: CN=Michael Smith, OU=My Org, O=A Team, L=Okemos, ST=Michigan, C=US

Signer #1 certificate SHA-256 digest: ef68a70a3a47f8dd465852eae259aed61a4338d81426059ed399c2d1f634d9de

Signer #1 certificate SHA-1 digest: d088299994c37244eacfb16b093e0195fee445be

Signer #1 certificate MD5 digest: 68710e87d99e7f946958db33d3fcf13c

由此可獲取到打包的簽名SHA256為:

EF:68:A7:0A:3A:47:F8:DD:46:58:52:EA:E2:59:AE:D6:1A:43:38:D8:14:26:05:9E:D3:99:C2:D1:F6:34:D9:DE

將其與AppGallery Connect中進行對比SHA-256。如果不存在,就新增SHA256(同一個應用可以新增多個SHA256),然後需要重新下載agcconnect.json檔案更新到工程,重新生成應用apk。

如果簽名SHA256新增配置一致後依舊報6003錯誤,則需要開發者在自己裝置的Apps頁面中找到HMS Core (APK)並清除快取,重啟應用程式後再次執行之前的操作。這是HMS Core (APK)可能會快取簽名檔案而導致的。

瞭解更多詳情>>

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

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

相關文章