21

Universal Link 在 iOS 12 上运行良好,但我昨天更新到 iOS 13.1 时遇到了问题。应该在点击时打开应用程序的 URL 只是在浏览器中打开。iOS 13 上的一些用户报告了同样的事情。

同样,我在 iOS 12.4 上从未遇到过这个问题

我相信 AASA 文件没有正确下载。Open当我登陆我的一个网址时,我尝试从 Safari 顶部显示的横幅上点击。这没有帮助。

有时它在几次重新安装和重新启动后运行良好,但当您再次重新安装时它停止工作。

我发现这篇博客文章https://ios13.dev/universal-links-debugging-on-ios-13-cjwsux93w001p6ws1swtstmzc 描述了查看日志。

我导出了 sysdiagnose,我的 swcutil_show.txt 为我的应用程序显示了这个

Service:              applinks
App ID:               (my app ID)
App Version:          102
Domain:               (app.myurl.com)
User Approval:        unspecified
Site/Fmwk Approval:   unspecified
Flags:                
Last Checked:         2019-09-26 00:48:24 +0000
Next Check:           2019-09-30 23:51:38 +0000

而其他应用看起来像这样

Service:              applinks
App ID:               ZL6BUSYGB3.com.apple.news
App Version:          2300.5
Domain:               news.apple.com
Patterns:             {"/":"*"}
User Approval:        unspecified
Site/Fmwk Approval:   approved
Flags:                systemApplication
Last Checked:         2019-09-25 18:45:50 +0000
Next Check:           2019-09-30 17:49:04 +0000

由于某种原因,它缺少Patterns(来自 AASA)并且Site/Fmwk Approvalunspecified.

在多次重新安装和重新启动后,当通用链接正常工作时,我还尝试导出 sysdiagnose。我的应用确实有一些Patterns用途Site/Fmwk Approval approved

有没有人在 iOS 13 上遇到过类似的问题?非常感谢任何帮助

4

5 回答 5

21

经过大量测试,我发现以下格式适用于 iOS12 和 iOS13。iOS12,绝对要求每个details字典条目都包含appIDpaths参数才能正常工作。另一方面,iOS13 期望第一个条目同时包含appIDscomponents。这意味着第一个条目绝对需要包含所有 4 个参数,以支持自动填充(带有保存密码提示)和通用链接的两个平台。

具有讽刺意味的是,这种格式没有通过 Apple App Search API 验证工具,但它确实适用于 Branch one……FTS!另请注意,在不同的 VC 上使用您的用户名和密码 UITextField 不起作用(您不会收到保存密码提示)。我必须在我们的密码屏幕上添加一个“假”用户名 UITextField,以便它被操作系统拾取并且不要隐藏它,也不要将其宽度或高度设为 0px(所以基本上让它的大小为 1x1px,带有清晰的文本和背景以及用您以前 VC 的用户名填写它)。

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appIDs": [ "ABCDE12345.com.domain.app", "ABCDE12345.com.domain.app2" ],
        "appID": "ABCDE12345.com.domain.app",
        "components": [
          {
            "/": "/documentationsucksforios13",
            "comment": "This documentation is awful"
          }
        ],
        "paths": [ "/documentationsucksforios12" ]
      },
      {
        "appID": "ABCDE12345.com.domain.app2",
        "paths": [ "/validationtoolsdontwork" ]
      }
    ]
  },
  "webcredentials": {
    "apps": [ "ABCDE12345.com.domain.app" ]
  }
}
于 2020-04-15T15:38:40.563 回答
4

对于 ios13 来说,apple-site-app-association 似乎是一种新格式

{
  "applinks": {
      "details": [
           {
             "appIDs": [ "ABCDE12345.com.example.app", "ABCDE12345.com.example.app2" ],
             "components": [
               {
                  "#": "no_universal_links",
                  "exclude": true,
                  "comment": "Matches any URL whose fragment equals no_universal_links and instructs the system not to open it as a universal link"
               },
               {
                  "/": "/buy/*",
                  "comment": "Matches any URL whose path starts with /buy/"
               },
               {
                  "/": "/help/website/*",
                  "exclude": true,
                  "comment": "Matches any URL whose path starts with /help/website/ and instructs the system not to open it as a universal link"
               }
               {
                  "/": "/help/*",
                  "?": { "articleNumber": "????" },
                  "comment": "Matches any URL whose path starts with /help/ and which has a query item with name 'articleNumber' and a value of exactly 4 characters"
               }
             ]
           }
       ]
   },
   "webcredentials": {
      "apps": [ "ABCDE12345.com.example.app" ]
   }
}
于 2020-02-27T14:42:52.787 回答
0

我只在 iOS 13 上遇到了同样的问题,结果发现自从 iOS 13 以来,appID 条目现在区分大小写。我的应用程序包标识符和 AASA 文件的 appID 中的条目仅在大小写中不匹配。例子:

捆绑包 ID:TEAMID.com.company.EXAMPLE AASA 条目:

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "TEAMID.com.company.example",
        "paths": [ "*" ]
      }...

需要修复 AASA 文件中的 appID,我的问题就消失了。

于 2019-12-11T16:00:08.200 回答
0

我们遇到了类似的问题。升级到 iOS 13.1.2 后,它现在似乎可以正常工作了。所以苹果很可能最终解决了这个错误。

于 2019-09-30T02:21:01.360 回答
-2

尝试打开设置 > Safari > 请求桌面网站 > 所有网站 > 关闭。

这个问题在 iPad 上更常见,因为在大屏幕而不是小屏幕上显示桌面网站更有意义。

来自苹果开发者论坛。

解决了我的问题,太好了

于 2020-02-25T03:27:49.960 回答