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

Passkey认证报错:localhost与应用标识符未关联的解决方法

解决Passkey认证中应用与localhost:8080关联失败的问题

针对你遇到的AuthorizationError Code=1004(应用ID与localhost:8080未关联)错误,以下是逐一排查和修复的步骤:

1. 修正apple-app-site-association文件的webcredentials配置

你当前的webcredentials.apps字段仅填写了Bundle ID,但Apple要求此处必须是Team ID + Bundle ID的完整格式,示例格式为{TeamID}.{BundleID}:

  • 查找Team ID:打开Xcode → 项目设置 → Signing & Capabilities → 查看当前Team对应的ID
  • 修改后的webcredentials片段示例:
"webcredentials": {
  "apps": ["ABC123XYZ.com.yourcompany.yourapp"]
}

2. 调整iOS关联域配置

确保Xcode中Signing & Capabilities的Associated Domains字段格式正确:

  • 需同时添加:webcredentials:localhost:8080 和 webcredentials:localhost:8080?mode=developer(开发者模式需明确声明)
  • 注意:必须使用开发者账号签名项目,个人免费账号无法正常使用关联域功能

3. 修正Passkey代码中的Relying Party Identifier

ASAuthorizationPlatformPublicKeyProvider的relyingPartyIdentifier必须是不带端口的域名,Passkey规范中Relying Party ID不包含端口信息:

let publicKeyProvider = ASAuthorizationPlatformPublicKeyCredentialProvider(
  relyingPartyIdentifier: "localhost" // 替换原有的localhost:8080
)

4. 清除模拟器的关联域缓存

模拟器会缓存关联域数据,强制刷新可解决缓存导致的不匹配:

  • 打开模拟器「设置」→「Safari浏览器」→「清除历史记录与网站数据」
  • 或直接重置模拟器:菜单栏「Hardware」→「Erase All Content and Settings...」
  • 确保模拟器已开启开发者模式:设置→隐私与安全性→开发者模式(开启后重启模拟器)

5. 验证HTTPS证书信任(针对localhost)

如果你的Vapor服务器使用自签名HTTPS证书:

  • 将证书文件拖放至模拟器窗口,按提示完成安装
  • 进入模拟器设置→通用→关于本机→证书信任设置,找到该证书并开启「信任」

完成以上步骤后,重新运行Vapor服务器和iOS项目,Passkey认证的关联问题即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:13:14