# 记录如何排查Universal Link问题

### 创建AASA文件

创建`apple-app-site-association`文件，简称AASA， 格式如下，保存文件为 `apple-app-site-association`,  文本内容必须是json格式，不带后缀名

```
{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "teamId.bundleId",
        "paths": [
          "*"
        ]
      }
    ]
  }
}

```

### 检测步骤
- 确保AASA文件正确的放在服务器上, 并且`content-type: application/octet-stream`, 不带任何后缀

  `https://{domain}/.well-known/apple-app-site-association`
  或者
  `https://{domain}/apple-app-site-association`
  
- 测试AASA能否正常访问
    `curl -v https://{domain}/.well-known/apple-app-site-association` 查看访问结果，如果为200则配置正常
    
- 测试Apple CDN访问情况
  `curl -v https://app-site-association.cdn-apple.com/a/v1/{domain}` 如果正常返回配置的信息，说明已经可用了
  
  
### 异常排查
- 使用`swcutil`命令
 ` sudo swcutil verify -d example.com -j ./example -u https://example.com/test`
 
- 使用”诊断“ 可以获取到Apple CDN请求服务器AASA的时间，来确认是否是CDN缓存导致的问题
  
  同时按住ios设备的音量+ 音量— 和电源键 2s, 待屏幕闪一下后，再系统设置 > 隐私与安全性 > 分析与改进 > 分析报告 中找到 `sysdiagnose` 相关的日志，分享到Mac上，解压后打开 `swcutil_show.txt` 文件，搜索bundleId相关关键字，找到对应的日志
  
    ```
    Service:              applinks
    App ID:               xxx
    Domain:               example.com
    User Approval:        unspecified
    Site/Fmwk Approval:   approved
    Last Checked:         xxxxx
    Next Check:           xxxxx
    ```

    从这个日志中可以看出Apple CDN上一次请求的时间和下一次检查的时间


  
