Capacitor iOS应用Universal Link跳转失败,报SWCErrorDomain错误8
解决Capacitor应用Universal Link失效(SWCErrorDomain 8)的方案
1. 校验AASA文件的格式与内容
- 用JSON校验工具(比如本地执行
cat apple-app-site-association | jq .)检查文件是否存在语法错误,苹果SWC服务对JSON格式要求极严,哪怕是多余的逗号这类小问题都会导致校验失败。 - 确认
applinks结构合规:"apps"数组必须为空(即"apps": []),details里的appID是Team ID+Bundle ID(比如你的78A4MS27Y9.com.my-domain),paths配置无格式错误(你的"/*"是合法的)。
2. 修正AASA文件的访问路径
你当前访问的URL带有双斜杠(https://my-domain.com//.well-known/...),虽然浏览器能兼容,但SWC服务可能严格要求单斜杠路径(https://my-domain.com/.well-known/apple-app-site-association)。检查服务器配置,确保单斜杠路径能返回正确文件,清理冗余的重定向规则。
3. 检查服务器响应头
- 用
curl -I https://my-domain.com/.well-known/apple-app-site-association验证返回的Content-Type必须是application/json,不能是text/plain或其他类型。 - 查看缓存相关响应头(如
Cache-Control),若缓存时间过长,可能导致SWC获取旧文件,建议临时设置短缓存(1小时内)测试。
4. 重置SWC服务缓存
执行以下命令重置缓存并重新下载:
sudo swcutil reset sudo swcutil dl -d https://my-domain.com --verbose
之后重启iPad,确保缓存完全清除。
5. 核对Capacitor与Xcode配置
- 确认
capacitor.config.ts中appId和appLinks配置正确:export default defineConfig({ appId: 'com.my-domain', appLinks: { domains: ['my-domain.com'] } // 其他配置... }); - 打开Xcode项目,检查
Signing & Capabilities里的Associated Domains是否添加了applinks:my-domain.com,无拼写错误。 - 确保Xcode中的Team ID、Bundle ID与AASA文件里的
appID完全匹配。
6. 验证触发逻辑
- 测试链接需为完整格式(如
https://my-domain.com/test),且该域名未被其他应用设为默认打开方式。 - 进入iPad设置→你的应用→查看
Associated Domains是否显示my-domain.com,若未显示,说明设备未成功获取AASA配置。
内容的提问来源于stack exchange,提问作者moonjelly
相关产品推荐
相关产品推荐

