iOS 通用链接不起作用?

iOS universal links not working?

我无法让通用 link 正常工作

运行 苹果验证失败,出现以下错误: 错误没有与 url

关联的应用

我认为验证器可能无法正常工作,但 运行 在 iOS 10 设备上(通用 link 功能已启用,并为其添加了正确的域)单击有效 link 不会触发 AppDelegate

中的委托方法

有什么想法吗?

Apple 验证器会检查一些其他一些非通用链接工作所必需的东西,不幸的是,这通常会导致误报错误消息。 https://couchsurfing.com/apple-app-site-association looks good to me, and it passes this validator的文件就好了

点击有效 link 时,应用 未打开 还是只是委托方法未触发?这是两个截然不同的问题,会有不同的解决方案。您可以尝试一些故障排除步骤 here, though some of those are specific to the Branch.io(全面披露:我在 Branch 团队)linking 平台。

3 周后...原来我的路径不正确。我的建议:

在调试时将路径设置为 ["*", "/"],让一切正常工作并进行测试,然后在最后一步更新路径并仅包含支持的路径。

更具体地说,link 我试图注册的是 site.com/events/123123 所以我会为 /events 添加一个路径,这是错误的,会注册 site.com/events。我不得不注册 /events/* 而不是

另外,最简单的测试方法是将预期的 links 输入到 Notes 应用程序中,因为 Safari 在 links 应该被处理时有一些奇怪的逻辑深link.

Apple 的 app-site-association 验证器没用,当 deeplinks 实际工作时,我抱怨我的 App id 仍然失败。而是使用 https://limitless-sierra-4673.herokuapp.com/

我最近在调试我的应用程序的 通用 Link 功能时遇到问题。 我能够获得工作的深层链接,但似乎只有 10% 的时间有效。由于我刚刚更新到 iOS 12,我想确保作为开发人员我不需要做任何其他事情来确保该功能正常工作。

那么是什么导致了间歇性故障? 似乎 iOS 有一个有点严格的策略引擎来确定后台线程何时可以 运行。 我能够通过 USB 网络共享到我的 phone 并为我的设备打开调试控制台来观察到这一点

  • Xcode –> Windows –> 设备和模拟器
  • 单击左侧窗格中的设备
  • 单击打开控制台

从那里,我能够过滤“swcd”(SharedWebCredential Daemon)。保持此控制台打开,我能够在应用程序安装期间看到守护程序在工作,这是当 iOS 尝试为我的 apple-app-site-association 文件拉下时应用

事实证明,dasd (DuetActivitySchedulerDaemon) 无法 运行 SharedWebCredential 守护进程因为我的phone最近重启了,后来确定是我的phone太热了...

例如

{name: ThunderingHerdPolicy, policyWeight: 1.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{deviceInUse == 1 AND timeSinceThunderingHerdTriggerEvent < 900}]}}
 ], FinalDecision: Must Not Proceed}

{name: ThermalPolicy, policyWeight: 5.000, response: {Decision: Absolutely Must Not Proceed, Score: 0.00, Rationale: [{thermalLevel >= 20}]}}
 ], FinalDecision: Absolutely Must Not Proceed}

开发者小心!

我逐步完成了 Apple 的 troubleshooting universal links procedure,正如其他答案中已经提到的那样。

如果仍然无法正常工作,并且在邮件或笔记应用中长按 link 无法显示 "Open with [your app]",则 尝试重新启动您的 phone.这对我来说已经多次成为解决方案!

作为对上述答案的某种补充(我花了几个小时才找到答案):

在您将“apple-app-site-association”文件添加到服务器后需要安装该应用程序,因为该文件最初是在安装后获取/检查的。