测试环境Universal Link可唤起APP,生产环境无法识别求助
生产环境Universal Link无法唤起APP的排查方案
ASA文件有效性验证
- 确认生产域名的ASA文件路径为
https://www.aaaa.com/.well-known/apple-app-site-association,无重定向,返回状态码为200 - 检查JSON格式是否严格合规:确保所有引号为标准英文双引号,无语法错误;验证
appID中的TeamID与生产APP签名使用的TeamID完全一致,Bundle ID后缀也需和生产APP的Bundle ID匹配(若测试与生产用不同Bundle ID,需同步修改ASA中的对应字段) - 用
curl -v https://www.aaaa.com/.well-known/apple-app-site-association命令查看返回内容,确认Content-Type为application/json,无额外HTML代码包裹
Xcode配置与签名检查
- 确认生产环境APP的关联域名已添加
applinks:www.aaaa.com,格式与测试环境的applinks:staging.aaaa.com完全一致 - 重新生成生产环境的Provisioning Profile,确保包含关联域名权限,避免旧配置缓存问题
- 检查生产包的签名信息,确认Bundle ID、TeamID与ASA文件中的
appID完全匹配
Branch.io配置排查
- 登录Branch后台,确认生产域名
www.aaaa.com已添加到Link Domains列表且状态为已验证 - 确保生产环境代码使用的是正确的Branch生产密钥,不要与测试密钥混用
- 检查Branch后台的Universal Link配置,确认生产域名未被误禁用
设备缓存重置
iOS设备会缓存Universal Link关联信息,需按以下步骤重置:
- 删除生产环境APP,重启设备
- 用Safari打开
https://www.aaaa.com,关闭Safari - 重新安装生产环境APP
- 使用Safari/系统短信/备忘录点击生产链接测试(不要用第三方浏览器,避免跳转逻辑干扰)
代码逻辑修正
你提供的scene(_:openURLContexts:)方法存在未定义变量问题,且Universal Link的核心处理应在continueUserActivity方法中完成,补充并修正代码:
// 处理Universal Link核心逻辑 func scene(_ scene: UIScene, continue userActivity: NSUserActivity) { BranchScene.shared().continue(userActivity) if let webpageURL = userActivity.webpageURL { print("Clicked Universal Link: \(webpageURL.absoluteString)") // 解析链接逻辑可在这里补充 let urlString = webpageURL.absoluteString let component = urlString.components(separatedBy: "=") print("Deeplink URL Component: \(component)") } } // 处理其他URL唤起场景 func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) { BranchScene.shared().scene(scene, openURLContexts: URLContexts) if let url = URLContexts.first?.url { print("Clicked URL: \(url.absoluteString)") } }
官方工具验证
使用Apple开发者后台的关联域名验证工具,输入生产域名,确认ASA文件能被正确解析且与APPID匹配
内容的提问来源于stack exchange,提问作者Swiosift
相关产品推荐
相关产品推荐

