Firebase添加Android项目提示SHA-1已存在,如何生成新的SHA-1?
SHA-1绑定Firebase报错「Requested entity already exists」解决方案
报错原因
同一个SHA-1不能同时绑定到两个不同的Firebase/Google Cloud项目下的应用,报错说明你当前要填入的SHA-1已经被你之前的项目占用。
方案1:删除旧项目中的重复SHA-1(优先推荐,不需要生成新SHA-1)
- 打开之前绑定过该SHA-1的Firebase项目,进入「项目设置」页面
- 下滑到「您的应用」板块,找到绑定了该SHA-1的Android应用
- 展开应用的SHA证书指纹列表,点击重复SHA-1右侧的删除按钮
- 回到当前新项目的控制台重新填入该SHA-1,即可正常提交
方案2:生成新的SHA-1用于当前项目
可以生成新的SHA-1,分调试用debug签名和发布用release签名两种场景操作:
生成新的Debug签名SHA-1
Android Studio默认的调试签名文件debug.keystore存储在系统固定路径,可生成新文件替换原有:
- 打开Android Studio内置终端,执行命令生成新的debug签名文件:
keytool -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 10950 - 把生成的
debug.keystore文件替换原有默认路径的文件:- Windows系统路径:
C:\Users\<你的系统用户名>\.android\debug.keystore - macOS/Linux系统路径:
~/.android/debug.keystore
- Windows系统路径:
- 替换完成后执行命令获取新的SHA-1:
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
生成新的Release签名SHA-1
如果是正式发布用的release签名SHA-1冲突,直接生成新的正式签名文件即可:
- 打开Android Studio,顶部菜单栏依次点击「Build」→「Generate Signed Bundle / APK」
- 选择「APK」后点击下一步,点击「Create new」按钮生成新的jks签名文件
- 按照提示填写签名文件存储路径、密码、别名、别名密码等信息完成生成
- 执行以下命令获取新release签名的SHA-1:
keytool -list -v -keystore <你的新签名文件完整路径> -alias <你设置的签名别名>
注意事项
- 若你开启了Google Play App Signing,生成新release签名后需要同步把新的SHA-1上传到Google Play控制台的「应用签名」板块
- 正式签名文件、对应密码、别名请妥善备份保存,丢失后无法更新已在应用商店发布的现有应用
内容的提问来源于stack exchange,提问作者Londrinho
相关产品推荐
相关产品推荐

