带有通配符的iOS关联域(通用链接)不起作用

问题描述 投票:22回答:4

[我正在使用的iOS应用中,我已设置关联域(通用链接)。该应用程序托管多个域。我已使用通配符设置了某些域。这些域似乎无效。例如,我想链接到https://news.mydomain.com/。如果我将以下内容添加到关联域的列表中:

applinks:*.mydomain.com->不起作用

[applinks:news.mydomain.com->正常]

因此,我相信我确实设置了所有正确的程序,apple-app-site-association文件设置正常。在这两种情况下,我什至都可以看到(使用Charles Proxy)可以正常检索apple-app-site-association文件。

对于通配符,该链接仅在Safari中打开。

当我配置不带通配符的域时,将打开该应用程序。

我在这里想念什么吗?我正在设备上运行iOS 9.3.2,并且正在运行Xcode 7.3.1(今天是最新版本)。

ios ios-universal-links associated-domains
4个回答
21
投票

我将发现添加到此线程:https://forums.developer.apple.com/thread/47315

简而言之,即使在iOS 10中,通配符设置似乎也要求apple-app-site-association文件由通配符的根提供。

例如,如果要使用*.domain.com,则需要同时托管apple-app-site-association,例如app1.domain.comdomain.com,否则仅在Xcode中指定applinks:*.domain.com时将无法使用。

如果主站点托管在www.domain.com,并且您在domain.com上具有301重定向(将您重定向到www.domain.com,这很不幸,因为通用链接不允许重定向。

我发现的解决方法是为您的应用创建一个主子域,并为通配符使用子子域。例如:

  • [app.domain.com(必须提供apple-app-site-association文件)] >>
  • [server1.app.domain.com(必须服务apple-app-site-association)] >>
  • server2.app.domain.com(...)
  • 那样,在Xcode中,您只能指定applinks:*.app.domain.com,而通用链接将起作用,而无需在Xcode中指定server1.app.domain.comserver2.app.domain.com等。

    但是请注意,如果您打算同时在应用程序中使用该服务器,则还必须明确指定applinks:app.domain.com

我希望这会有所帮助。

[似乎仅在applinks中引入了在iOS 9.3 Beta 2的域部分中添加通配符。在9.3 Beta 2发行说明中:

您现在可以将通用链接与任意子域一起使用,而不是需要将应用程序的所有子域都列为完全限定域名称。条目具有以下形式:

:[:端口号]其中“ webcredentials”,“ activitycontinuation”或“ applinks”。

条目的部分现在可以选择是前缀“ *”表示通配符子域。例如:

applinks:*。example.com

您说您在iOS 9.3.2上运行。但是您的[C0

= deployment target是吗?如果不是,请尝试更改它。我认为它将解决您的问题。

[iOS 9.3(对不起,我没有任何其他公共来源)

编辑:

即使Here you can found a copy of this release notes表示您可以在域上使用通配符,Apple Doc

要匹配关联域的所有子域,您可以指定一个前缀。在特定域开始之前(需要时间)。域匹配基于最长的applinks条目中的子字符串。例如,如果您指定条目applinks:

。mywebsite.com和applinks:*。users.mywebsite.com,对emily.users.mywebsite.com域的匹配是针对* .users.mywebsite.com条目较长。请注意,* .mywebsite.com与星号后面的句号不匹配,因此与mywebsite.com不匹配。为* .mywebsite.com和mywebsite.com,您需要为每个提供单独的应用链接条目。

2
投票

[似乎仅在applinks中引入了在iOS 9.3 Beta 2的域部分中添加通配符。在9.3 Beta 2发行说明中:


1
投票

我认为这是文档中的苹果错误。我在9.3.1上遇到了同样的错误。并且9.3.2正常工作。关于they seems to have an issue on this]的非常有趣的链接

Apple应该说* .domain.com在此链接中适用于> = 9.3.2signing problems, see Laurence Fan's comment


1
投票

我在2016年9月使用iOS 9.3.5和iOS 10 Beta进行了尝试。情况似乎没有改变:即使应用程序链接仅包含通配符域,通用链接仍然无法正常工作,即使文档中建议通用也是如此。

© www.soinside.com 2019 - 2024. All rights reserved.