在OAuth之后,通用链接偶尔无法重定向到应用

时间:2017-07-21 09:56:00

标签: ios iphone ios-universal-links

我们的应用登录流程涉及将用户重定向到另一个应用以登录并进行身份验证,然后重定向回我们的应用以完成登录过程。

从验证应用程序重定向回我们的应用程序是通过调用通用链接实现的,这应该始终将用户重定向回我们的应用程序,但是对于少数几个用户,它似乎是打开safari并将它们重定向到我们网站上的一个页面。

我们在我们的网站上设置了一个页面来处理这种可能性,页面上的说明告诉用户点击“在应用程序中打开”。链接在页面顶部(ios在所有通用链接的网页上插入的横幅),以打开我们的应用程序并完成注册过程。但是对于其中一些用户,此横幅不会出现!好像根本没有建立通用链接。这意味着用户无法完成注册过程并进入我们的应用程序。

我已经在branch.io验证器(https://branch.io/resources/aasa-validator/#resultsbox)检查了我们的通用链接,结果显示一切都有效。

我还使用Apple' App Search API验证工具检查了该链接。它在应用程序'的链接中返回了以下消息:部分:

  

错误没有具有域权利的应用   用于验证深层链接双重身份验证的授权数据来自您当前发布的应用版本。此数据可能需要48小时才能更新。

现在这似乎意味着我们需要等待最近部署的48小时才能使我们的通用链接变得活跃,但这个链接适用于大多数人(包括我们自己每次测试它的事实) )意味着事实并非如此。

我们最初只在我们的网络服务器的根目录上传了我们的apple-app-site-association文件,但是我现在也将它上传到.well-known /只是为了安全起见,尽管问题仍然存在似乎是坚持不懈。

以下是我们的apple-app-site-association文件的匿名版本:

{
"applinks": {
    "apps": [],
    "details": [
        {
            "appID": "1F5A4778Y4.com.Tested.Step",
            "paths": [ "*", "NOT /privacypolicy/", "NOT /faq/", "NOT /terms/"]
        }
    ]
}

我保留了上述文件中的大小写(com.Tested.Step在我们的实际apple-app-site-association文件中大写)我还没有看到任何其他包含的应用程序ID像这样在他们的反向网址部分大写,这可能导致问题吗?

到目前为止,我们已经设法从其中一些用户那里获得了一些信息,并且应用版本似乎没有一致性(对于iOS 10.x和iOS 11 beta的用户来说似乎同样如此)并且问题是删除然后重新安装应用程序的用户无法解决。

因此,根据上述信息,为什么有些用户没有通过通用链接重定向到应用程序?此外,还没有看到在应用程序中打开的safari顶部的横幅'?这可能与App Search API验证工具返回的错误有关吗?

提前致谢,如果您在任何问题上需要任何其他信息/说明,请与我们联系。

更新: 我刚刚发现有问题的用户似乎没有在我们网站上调用apple-app-site-association文件,即使在删除应用程序然后重新安装之后也是如此。

1 个答案:

答案 0 :(得分:0)

正如您的编辑所示,听起来这些用户在初始安装时没有成功抓取apple-app-site-association文件。

" App Search API验证工具"是"通用链接验证工具" (Apple并不存在),因此此工具的结果与Universal Links是否有效无关。正式地,它正在将您网站的apple-app-site-association文件与App Store上的应用程序列表进行比较,因此,如果您公开发布的应用版本尚未拥有Universal Links权利,那么会导致这些错误。但是,Universal Links仍然可以在本地构建中正常工作。 App Store中的应用程序版本需要实施通用链接才能测试您要执行的操作。

您的服务器可能无法正确回复apple-app-site-association文件的所有请求,或者用户端可能存在网络问题。您可能想要深入了解日志,或者尝试大规模测试它以查看事情失败的地方。

或者,请查看托管的深层链接服务,例如Branch.io(完全披露:我在分支机构团队中)或Firebase动态链接,以免您承担责任。