You need to enable JavaScript to run this app. 如何为Expo配置匹配Google Play的Android签名证书
优惠活动
大模型
产品
解决方案
定价
更多

如何为Expo配置匹配Google Play的Android签名证书

问题根因

两侧哈希不匹配的核心原因是 Google Play 应用签名(Play App Signing)机制的生效:
你通过expo build:android生成的Android安装包上传到Google Play控制台后,平台会自动使用托管的专属应用签名密钥对安装包做重签处理。你在App Integrity页面看到的MD5/SHA1/SHA256指纹,是平台托管的、最终分发给用户的应用签名证书的哈希值,和Expo侧用来给你上传包做初始签名的上传证书哈希天然存在差异,不属于配置错误。

对应调整方案

根据你的实际使用场景,二选一操作即可:

场景1:需对接需要证书哈希校验的Google生态服务(Google登录、地图、FCM推送等)

不需要反向调整密钥,直接把Google侧的证书哈希同步到Expo配置即可:

  • 从Google Play控制台App Integrity页面完整复制应用签名证书对应的MD5、SHA1、SHA256哈希值
  • 执行expo credentials:manager命令选中当前项目,在凭据配置页选择「更新Google服务关联哈希」选项,将原有Expo自动生成的哈希值替换为从Google Play侧拿到的数值
  • 确认项目app.json中android配置段下的Google服务参数与填入的哈希值一致后,重新触发构建流程即可完成匹配

场景2:要求两侧完全使用同一套签名证书、不启用Google托管签名

仅能在应用首次上传、尚未绑定Google托管签名的阶段操作:

  • 从Google Play控制台导出你准备用于应用签名的原始P12格式密钥文件
  • 执行expo credentials:manager,选择「替换Android签名密钥」选项,将导出的密钥文件导入Expo凭据存储,替换原有自动生成的签名密钥
  • 重新构建正式安装包上传,校验两侧指纹即可完全匹配
操作注意事项
  • 若你的应用已经启用Google Play托管签名,无法将Google托管的应用签名密钥导出到本地或Expo侧,这种场景下优先选择场景1的方案即可,不需要强制替换密钥。
  • 校验哈希时注意区分两个不同的证书条目:expo fetch:android:hashes默认拉取的是上传用证书的哈希,而App Integrity页面分开展示了「上传证书」和「应用签名证书」两组指纹,不要跨条目对比数值导致判断偏差。
  • 操作过程中不要随意删除Expo侧现有签名密钥,否则会导致后续上传的安装包因签名不一致被Google Play拦截。

内容的提问来源于stack exchange,提问作者myTest532 myTest532

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.29 01:15:03