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 Approval
是unspecified
。
在多次重新安装并重新引导后通用链接正常工作时,我还尝试导出sysdiagnose。我的应用确实为Patterns
和Site/Fmwk Approval approved
有人在iOS 13上遇到类似问题吗? 任何帮助都将受到高度赞赏
答案 0 :(得分:9)
经过大量测试,我发现以下是适用于iOS12和iOS13的格式。 iOS12绝对要求每个details
字典条目都包含appID
和paths
参数才能正常工作。另一方面,iOS13期望第一个条目同时包含appIDs
和components
。这意味着第一个条目绝对需要包含所有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开发者论坛。
它解决了我的问题,很好