Firebase Dynamic Links安卓端fallbackURL无法正常跳转问题求助
解决Firebase动态链接安卓端跳转空白问题
核心修复步骤
- 替换fallbackURL的HTTP协议为HTTPS:安卓10及以上系统默认限制非加密HTTP链接跳转,你当前使用的
http://www.ourdomain.com会被系统拦截,修改为HTTPS协议地址即可解决80%以上的空白问题。 - 调整安卓参数配置:由于你暂未上线安卓应用,不要初始化
DynamicLinkAndroidParameters相关代码,如果你保留了未上架的安卓包名配置,Firebase会优先尝试拉起不存在的应用,跳过fallback逻辑,直接注释安卓参数部分即可。 - 核对Firebase后台配置:确认你的动态链接域名已经在Firebase控制台完成所有权验证,且后台「安卓应用」板块没有添加未上线的空包名条目,没有安卓应用的情况下不需要在后台创建任何安卓应用配置。
修正后代码示例
var urlComponents = URLComponents() urlComponents.scheme = "https" urlComponents.host = "our host" urlComponents.path = "/link_path" guard let linkParameter = urlComponents.url else { return completion(nil) } let dynamicLinksDomainURIPrefix = "our domain" let linkBuilder = DynamicLinkComponents( link: linkParameter, domainURIPrefix: dynamicLinksDomainURIPrefix ) // iOS配置保留不变 if let myBundleId = Bundle.main.bundleIdentifier { linkBuilder?.iOSParameters = DynamicLinkIOSParameters(bundleID: myBundleId) } linkBuilder?.iOSParameters?.appStoreID = "our app store id" // 暂未上线安卓应用,直接注释安卓相关配置即可 /* let androidParameters = DynamicLinkAndroidParameters(packageName: "package name") androidParameters.fallbackURL = URL(string: "https://www.ourdomain.com") androidParameters.minimumVersion = 1 linkBuilder?.androidParameters = androidParameters */ // 其他平台 fallback 改用HTTPS地址 linkBuilder?.otherPlatformParameters = DynamicLinkOtherPlatformParameters() linkBuilder?.otherPlatformParameters?.fallbackUrl = URL(string: "https://www.ourdomain.com") linkBuilder?.socialMetaTagParameters = DynamicLinkSocialMetaTagParameters() linkBuilder?.socialMetaTagParameters?.title = "title" linkBuilder?.socialMetaTagParameters?.descriptionText = "description" linkBuilder?.socialMetaTagParameters?.imageURL = URL(string: "image url") linkBuilder?.shorten(completion: { url, warnings, error in completion(url) })
验证方法
修改配置后重新生成短链,在安卓设备的Chrome浏览器直接访问测试,正常情况会直接跳转到配置的HTTPS fallback地址,不会出现空白页。
内容的提问来源于stack exchange,提问作者JPetric
相关产品推荐
相关产品推荐

