如何在iOS应用程序服务器中上传苹果应用程序站点关联的通用链接文件?

如何在iOS应用程序服务器中上传苹果应用程序站点关联的通用链接文件?,ios,ios9,ios-universal-links,Ios,Ios9,Ios Universal Links,在服务器中上载苹果应用程序站点关联文件的过程是什么。stg1.example.com是一个需要进行通用链接的网站,文件应该上传到它的根路径中。如何在iOS中为通用链接上传服务。如何在服务器中上载json格式的文件 需要通过HTTPS访问apple应用程序站点关联文件,而无需任何重定向https://stg1.example.com/apple-app-site-association. 该文件如下所示: { "applinks": { "apps": [ ], "details

在服务器中上载苹果应用程序站点关联文件的过程是什么。stg1.example.com是一个需要进行通用链接的网站,文件应该上传到它的根路径中。如何在iOS中为通用链接上传服务。如何在服务器中上载json格式的文件

需要通过
HTTPS
访问
apple应用程序站点关联
文件,而无需任何重定向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": [ "*" ]
        }
    ]
}
}
中的演示文件

注意-不要将
.json
附加到
苹果应用程序站点关联
文件名中

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

定义路径有3种方法:
Static
:对整个受支持路径进行硬编码,以识别特定链接,例如/Static/terms
通配符
:A*可用于匹配动态路径,例如/books/*可匹配任何作者页面的路径?内部特定路径组件,例如书籍/1?可用于匹配ID以1开头的任何书籍。
排除
:在路径前面加上NOT,不排除该路径被匹配

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

支持多个域 应用程序中支持的每个域都需要提供自己的apple应用程序站点关联文件。如果每个域提供的内容不同,则文件的内容也将更改以支持各自的路径。否则,可以使用相同的文件,但它需要在每个受支持的域中都可以访问

使用苹果应用程序搜索验证工具验证您的服务器
为iOS 9搜索API测试您的网页。输入URL,Applebot将抓取您的网页,并显示如何优化以获得最佳结果

网站代码 网站代码可在分支上找到


签署应用程序站点关联文件(对于非
HTTPS
服务器) 注意:如果您的服务器使用
HTTPS
提供内容并跳转到应用程序设置指南,则可以跳过此部分

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

注意:这不是苹果提供的向应用商店提交应用程序的证书。它应该由第三方提供,建议使用与
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
cat.txt | openssl smime-sign-inkey example.com.key-signer example.com.pem-certfile intermediate.pem-noattr-nodetach-outform DER>apple应用程序站点关联
这将在当前目录中输出签名文件。
example.com.key
example.com.pem
intermediate.pem
是您的认证机构向您提供的文件

注意:如果文件未签名,则其内容类型应为
application/json
。否则,它应该是
application/pkcs7 mime


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

注意:根据互联网,文件的内容类型应为
application/pkcs7 mime
。如何为apple应用程序站点关联文件指定内容类型?@151291您不需要为其指定任何内容类型。只需使用名称
苹果应用程序站点关联将其保存
。而
苹果应用程序站点关联
文件需要通过
HTTPS
访问,无需任何重定向,位于
https://stg1.example.com/apple-app-site-association
。我的文件(
apple app site association
)未签名,可以吗?可以。但请确保苹果应用程序站点关联文件需要通过HTTPS访问
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