【问题标题】:iOS universal links not working?iOS 通用链接不起作用?
【发布时间】:2017-04-06 19:25:17
【问题描述】:

我无法让通用链接正常工作

运行苹果验证失败并出现以下错误: 错误没有与 url 关联的应用

我认为验证器可能不起作用,但在 iOS 10 设备上运行(启用通用链接功能,并为其添加了正确的域)单击有效链接不会触发 AppDelegate 中的委托方法

有什么想法吗?

【问题讨论】:

标签: ios app-store-connect ios-universal-links


【解决方案1】:

Apple 验证器会检查通用链接正常工作所不需要的其他一些内容,不幸的是,这通常会导致误报错误消息。 https://couchsurfing.com/apple-app-site-association 的文件对我来说看起来不错,它通过 this validator 就好了。

当点击有效链接时,应用没有打开,还是只是委托方法没有触发?这是两个非常不同的问题,会有不同的解决方案。您可以尝试一些故障排除步骤 here,尽管其中一些特定于 Branch.io(完全披露:我在 Branch 团队)链接平台。

【讨论】:

  • 没有,应用程序没有打开,委托方法也没有被调用,被困在这个问题上 2 周了 :( 已经阅读了那个故障排除指南
【解决方案2】:

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

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

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

另外,最简单的测试方法是将预期的链接输入到Notes 应用程序中,因为 Safari 在链接何时应作为深度链接处理时有一些奇怪的逻辑。

Apple 的 app-site-association 验证器毫无用处,当深层链接真正起作用时,我仍然无法抱怨我的 App id。而是使用https://limitless-sierra-4673.herokuapp.com/

【讨论】:

  • 这里:“/events/*”是有史以来最重要的信息!
  • 哇!你所说的 Notes 应用程序和 Safari 的奇怪逻辑是真的!我的代码已经正确。当我尝试使用 Notes 时,我的应用程序每次都开始加载。它以前从未加载过。我希望您所说的仅适用于 Safari 地址栏,并且 Safari 在页面上找到的链接可以正常工作。
  • 我也因为野生动物园奇怪的逻辑问题而绞尽脑汁。将我的测试链接复制到笔记就可以了。谢谢!
  • 另请注意,“/events/*”不适用于“site.com/events/123123/something”,因为星号仅适用于单个路径组件。这就是我的问题。
【解决方案3】:

我最近在调试我的应用的 Universal Link 功能时遇到了问题。 我能够与工作建立深度链接,但它似乎只有 10% 的时间有效。由于我刚刚更新到 iOS 12,因此我想确保作为开发人员无需做任何其他事情来确保该功能正常运行。

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

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

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

事实证明,dasd (DuetActivitySchedulerDaemon) 未能运行 SharedWebCredential 守护进程,因为我的手机最近重新启动了,后来又重新启动了确定我的手机太热了...

例如

{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}

开发者小心!

【讨论】:

  • 这很有趣。你还发现了什么?
  • 这里有非常有用的反馈。在我第一次尝试时,我实际上看到请求成功了。日志(部分信息已编辑):default 17:01:41.239379 -0700 swcd Added service 'applinks', appID 'XXXXXXXX.com.example-sandbox', domain 'www.example-sandbox.com'
  • 此外,删除、重新启动、重新安装过程对于最终工作是必要的:blog.branch.io/…
  • 这是大约一年前写的。我现在正试图让它工作。真的可以这么牛逼吗?也许我做的一切都是正确的,但它仍然无法正常工作,只是因为我尝试的次数不够多。
  • 安装应用程序时出现以下错误(iPhone 7 plus、iOS 13.3.1)获取企业管理的关联域数据时出错。如果此设备不是企业管理的,这是正常的:Error Domain=SWCErrorDomain Code=1701 "Failed to get associated domain data from ManagedConfiguration framework." UserInfo={NSDebugDescription=无法从 ManagedConfiguration 框架获取关联的域数据。, Line=250, Function=} 您有解决此问题的想法吗?
【解决方案4】:

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

如果仍然无法正常工作,并且长按邮件或便笺应用中的链接无法显示“使用 [您的应用] 打开”,则尝试重新启动手机。不止一次,这对我来说是解决方案!

【讨论】:

  • 我不相信,但重启有帮助。
  • 荒谬不是吗?
【解决方案5】:

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

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

【讨论】:

    猜你喜欢
    • 2016-01-28
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    相关资源
    最近更新 更多