Deep Link 问题排查
问题
Universal Links 不生效、跳转失败,如何排查?
答案
排查清单
AASA 文件验证
# 检查 AASA 文件是否可达
curl -I https://example.com/.well-known/apple-app-site-association
# 响应要求:
# Content-Type: application/json
# 状态码 200
# 不能有重定向
常见问题
| 问题 | 原因 | 解决 |
|---|---|---|
| 链接在 Safari 打开而不跳 App | AASA 未下载成功 | 检查域名 HTTPS 和 AASA 路径 |
| 从微信/QQ 打不开 | 第三方 App 限制 Universal Links | 增加中间页跳转 |
| 更新 AASA 后不生效 | Apple CDN 缓存 | 重装 App 或等 24h |
| 模拟器不生效 | 部分功能需要真机 | 用真机测试 |
| 长按链接显示"在 Safari 中打开" | 用户之前在顶部 banner 点了"打开" | 长按链接 → "在 App 中打开" |
调试工具
# Apple 验证工具
# https://search.developer.apple.com/appsearch-validation-tool/
# swcutil 查看设备已关联的域名(需要 macOS)
xcrun swcutil dl --device-id <UDID>
常见面试问题
Q1: URL Scheme 和 Universal Links 有什么区别?
答案:
- URL Scheme(
myapp://):自定义协议,任何 App 可注册相同 scheme(有被劫持风险),App 未安装时打开失败 - Universal Links(
https://example.com/path):HTTP 链接,Apple 验证域名所有权(安全),App 未安装时自动降级到网页