深度链接 云托管 iOS · 2026-04-03

iOS Universal Link 配置与托管实践

什么是 Universal Link

Universal Link 是 Apple 在 iOS 9 引入的深度链接机制,允许用户点击一个 HTTPS 链接直接跳转到应用内,而不需要经过 Safari。微信 SDK 从某个版本开始强制要求使用 Universal Link 进行回调。

用户点击链接 → iOS 检查 AASA 文件 → 匹配成功 → 直接打开应用
                    ↘ 匹配失败 → 在 Safari 中打开网页

核心文件:apple-app-site-association

这个文件(简称 AASA)告诉 iOS 系统哪些路径应该被哪个应用接管。文件格式:

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appIDs": ["TEAM_ID.BUNDLE_ID"],
        "paths": ["/app/*"]
      }
    ]
  }
}
appIDs 格式是 TeamID.BundleID,不是单独的 Bundle ID。Team ID 可以在 Apple Developer 账号或 Xcode 项目设置中找到。

部署到云端静态托管

AASA 文件必须通过 HTTPS 提供,且不能有重定向。云端静态托管是最快捷的方案:

  1. 登录云开发环境
  2. 将 AASA 文件上传到根目录和 .well-known/ 目录(兼容性考虑)
  3. 云平台自动提供 HTTPS 域名

最终 URL 格式如下:

https://your-env-id.tcloudbaseapp.com/apple-app-site-association
https://your-env-id.tcloudbaseapp.com/.well-known/apple-app-site-association

Xcode 配置 Associated Domains

在 Xcode 中配置应用关联域名:

  1. 选中 Target → Signing & Capabilities
  2. 点击 "+ Capability" 添加 Associated Domains
  3. 添加 applinks:your-env-id.tcloudbaseapp.com
注意 applinks: 前缀不能省略,且域名不需要加 https://

微信开放平台配置

在微信开放平台的应用管理中,填写 Universal Link:

https://your-env-id.tcloudbaseapp.com/app/

末尾的 / 不能省略,且必须与 AASA 文件中的 paths 规则匹配。

验证方法

Apple 提供了在线验证工具:

https://app-site-association.cdn-apple.com/a/v1/your-domain.com

如果返回了你的 AASA 文件内容,说明配置生效。注意 Apple 的 CDN 有缓存,新部署后可能需要等待几分钟到几小时。

常见问题