iOS 14设备UniversalLink无法打开APP 跳转网页问题求解决方案
iOS 14 下 UniversalLink 无法拉起应用排查方案
优先排查服务端AASA文件配置(90%以上问题出在这里)
iOS14对AASA(apple-app-site-association)文件的拉取逻辑做了大幅调整,需要满足以下要求:
- AASA文件必须无任何注释内容,JSON格式严格合法,部署在域名根目录或者
.well-known路径下 - 访问AASA文件时不能有301/302等重定向,返回的Content-Type必须是
application/json - AASA文件中填写的TeamID、BundleID必须和Xcode工程配置完全一致,路径匹配规则要覆盖你需要唤起的页面路径
- iOS14默认走苹果CDN拉取AASA,如果你是测试环境,可以在Xcode的Associated Domains配置中给域名加
?mode=developer后缀,同时开启设备「设置-开发者-Associated Domains Development」开关,跳过CDN直接从你的域名拉取文件
检查Xcode工程配置
- 确认「Signing & Capabilities」中已经开启Associated Domains开关,填写的域名必须以
applinks:为前缀,不要带http/https头,不要加路径后缀,例如正确写法是applinks:yourdomain.com - 确认工程的Team、BundleID和AASA文件中填写的信息完全匹配,不要有拼写错误
测试环节避坑
- 测试时不要在微信、QQ等第三方应用内点击链接,这类应用默认会拦截UniversalLink,优先在Safari浏览器、系统备忘录中点击测试
- 修改配置后请完全卸载应用再重新安装,避免系统缓存旧的配置信息
- 如果跳转时右上角没有出现「打开XX应用」的入口,说明系统没有识别到该链接对应你的应用,问题出在配置层面,和代码逻辑无关
代码层面优化(可选,用于确认链路正常后的逻辑调整)
如果已经可以正常拉起应用,只是跳转逻辑异常,可以在scene(_:continue:)方法开头加断点,确认方法是否被正常触发。你当前的代码逻辑已经覆盖了冷启动和热启动场景的UniversalLink接收,只需要注意路径匹配时不要漏处理带参数的场景即可。
内容的提问来源于stack exchange,提问作者shelly upadhyay
相关产品推荐
相关产品推荐

