The apple-app-site-association
文件需要可以通过访问HTTPS
,没有任何重定向,位于https://stg1.example.com/apple-app-site-association.
该文件如下所示:
{
"applinks": {
"apps": [ ],
"details": [
{
"appID": "{app_prefix}.{app_identifier}",
"paths": [ "/path/to/content", "/path/to/other/*", "NOT /path/to/exclude" ]
},
{
"appID": "TeamID.BundleID2",
"paths": [ "*" ]
}
]
}
}
演示文件在example https://github.com/vineetchoudhary/iOS-Universal-Links/tree/gh-pages
{
"applinks": {
"apps": [],
"details": [
{
"appID": "M8HBL5W4VV.com.Universal-Links",
"paths": [ "/iOS-Universal-Links/*"]
}
]
}
}
NOTE - 不要追加.json
to the apple-app-site-association
文件名。
按键如下:
apps
:应该有一个空数组作为其值,并且它必须存在。这就是苹果想要的。
details
:是一组字典,每个字典对应网站支持的每个 iOS 应用程序。每个字典都包含有关应用程序、团队和捆绑包 ID 的信息。
有 3 种定义路径的方法:
Static
:整个支持的路径被硬编码以识别特定链接,例如/静态/条款
Wildcards
: A * 可用于匹配动态路径,例如/books/* 可以匹配任何作者页面的路径。 ?在特定路径组件内,例如书/1?可用于匹配任何ID以1开头的书籍。
Exclusions
:在路径前面添加 NOT 会排除该路径的匹配。
数组中提及路径的顺序很重要。较早的指数具有更高的优先级。一旦路径匹配,评估就会停止,并忽略其他路径。每个路径都区分大小写。
支持多个域
应用程序中支持的每个域都需要提供自己的 apple-app-site-association 文件。如果每个域提供的内容不同,那么文件的内容也会更改以支持各自的路径。否则,可以使用相同的文件,但需要在每个支持的域中都可以访问它。
使用 Apple 应用程序搜索验证工具验证您的服务器
测试您的网页是否支持 iOS 9 搜索 API。输入 URL,Applebot 将抓取您的网页并显示如何优化以获得最佳结果https://search.developer.apple.com/appsearch-validation-tool/ https://search.developer.apple.com/appsearch-validation-tool/
网站代码
网站代码可以在 gh-pages 分支上找到https://github.com/vineetchoudhary/iOS-Universal-Links/tree/gh-pages https://github.com/vineetchoudhary/iOS-Universal-Links/tree/gh-pages
签署应用程序站点关联文件(对于不HTTPS
服务器的)
Note: 如果您的服务器使用HTTPS
提供内容并跳转至应用程序设置指南。
如果您的应用程序面向 iOS 9 并且您的服务器使用HTTPS
要提供内容,您不需要签署文件。如果没有(例如,当在 iOS 8 上支持 Handoff 时),则必须使用SSL
来自公认的证书颁发机构的证书。
Note:这不是 Apple 提供的用于将您的应用程序提交到 App Store 的证书。它应该由第三方提供,建议使用与您的证书相同的证书HTTPS
服务器(尽管这不是必需的)。
要对文件进行签名,请首先创建并保存其简单的 .txt 版本。接下来,在终端中运行以下命令:
cat <unsigned_file>.txt | openssl smime -sign -inkey example.com.key -signer example.com.pem -certfile intermediate.pem -noattr -nodetach -outform DER > apple-app-site-association
这将在当前目录中输出签名文件。这example.com.key
, example.com.pem
, and intermediate.pem
是您的认证机构向您提供的文件。
Note:如果文件未签名,它应该有一个Content-Type
of application/json
。否则,应该是application/pkcs7-mime
.
在这里查看我的完整详细答案
如何在iOS应用程序中支持Universal Links并为其设置服务器? https://stackoverflow.com/questions/35609667/how-to-support-universal-links-in-ios-app-and-setup-server-for-it