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

Flutter App Deeplink可打开安卓端但iOS端无法打开的问题求助

核心问题分析

iOS Deeplink无响应、Apple CDN返回404且触发TLS重协商错误(SWCERR00303),核心原因是Apple的爬虫无法正常抓取你的apple-app-site-association(AASA)文件,导致iOS系统无法识别域名与应用的关联关系。

具体修复步骤

1. 解决TLS重协商错误(SWCERR00303)

Apple CDN爬虫请求AASA文件时会发起TLS重协商,若服务器禁用该功能则会触发错误,需调整服务器配置:

  • Nginx:添加或修改配置项 ssl_renegotiation on;
  • Apache:设置 SSLEnableRenegotiation on
  • 确保服务器支持TLS 1.2及以上版本(推荐TLS 1.3),并启用Apple要求的加密套件

2. 确保AASA文件能被Apple正常抓取

直接访问AASA文件正常但Apple CDN未同步,需检查以下配置:

  • 缓存头设置:给AASA文件设置合理的Cache-Control(如max-age=3600),避免长期缓存;同时添加Access-Control-Allow-Origin: *允许跨域访问
  • 文件格式与路径:确保文件放在https://<my-domain>/.well-known/apple-app-site-association路径下,JSON格式严格无错误,示例:
    {
      "applinks": {
        "apps": [],
        "details": [
          {
            "appID": "<TeamID>.<BundleID>",
            "paths": ["/login_screen", "/login_screen/*"]
          }
        ]
      }
    }
    
  • DNS与CDN配置:检查域名是否存在CNAME跳转、CDN规则拦截Apple爬虫的情况,确保Apple爬虫IP能正常访问服务器

3. 验证iOS端配置细节

  • 确认info.plist中CFBundleURLTypes配置正确,URL Scheme与关联域名匹配:
    <key>CFBundleURLTypes</key>
    <array>
      <dict>
        <key>CFBundleURLSchemes</key>
        <array>
          <string>your-app-scheme</string>
        </array>
      </dict>
    </array>
    
  • 在Xcode的Signing & Capabilities中,确认已开启Associated Domains,并正确添加applinks:<my-domain>(无http/https前缀)
  • 重置模拟器缓存:选择Simulator -> Reset Content and Settings,重新安装应用后测试

4. 测试方法优化

  • 优先用真机测试:模拟器Deeplink缓存机制不稳定,用Safari输入链接或短信发送链接测试更准确
  • 检查AASA文件的paths配置:确保/login_screen在paths列表中,支持精确匹配或通配符匹配

内容的提问来源于stack exchange,提问作者Mahir Yakup Şahin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 02:15:17