使用apple-app-site-association文件进行Passkey本地开发遇阻
Passkey本地调试问题解决方案
端口号相关配置说明
- 调试授权文件:无需在
associated domains中指定端口号。苹果关联域名机制仅识别主机名(此处为localhost),忽略端口。确保com.apple.developer.associated-domains授权项格式为webcredentials:localhost?mode=developer,?mode=developer需紧跟域名,不要附加端口。 - Apple传输安全(ATS)例外:若使用HTTP协议运行localhost服务,需在
Info.plist中添加ATS例外,无需指定端口,配置示例如下:<key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>localhost</key> <dict> <key>NSExceptionAllowsInsecureHTTPLoads</key> <true/> <key>NSIncludesSubdomains</key> <true/> </dict> </dict> </dict>
解决“应用未与localhost关联”错误及服务器无请求记录问题
- 配置端口转发:苹果调试模式下会请求
http://localhost/.well-known/apple-app-site-association(不带端口),需将80端口请求转发至Vapor服务的8080端口。macOS可通过以下命令临时配置:echo "rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080" | sudo pfctl -f - - 验证文件可访问性:配置完成后,执行以下命令确认文件能被正常访问(不带端口):
需确保返回正确JSON内容,且响应头curl -v http://localhost/.well-known/apple-app-site-associationContent-Type为application/json。 - 重启应用与Xcode:修改授权文件或
Info.plist后,彻底关闭应用(含后台进程),重启Xcode并重新编译运行,确保新配置生效。 - 检查授权文件嵌入状态:在Xcode的Build Settings中,确认
Code Signing Entitlements指向正确的调试授权文件,且com.apple.developer.associated-domains条目配置无误。
额外提示
- 调试模式下苹果虽不缓存关联文件,但仍可能存在延迟,可尝试重启设备刷新缓存。
- 确保Vapor服务器正确配置静态文件服务,
.well-known文件夹需放置在静态资源目录下,且服务器允许该路径的访问请求。
内容的提问来源于stack exchange,提问作者bobby123uk
相关产品推荐
相关产品推荐

