如何在Safari中打开链接时重定向至iOS应用?
排查iOS Universal Links跳转失败的问题
看起来你已经完成了Universal Links的基础配置,但跳转没生效,我帮你梳理几个容易踩坑的排查点:
先确认apple-app-site-association文件的可访问性与正确性
- 用浏览器或终端命令
curl https://example.com/.well-known/apple-app-site-association访问,确保能直接获取到文件,返回状态码是200,绝对不能有重定向(比如跳转到www子域名或HTTP地址)。 - 核对文件内容:确保
TEAM_ID是你在Apple开发者后台的10位团队ID(不是团队名称),bundle_identifier和Xcode里应用的Bundle ID完全一致,JSON格式要严格有效,不能有多余的空格或语法错误。你给出的结构是正确的,但要替换成实际的ID值。
- 用浏览器或终端命令
检查Xcode里的配置细节
- 确认
Associated Domains能力已启用:在项目的Signing & Capabilities标签下,这个能力是打开状态,且添加的条目是applinks:example.com——不要加https://、路径或其他后缀,就是纯域名。 - 测试用的应用必须是签名有效的包:模拟器对Universal Links支持有限,建议用真机测试,且安装的是用开发者签名/Ad Hoc签名的应用,Bundle ID要和配置文件里的完全匹配。
- 重启应用和设备:iOS会缓存关联域名的数据,有时候重启能刷新缓存,解决旧配置残留的问题。
- 确认
注意测试方式的正确性
- 别直接在Safari地址栏输入域名!Universal Links的触发条件是点击链接——比如在短信、邮件、备忘录里点击
https://example.com的链接,直接输入地址栏默认会打开网页,不会触发跳转。 - 第一次点击可能会在Safari打开,下拉页面顶部会出现「打开应用」的横幅;如果没出现,可能是缓存或配置问题,可以多等一会儿,或者用Apple的CDN验证工具:在终端运行
curl -v https://app-site-association.cdn-apple.com/a/v1/example.com,看看返回的内容是否和你上传的一致,如果不一致,说明Apple还没抓取到你的配置,最多可能需要24小时同步,但一般几小时内就会更新。
- 别直接在Safari地址栏输入域名!Universal Links的触发条件是点击链接——比如在短信、邮件、备忘录里点击
其他潜在问题
- 服务器必须用可信的HTTPS证书:不能是自签名证书,必须是权威CA颁发的,否则Apple无法抓取你的配置文件。
- 如果域名有跳转(比如www.example.com跳转到example.com),要在
Associated Domains里添加两个条目:applinks:example.com和applinks:www.example.com,同时确保两个域名的.well-known目录下都有正确的配置文件。 - 确认应用的
AppDelegate或SceneDelegate里实现了application(_:continue:restorationHandler:)方法(如果用SceneDelegate的话是scene(_:continue:)),虽然不实现也能打开应用,但如果有自定义跳转逻辑,这个方法是处理链接的入口。
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

