You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter项目生成Facebook登录key hash执行命令报错如何解决?

问题根因

该报错是PowerShell的语法限制:带空格的可执行文件路径作为管道后续执行的命令时,不能直接用引号包裹路径后追加参数,必须使用调用运算符&显式声明要执行的程序。

可行解决方案

方案1:修正PowerShell命令(推荐)

直接在每个openssl调用前添加&,执行修正后的命令即可:

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Jaffs\.android\debug.keystore" | & "C:\Program Files\openSSl\bin\openssl" sha1 -binary | & "C:\Program Files\openSSl\bin\openssl" base64

提示输入密钥库密码时,默认debug签名的密码为android,直接输入后回车即可得到key hash。
如果需要生成release包对应的key hash,替换命令中的alias、keystore路径为你自己的release签名配置,输入对应签名密码即可。

方案2:通过CMD执行原命令

CMD不存在上述PowerShell语法限制,按下Win+R输入cmd回车打开命令提示符,直接运行你原本的命令即可:

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Jaffs\.android\debug.keystore" | "C:\Program Files\openSSl\bin\openssl" sha1 -binary | "C:\Program Files\openSSl\bin\openssl" base64

方案3:分步生成(适合管道调用异常场景)

如果上述方案仍有问题,可以拆分步骤执行,避免管道调用:

  1. 导出签名证书到临时文件
keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Jaffs\.android\debug.keystore" -file debug.cert
  1. 生成SHA1二进制文件
& "C:\Program Files\openSSl\bin\openssl" sha1 -binary debug.cert > debug.sha1
  1. 转Base64得到最终key hash
& "C:\Program Files\openSSl\bin\openssl" base64 debug.sha1

执行完成后可删除生成的debug.cert、debug.sha1临时文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:06:04