You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI开发iOS App Clip无法通过Universal Link启动问题求助

一、Associated Domains 配置验证

  • 主应用(Runner)和App Clip目标的Associated Domains必须添加 applinks:<你的域名>,注意域名不带https前缀,例如applinks:vault-activation-beta.web.app。
  • 确认Xcode中两个目标的配置文件(Provisioning Profile)已更新,包含Associated Domains权限。可在Signing & Capabilities面板点击配置文件旁的刷新按钮同步。

二、AASA 文件补充配置

当前AASA仅为主应用配置了链接路由,App Clip需要单独在applinks的details数组中添加匹配规则,否则系统无法关联链接到App Clip。修改后的AASA配置如下:

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "<TeamId>.<BundleId of main app>",
        "paths": ["/redeem"]
      },
      {
        "appID": "<TeamId>.<BundleId of app clip>",
        "paths": ["/redeem"]
      }
    ]
  },
  "appclips": {
    "apps": ["<TeamId>.<BundleId of app clip>"]
  }
}

注:appclips字段仅用于声明App Clip存在,实际链接的路由匹配仍依赖applinks中的配置。

三、代码逻辑调整

  • SwiftUI的onOpenURL与UIApplicationDelegate的continue userActivity均可处理链接,建议保留其中一处逻辑避免冲突。可移除AppDelegate中的continue userActivity方法,仅通过ContentView的onOpenURL接收链接:
WindowGroup {
  ContentView()
    .onOpenURL(perform: { url in
      print("Opened URL: \(url)")
    })
}
  • 确保测试时App Clip已通过Xcode安装到真机,且未被卸载。

四、设备缓存与测试方式排查

  • iOS会缓存AASA文件,新配置可能无法立即生效,可通过以下方式重置缓存:
    • 重启设备。
    • 打开Safari访问目标链接(https://vault-activation-beta.web.app/redeem),下拉刷新页面后返回短信重试。
    • 进入设置 -> 通用 -> VPN与设备管理 -> 开发者APP,点击App Clip条目选择验证应用(若有该选项)。
  • 测试时需长按短信中的链接,查看是否出现“在App Clip中打开”选项,直接点击链接可能优先打开主应用或Safari。

五、额外检查项

  • 确认App Clip的Bundle ID符合苹果规则:必须是主应用Bundle ID的后缀形式,例如主应用为com.example.app,App Clip需为com.example.app.Clip。
  • 验证域名HTTPS有效性:需使用正规SSL证书(Firebase Hosting默认满足,无需额外操作)。
  • 确认AASA文件路径正确:需放置在域名的.well-known目录下,访问https://vault-activation-beta.web.app/.well-known/apple-app-site-association应直接返回文件内容,无跳转或下载。

内容的提问来源于stack exchange,提问作者lcolli71

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 18:20:34