iOS通用链接无法正常工作?

13

我在使用通用链接时遇到了问题

运行苹果验证失败,出现以下错误: 错误:没有与URL相关联的应用程序

我想也许验证器不起作用,但在支持通用链接的iOS 10设备上(添加了正确的域名),单击有效链接不会触发AppDelegate中的委托方法

有什么想法吗?


请查看此线程:https://dev59.com/9VwY5IYBdhLWcg3wVGaB#66353132 - Sagar Sukode
5个回答

22

经过3周...结果发现我的路径是不正确的。 我的建议:

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

更具体地说,我尝试注册的链接是site.com/events/123123,因此我会添加一个错误的路径/events,这将注册site.com/events。相反,我必须注册/events/*

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

苹果的app-site-association验证器是无用的,对于我的App id仍然失败,尽管深度链接实际上是可以正常工作的。 相反,请使用https://limitless-sierra-4673.herokuapp.com/


1
这里的"/events/*"是最重要的信息! - Krumelur
2
哇!你说的关于“笔记”应用和Safari奇怪逻辑的话真的很正确!我的代码已经是正确的了。当我尝试使用“笔记”时,我的应用程序开始每次都加载。以前从未加载过。我希望你所说的只适用于Safari地址栏,而Safari在页面上找到的链接将正常工作。 - Bruce Cichowlas
1
我也为Safari的奇怪逻辑问题感到困惑。将我的测试链接复制到笔记中解决了问题。谢谢! - Jaap Weijland
还要注意,"/events/*" 对于 "site.com/events/123123/something" 是无效的,因为星号只在单个路径组件内起作用。这就是我遇到的问题。 - algrid

9
我最近在调试我的应用程序的通用链接功能时遇到了问题。我能够使深度链接工作,但好像只有10%的几率。由于我刚刚升级到iOS 12,我想确保没有其他需要开发者执行的操作以确保该功能正常工作。
那么是什么导致了间歇性故障呢?看起来iOS对于确定后台线程何时可以运行具有相当严格的策略引擎。通过USB连接到我的手机并打开设备的调试控制台,我能够观察到这一点。
  • Xcode –> Windows –> Devices & Simulators
  • 点击左面板中的设备
  • 点击 Open Console
从那里,我能够过滤“swcd”(共享Web凭据守护进程)。保持此控制台打开,我就能够在应用程序安装期间观察到守护进程在工作,此时iOS试图为我的应用程序下载“apple-app-site-association”文件。
结果,由于我的手机最近重新启动过,然后又确定我的手机过热,所以“dasd”(DuetActivitySchedulerDaemon)未能运行“SharedWebCredential Daemon”。
{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}

开发者们要小心了!


1
这很有趣。你还发现了什么? - Senõr Ganso
1
这里提供了非常有用的反馈。在我的第一次尝试中,我实际上看到了请求成功。日志如下(某些信息已被编辑):default 17:01:41.239379 -0700 swcd Added service 'applinks', appID 'XXXXXXXX.com.example-sandbox', domain 'www.example-sandbox.com' - nteissler
1
此外,为了最终使其正常工作,需要进行删除、重启、重新安装的过程:https://blog.branch.io/notice-inconsistent-universal-link-behavior-on-ios-11-2/ - nteissler
1
这是大约一年前写的。我现在正在尝试让它工作。它真的会那么不稳定吗?也许我做的一切都是正确的,但它仍然不能工作,只是因为我还没有尝试足够多的次数。 - Bruce Cichowlas
1
在安装应用程序时(iPhone 7 plus,iOS 13.3.1),我遇到了以下错误:获取企业管理的关联域数据时出错。如果此设备未受企业管理,则这是正常现象:Error Domain=SWCErrorDomain Code=1701 "Failed to get associated domain data from ManagedConfiguration framework." UserInfo={NSDebugDescription=Failed to get associated domain data from ManagedConfiguration framework., Line=250, Function=<private>}您有解决此问题的任何想法吗? - Pramuka Dias

4
我按照其他答案中提到的步骤,跟着苹果的通用链接故障排除流程进行了操作。
如果仍然无法使用,并且在邮件或备忘录应用中长按链接未显示“使用[你的应用程序]打开”,那么尝试重新启动您的手机。多次出现这种情况时,这对我来说是解决方案!

2
我本来不相信,但重启确实有帮助。 - AlexZd
1
荒谬,不是吗? - joshweir

3
苹果验证器检查了一些与通用链接无关的内容,不幸的是,这经常导致误报错误消息。位于https://couchsurfing.com/apple-app-site-association的文件看起来很好,并且可以通过此验证器
当点击有效链接时,应用程序是否没有打开,还是委托方法没有触发?这两个问题非常不同,需要不同的解决方案。您可以尝试一些故障排除步骤在这里,但其中一些特定于链接平台Branch.io(完全披露:我是Branch团队的成员)。

1
不好意思,应用程序无法打开,委托方法也没有被调用,我已经卡在这里两个星期了 :( 我已经查看了那个故障排除指南。 - aryaxt

1
作为对上面答案的一种补充(我花了几个小时才找到):
应用程序需要在您将“apple-app-site-association”文件添加到服务器之后安装,因为该文件最初是在安装后获取/检查的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接