Flutter Branch SDK生成的深度链接iOS无法打开应用,始终跳转App Store怎么办?
iOS Branch深度链接跳转App Store问题排查
针对你遇到的Branch深度链接直接跳转App Store(Android正常)的问题,结合你已完成的配置,以下是常见的排查方向和可能遗漏的步骤:
一、Associated Domains配置细节验证
- 确认Info.plist中
Associated Domains的格式为applinks:<你的Branch域名>,例如applinks:your-app.app.link,不要添加http/https前缀或末尾斜杠。 - 检查Apple开发者后台的App ID是否已启用
Associated Domains权限,并且重新生成并安装了对应的Provisioning Profile(旧配置文件不会包含新权限)。 - 确保Branch Dashboard中配置的关联域名与Info.plist中的完全一致。
二、Branch SDK初始化时机与代码正确性
- 必须在
application:didFinishLaunchingWithOptions:(iOS 12及以下)或scene:willConnectToSession:options:(iOS 13+)中尽早初始化Branch SDK,且正确传入启动参数:// Objective-C示例 [Branch setUseTestBranchKey:NO]; // 正式环境设为NO,测试环境切换为YES [[Branch getInstance] initSessionWithLaunchOptions:launchOptions andRegisterDeepLinkHandler:^(NSDictionary *params, NSError *error) { // 处理深度链接参数逻辑 }];// Swift示例 Branch.setUseTestBranchKey(false) Branch.getInstance().initSession(launchOptions: launchOptions) { params, error in // 处理深度链接参数逻辑 } - 不要延迟初始化或在异步任务后初始化,否则会导致Branch无法捕获启动时的深度链接。
三、Universal Links有效性验证
- 检查你的Branch域名下的
apple-app-site-association文件是否可正常访问(直接访问https://<你的Branch域名>/apple-app-site-association,无需添加后缀)。 - 确认文件中
appIDs字段包含你的TeamID.应用BundleID(例如ABCDE12345.com.yourcompany.yourapp),且paths配置覆盖Branch链接路径(如["/*", "/app/*"])。 - 注意:Universal Links在模拟器上兼容性较差,建议使用真实iOS设备测试。
四、URL Scheme处理逻辑缺失
即使配置了URL Types,也需要在AppDelegate/SceneDelegate中实现URL Scheme的处理方法,确保Branch能捕获跳转请求:
// AppDelegate(iOS 12及以下) - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options { return [[Branch getInstance] application:app openURL:url options:options]; } // SceneDelegate(iOS 13+) - (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts { for (UIOpenURLContext *context in URLContexts) { [[Branch getInstance] application:[UIApplication sharedApplication] openURL:context.URL options:@{}]; } }
五、测试场景与缓存问题
- 不要直接在Safari地址栏输入链接测试,需从其他应用(如备忘录、短信)点击链接,Safari直接输入不会触发Universal Links跳转。
- 确认测试设备上安装的应用BundleID与Branch Dashboard配置的完全一致(避免测试版与正式版混淆)。
- Apple会缓存Universal Links配置,若近期修改过相关设置,可通过以下方式重置缓存:长按Branch链接选择「在<你的App>中打开」、重启设备,或删除应用后重新安装。
六、Branch Dashboard配置细节检查
- 确认Branch Dashboard的iOS设置中,已启用「Universal Links」和「App Links」。
- 检查「Apple App Prefix」是否为你的开发者账号Team ID(而非App ID前缀),Bundle ID需与项目中的完全匹配(大小写敏感)。
- 确认配置的App Store ID正确,避免跳转至错误应用。
内容的提问来源于stack exchange,提问作者Amani Saaduddin
相关产品推荐
相关产品推荐

