Facebook Deep Link测试跳转App Store而非iOS应用,求排查方案
iOS Facebook Deep Linking 跳转App Store而非启动应用的排查方案
验证Universal Links配置有效性
- 检查
apple-app-site-association文件是否部署在域名根目录或.well-known目录,无后缀且能通过HTTPS直接访问(不能有重定向) - 确认文件内
appIDs格式为TEAMID.BUNDLEID,且与你的应用Team ID、Bundle ID完全匹配 - 在iOS设备备忘录里输入你的Universal Link,长按查看是否出现「打开应用」选项,没有则说明Universal Links配置失效
- 检查
核对Facebook后台配置
- 确认Facebook开发者后台中应用的iOS设置里,Bundle ID和Team ID与Xcode项目完全一致
- 检查「Deep Linking」板块已正确添加你的Universal Links域名,且状态显示验证通过
检查测试广告的Deep Link设置
- 确保FB Ads控制台中测试广告用的是已验证的Universal Link,而非App Store链接
- 确认「Deep Link」字段填写准确,无多余空格或错误字符
检查Xcode项目配置
- 确认「Signing & Capabilities」中已添加「Associated Domains」,并正确填入
applinks:你的域名(前缀固定为applinks:,不要加http/https) - 检查Info.plist中是否添加
LSApplicationQueriesSchemes,并包含fb、fbapi等Facebook相关Scheme(针对旧版URL Scheme跳转场景) - 确保AppDelegate或SceneDelegate中正确实现Universal Links处理逻辑:
// AppDelegate 示例 func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { if userActivity.activityType == NSUserActivityTypeBrowsingWeb, let url = userActivity.webpageURL { // 这里处理Deep Link跳转逻辑 return true } return false } // SceneDelegate 示例 func scene(_ scene: UIScene, continue userActivity: NSUserActivity) { if userActivity.activityType == NSUserActivityTypeBrowsingWeb, let url = userActivity.webpageURL { // 这里处理Deep Link跳转逻辑 } }
- 确认「Signing & Capabilities」中已添加「Associated Domains」,并正确填入
清除设备端缓存
- 删除设备上的应用后重新安装,同时清除Safari缓存(设置→Safari浏览器→清除历史记录与网站数据)
- 重启设备,避免Universal Links缓存导致识别异常
排查测试与正式环境差异
- 若使用测试证书,确认Facebook后台「Test Devices」已添加当前测试设备的UDID
- 确保测试用的是FB Ads的「测试广告」,正式广告可能存在审核或缓存延迟问题
内容的提问来源于stack exchange,提问作者Vanitha Vijayakumar
相关产品推荐
相关产品推荐

