[英]Firebase dynamic links are not working on iOS when the dynamic link has the custom subdomain
我在我的应用程序集成火力动态链接按中提到的准则来源1 , 源2 。 一切都在默认域的应用程序上按预期工作。
但是当我在firebase控制台上创建一个自定义子域并在iOS设备上使用它时,它没有按预期工作(即使安装了应用程序)。 我在我的Xcode项目的Capabilities => Associated Domains上添加了新的子域名,如applinks:example.page.link 。
以下是直线情景:
1)应用程序安装在设备上。
2)在电子邮件上点击动态链接(使用自定义子域) https://example.page.link/abcXYZ 。
3)它直接打开应用程序并且我的以下代码上的linkHandled
始终为false
并且从不调用handleUniversalLink
函数的completion
。
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
if let incomingURL = userActivity.webpageURL {
let linkHandled = FIRDynamicLinks.dynamicLinks()?.handleUniversalLink(incomingURL, completion: { (dynamiclink, error) in
if let dynamiclink = dynamiclink, let _ = dynamiclink.url {
self.handleIncomingDynamicLink(dynamiclink: dynamiclink)
}
})
return linkHandled
}
return false
}
但是对于linkHandled
创建的默认域(如https://my328.app.goo.gl/abcXYZ)工作正常, linkHandled
始终为true,调用handleUniversalLink
completion
并且我收到了预期的Deep link
(在firebase控制台) completion
。
有关为什么Firebase动态链接无法在自定义子域的应用程序上运行的任何想法? 我是否需要配置自定义子域名链接上提到的其他内容?
这是因为我使用的FirebaseDynamicLinks 1.4.0已经过时了。 当我更新到FDL库3.0.1时,带有自定义子域的动态链接在应用程序中正常工作。
我之所以认为我使用最新的FDL库并且无法确定我使用的是旧的FDL库,是因为CocoaPods(iOS项目的依赖管理器, 阅读更多 )无法获得最新版本的FirebaseDynamicLinks for某些原因,无论我喜欢从Pod文件中删除并重新安装FirebaseDynamicLinks或运行pod update命令。 因此,我从pod文件中删除了FirebaseDynamicLinks并运行命令pod install,它从我的项目中删除了该库,现在我从firebase控制台下载了FirebaseDynamicLinks框架并将其手动集成到我的项目中。 现在有了新的FirebaseDynamicLinks SDK,带有自定义子域的动态链接在应用程序中运行良好。
如果自定义域无效且Google域正常运行,则需要将FirebaseDynamicLinksCustomDomains键添加到适用于iOS的info.plist
<key>FirebaseDynamicLinksCustomDomains</key>
<array>
<string>https://custom-domain.com</string>
</array>
参考: https : //firebase.google.com/docs/dynamic-links/custom-domains
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.