Firebase Dynamic Link安装后无法触发邀请弹窗问题求助
修复方案与调试方法
一、核心修复步骤
1. 确保Firebase Dynamic Links初始化完成
在SceneDelegate的willConnectTo方法中,先完成Firebase全局初始化(若未在其他位置配置):
import Firebase func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { FirebaseApp.configure() // 原有window配置代码保留 guard let windowScene = (scene as? UIWindowScene) else { return } let initialWindow = UIWindow(windowScene: windowScene) initialWindow.makeKeyAndVisible() AppSharedPoint.shared.setupWindow(window ?? initialWindow) { // 链接处理逻辑见下文 } }
2. 替换链接处理逻辑为Firebase原生解析
安装后首次打开的动态链接需要通过Firebase SDK解密解析,不能直接提取webpageURL。修改willConnectTo中的回调部分:
AppSharedPoint.shared.setupWindow(window ?? initialWindow) { // 处理userActivity if let userActivity = connectionOptions.userActivities.first { self.handleFirebaseDynamicLink(userActivity: userActivity) } // 处理URLContexts if let url = connectionOptions.urlContexts.first?.url { DynamicLinks.dynamicLinks().handleUniversalLink(url) { dynamicLink, error in guard error == nil, let dynamicLink = dynamicLink, let deepLink = dynamicLink.url else { return } AppSharedPoint.shared.handle(link: deepLink) } } }
新增私有方法统一处理NSUserActivity:
private func handleFirebaseDynamicLink(userActivity: NSUserActivity) { guard userActivity.activityType == NSUserActivityTypeBrowsingWeb, let webpageURL = userActivity.webpageURL else { return } DynamicLinks.dynamicLinks().handleUniversalLink(webpageURL) { dynamicLink, error in guard error == nil, let dynamicLink = dynamicLink, let deepLink = dynamicLink.url else { return } AppSharedPoint.shared.handle(link: deepLink) } }
同步更新scene(_:continue:)方法:
func scene(_ scene: UIScene, continue userActivity: NSUserActivity) { handleFirebaseDynamicLink(userActivity: userActivity) }
3. 检查Firebase控制台配置
- 确认动态链接的
App Store ID、Bundle ID与应用完全匹配 - 验证
Team ID配置正确 - 检查深层链接(Deep Link)格式无拼写错误
二、安装后首次打开场景的调试方法
- Xcode调试日志:
- 打开Xcode Scheme设置,在
Run -> Arguments -> Arguments Passed On Launch中添加-FIRDebugEnabled - 运行App,查看控制台
DynamicLinks相关日志,确认链接是否被正确解析
- 打开Xcode Scheme设置,在
- 测试链接验证:
通过Firebase控制台生成测试动态链接,在Safari中打开跳转至App Store,安装后点击「打开」,观察控制台日志输出 - 打印关键信息:
在handleFirebaseDynamicLink中添加打印,确认安装后是否接收到正确的userActivity:print("Received activity type: \(userActivity.activityType), webpageURL: \(webpageURL ?? "")") - 关联域名检查:
确认Xcode的Signing & Capabilities中已添加Associated Domains,格式为applinks:<你的动态链接域名>
内容的提问来源于stack exchange,提问作者Rahish Kansal
相关产品推荐
相关产品推荐

