16

在服务器中上传apple-app-site-association文件的程序是什么?stg1.example.com 是需要进行通用链接的网站,文件应该上传到它的根路径。如何在iOS中使服务上传以进行通用链接。如何在服务器上传json格式的文件?

4

1 回答 1

34

apple-app-site-association文件需要通过https://stg1.example.com/apple-app-site-associationHTTPS访问,无需任何重定向。

该文件如下所示:

{
"applinks": {
    "apps": [ ],
    "details": [
        {
            "appID": "{app_prefix}.{app_identifier}",
            "paths": [ "/path/to/content", "/path/to/other/*", "NOT /path/to/exclude" ]
        },
        {
            "appID": "TeamID.BundleID2",
            "paths": [ "*" ]
        }
    ]
}
}

示例中的演示文件

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "M8HBL5W4VV.com.Universal-Links",
                "paths": [ "/iOS-Universal-Links/*"]
            }
        ]
    }
}

注意-不要附加.jsonapple-app-site-association文件名。

键如下:
apps : 应该有一个空数组作为它的值,并且它必须存在。这就是苹果想要的。
details: 是一个字典数组,用于网站支持的每个 iOS 应用程序。每个字典都包含有关应用程序、团队和捆绑包 ID 的信息。

定义路径有 3 种方式:
Static : 整个支持的路径被硬编码以识别特定链接,例如 /static/terms
Wildcards: * 可用于匹配动态路径,例如 /books/* 可以匹配任何作者页面的路径. ? 在特定路径组件内,例如书籍/1?可用于匹配 ID 以 1 开头的任何书籍。
Exclusions:在路径前添加 NOT 会排除匹配该路径。

数组中提及路径的顺序很重要。较早的指数具有更高的优先级。一旦路径匹配,评估就会停止,其他路径将被忽略。每个路径都区分大小写。

支持多个域

应用程序支持的每个域都需要提供其自己的 apple-app-site-association 文件。如果每个域服务的内容不同,那么文件的内容也会改变以支持各自的路径。否则,可以使用相同的文件,但需要在每个支持的域都可以访问它。

使用 Apple App 搜索验证工具验证您的服务器
针对 iOS 9 搜索 API 测试您的网页。输入 URL,Applebot 将抓取您的网页并显示如何优化以获得最佳结果 https://search.developer.apple.com/appsearch-validation-tool/

网站代码

网站代码可以在 https://github.com/vineetchoudhary/iOS-Universal-Links/tree/gh-pages上找到 gh-pages 分支


签署 App-Site-Association 文件(对于非HTTPS服务器)

注意如果您的服务器用于HTTPS提供内容并跳转到应用程序设置指南,您可以跳过此部分。

如果您的应用程序以 iOS 9 为目标并且您的服务器用于HTTPS提供内容,则您无需签署文件。如果不是(例如,在 iOS 8 上支持 Handoff 时),则必须使用SSL来自公认证书颁发机构的证书对其进行签名。

注意:这不是 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.pemintermediate.pem认证机构将提供给您的文件。

注意:如果文件没有签名,它应该有一个Content-Type. application/json否则,应该是application/pkcs7-mime


在这里查看我的完整详细答案

如何在 iOS App 中支持 Universal Links 并为其设置服务器?

于 2016-03-05T08:04:12.273 回答