我是iOS开发方面的新手。我正在用ASP.net应用程序在iOS应用程序中实现通用链接。
I have define my associate domain in capabilities under Associated Domains: applinks:www.abcd.com And also configure in App Ids on Apple Developer Account. I think app side work is all set .但我认为苹果应用网站关联文件有问题。
我已经在一个简单的文本文件中编写了json,如下所示
{
"applinks": {
"apps": [],
"details": [
{
"appID": "8T8932TY.com.AppName”,
"paths": ["*"]
}
]
}
}现在我被困在这里了。我的应用程序针对的是iOS 9和更高版本。我搞不懂这个文件的扩展名是什么,它的名字是apple-app-site-association。是否需要使用新证书登录。以及如何上传到服务器端。
求求你们帮帮我。我一直在寻找这个问题,但没有得到满意的答案。
谢谢
发布于 2017-02-21 23:19:42
如果用AppID/AppName的实际值替换,您的示例JSON看起来很好。你可能想具体说明你处理的路由,但这取决于你--只尝试处理你有可能处理的路由是更好的用户体验,而不是为你的域中的每个链接打开你的应用程序,如果事实证明这不是真的,就再次将用户踢出Safari。
apple-app-site-association文件不应具有任何文件扩展名,并且应从站点的根目录https://example.com/apple-app-site-association和/或从https://example.com/.well-known/apple-app-site-association提供。
你说你正在支持iOS 9和更高版本--在iOS 9.3中改变了检查.知名路径,这是最先检查的,所以如果你想支持低于该操作系统的版本,你最好把文件放在这两个位置。详情请参见this answer。
同样重要的是,文件使用正确的MIME类型提供服务,对于通用链接,它可以作为application/json提供,并且不需要对其进行签名/加密。如果您不熟悉web服务器上的配置,使用正确的MIME类型可能有点麻烦,因为通常服务器会根据文件扩展名确定MIME类型。你不能给它一个扩展名,因为iOS不会用扩展名检查url,也不允许(IIRC)重定向,所以你也不能通过这样做来伪造它。
这是您试图完成的任务的摘要,但如何实现取决于您所使用的web服务器。对于可能是IIS的ASP应用程序,在这种情况下,this question and its answers可以帮助您正确配置您的web服务器。如何将文件上传到该服务器的根目录的细节也将在很大程度上取决于您是如何配置它的。
发布于 2017-02-21 23:22:43
此apple-app-site-association文件没有扩展名。这只是一个普通文件。您必须将其托管在域名的顶层,这意味着文件位置将为https://www.abcd.com/apple-app-site-association。托管后,您可以使用此链接https://branch.io/resources/aasa-validator/进行检查/验证
如需详细信息,请访问:https://blog.branch.io/how-to-setup-universal-links-to-deep-link-on-apple-ios-9/
发布于 2021-11-16 12:35:08
这对我很有效。
wwwroot创建了一个空的网站核心项目,并将其部署到Azure门户中相应的Azure web应用程序service.
a)由于iOS总是调用未提及文件扩展名(https://webapp-sftpint-employeeapp-dev.azurewebsites.net/apple-app-site-association)的URL,因此我们需要强制要求这些URL具有文件扩展名。因此,在web.config中添加了规则
b)由于对于静态文件"apple-app-site-association.json“返回的内容,响应头应该有"application/json”,我们添加了“mimeType /json”的显式提及。
因此,web.config文件看起来有点像这样。(只需额外添加'rewrite‘和'staticContent’块)
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\yourproject.dll" stdoutLogEnabled="false" stdoutLogFile=\\?\%home%\LogFiles\stdout hostingModel="inprocess" />
<rewrite>
<rules>`enter code here`
<rule name="apple_json_file">
<match url="^apple-app-site-association" />
<action type="Rewrite" url=".well-known/apple-app-site-association.json" />
</rule>
</rules>
</rewrite>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
</location>
</configuration>https://stackoverflow.com/questions/42370867
复制相似问题