Universal Link在iOS 13上无法正常工作(未下载AASA)

时间:2019-09-26 17:03:48

标签: ios ios-universal-links apple-app-site-associate

Universal Link在iOS 12上运行正常,但是昨天我更新到iOS 13.1时遇到了问题。轻按一下即可打开应用程序的URL只是在浏览器中打开。 iOS 13上的一些用户报告了同样的情况。

再次,我在iOS 12.4上从未遇到过此问题

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

有时,在几次重新安装并重新启动后,它仍然可以正常工作,但是当您再次重新安装时,它会停止工作。

我发现了此博客文章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。我的应用确实为PatternsSite/Fmwk Approval approved

有人在iOS 13上遇到类似问题吗? 任何帮助都将受到高度赞赏

5 个答案:

答案 0 :(得分:9)

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

具有讽刺意味的是,这种格式没有通过Apple App Search API验证工具,但适用于分支机构之一……FTS!另请注意,将用户名和密码UITextField放在不同的VC上不起作用(您将不会看到Save Password提示)。我必须在密码屏幕上添加一个“假”用户名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" ]
  }
}

答案 1 :(得分:3)

对于ios13来说,苹果站点应用程序关联似乎是new format

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

答案 2 :(得分:0)

我们遇到了类似的问题。升级到iOS 13.1.2后,它现在似乎可以正常工作。因此,苹果很可能已经解决了该错误。

答案 3 :(得分: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,我的问题就没了。

答案 4 :(得分:0)

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

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

来自Apple开发者论坛。

它解决了我的问题,很好