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

Swift iOS中AppsFlyer Deeplink失效:点击跳转至App Store而非已安装应用

以下是逐步排查和修复的具体步骤:

  • 确认apple-app-site-association文件已部署到域名根目录或.well-known目录,JSON格式必须严格无错误(比如不能有多余逗号)。在设备的Safari中访问https://你的域名/apple-app-site-association,确保能下载到包含你App的Team ID和Bundle ID的正确JSON内容。
  • 检查Xcode项目的Signing & Capabilities中,Associated Domains已添加applinks:你的域名(不要带http/https前缀)。
  • 确认开发者后台的App ID已启用Associated Domains能力,且签名配置的Team ID和文件中的一致。

2. 核对 AppsFlyer 后台配置

  • 进入AppsFlyer后台的Deep Linking设置,确认填写的iOS Bundle ID与项目完全一致。
  • 检查OneLink配置页面,确保关联的是目标应用,且已启用Universal Links选项。
  • 在后台直接测试生成的OneLink,看是否能正确唤起已安装的App。

3. Xcode 项目细节检查

  • 检查Info.plist中的CFBundleURLTypes,URL Scheme需与AppsFlyer后台设置的自定义Scheme一致。
  • 若使用自定义Scheme唤起,需在Info.plist的LSApplicationQueriesSchemes中添加appsflyer。
  • 确保App使用的是正式签名(Ad Hoc或App Store签名),调试签名可能导致Universal Links失效。

4. 代码集成正确性验证

  • AppDelegate 实现:
    func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
        AppsFlyerLib.shared().continue(userActivity, restorationHandler: restorationHandler)
        return true
    }
    
  • SceneDelegate 实现(iOS 13+):
    func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
        AppsFlyerLib.shared().continue(userActivity)
    }
    
  • 初始化代码:在didFinishLaunchingWithOptions中确保正确初始化:
    AppsFlyerLib.shared().appsFlyerDevKey = "你的Dev Key"
    AppsFlyerLib.shared().appleAppID = "你的App Store ID"
    AppsFlyerLib.shared().delegate = self
    AppsFlyerLib.shared().start()
    
  • 回调监听:实现AppsFlyerLibDelegate的onDeepLinking方法,打印日志确认是否收到deeplink:
    func onDeepLinking(_ result: DeepLinkResult) {
        switch result {
        case .success(let deepLink):
            print("DeepLink 接收成功: \(deepLink)")
        case .failure(let error):
            print("DeepLink 错误: \(error)")
        }
    }
    

5. 设备测试注意事项

  • 必须使用物理设备测试,模拟器不支持Universal Links。
  • 通过短信、邮件或Safari书签打开测试链接,不要直接在Xcode控制台点击链接。
  • 若之前测试过无效链接,可重置Universal Links缓存:打开Safari访问你的域名,长按地址栏选择「取消关联网站」,再重新测试。

6. 排查第三方SDK干扰

  • 暂时禁用其他第三方链接SDK(如Firebase、Branch),测试是否能正常唤起,排除冲突可能。

内容的提问来源于stack exchange,提问作者Anoop Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 12:15:31