Firebase 动态链接未打开 iOS 应用程序
Posted
技术标签:
【中文标题】Firebase 动态链接未打开 iOS 应用程序【英文标题】:Firebase dynamic link not opening iOS app 【发布时间】:2020-01-16 07:22:06 【问题描述】:不得不提一下这个动态链接以前可以工作,但由于某种原因突然停止工作。
这是动态链接:
autobavaria1491911550production.page.link
这是在功能中添加到关联域的链接:applinks:autobavaria1491911550production.page.link
在使用apple-app-site-association
进行测试后,结果是:
"applinks":
"apps": [],
"details": [
"appID": "K9B6CPM5NB.com.whipmobility.ios.operation",
"paths": [
"NOT /_/*",
"/*"
]
,
"appID": "S5Q34K6U59.com.autobavaria.ios.customer",
"paths": [
"NOT /_/*",
"/*"
]
]
com.autobavaria.ios.customer
是我希望打开动态链接的包名称,它在应用关联中可用,但没有发生,是的,App Store ID 和团队 ID 已添加到 firebase 控制台中,知道为什么会这样吗?
【问题讨论】:
删除您的应用并重新启动您的设备...然后检查。 观看此视频:youtube.com/watch?v=KLBjAg6HvG0 从 8:00 开始获取调试帮助。 谢谢@MohitKumar。这太奇怪了,卸载应用程序并重新启动手机并重新安装后,重新开始工作。知道为什么会这样吗? 根据 Firebase,下载与您的域关联的 apple-app-site-association 文件时有时会出现错误。这就是它发生的原因。如果可行,请接受我的回答。谢谢。 在我的例子中,我们在 firebase 中有 2 个不同的项目用于沙盒和生产,并且它下面的应用程序具有相同的包名称。在我的情况下,我猜当 TestFlight 中具有相同包名的沙盒应用程序被从 AppStore(生产版本)安装的应用程序覆盖时,就会出现问题。和操作系统对此感到困惑。 【参考方案1】:步骤:
-
删除您的应用
重启您的设备。
重新安装您的应用并进行测试。
根据 firebase,有时在下载与您的域关联的“apple-app-site-association”文件时会出现错误。这就是它发生的原因。
观看此视频:https://youtu.be/KLBjAg6HvG0?t=483 以获得调试帮助。
从开始设置动态链接:https://www.youtube.com/watch?v=KLBjAg6HvG0
如果您已完成上述步骤,请检查您的 AppDelegate 文件中是否实现了正确的方法。
方法一:
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool
if DynamicLinks.dynamicLinks().shouldHandleDynamicLink(fromCustomSchemeURL: url)
let dynamicLink = DynamicLinks.dynamicLinks().dynamicLink(fromCustomSchemeURL: url)
self.handleDynamicLink(dynamicLink)
return true
return true
方法二:
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool
if let incomingURL = userActivity.webpageURL
print(incomingURL)
let linkHandled = DynamicLinks.dynamicLinks().handleUniversalLink(incomingURL) (dynamicLink, error) in
guard error == nil else
print("Found an error! \(error!.localizedDescription)")
return
if let dynamicLink = dynamicLink
self.handleDynamicLink(dynamicLink)
if linkHandled
return true
else
//May be do other things with our incoming URL?
return false
return false
处理动态链接常用方法:
func handleDynamicLink(_ dynamicLink: DynamicLink?)
guard let dynamicLink = dynamicLink else return
guard let deepLink = dynamicLink.url else return
【讨论】:
您是否有解释为什么/如何发生这种情况的来源/参考(文档)?突然之间,我的staging
/dev
构建的 Firebase 动态链接中断(没有更改),但我在 prod
上的 AppStore 实时版本仍然正常工作。整个星期都在扯我的头发……
通过 Firebase 团队查看视频:youtube.com/watch?v=KLBjAg6HvG0 在此视频中,您将看到 iOS 中发生这种情况的几个场景。以上是关于Firebase 动态链接未打开 iOS 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
IOS10 Firebase 动态链接显示带有打开按钮的空白页面。但为啥?
如果应用程序未以编程方式安装 firebase 动态链接,则重定向到 iOS App Store
Flutter - Firebase 动态链接没有被 onLink 捕获,而是在 iOS 上打开应用