Ios 苹果应用程序站点关联文件赢得';t下载

Ios 苹果应用程序站点关联文件赢得';t下载,ios,ios-universal-links,Ios,Ios Universal Links,在xcode中添加关联域后,我将我的apple应用程序站点关联文件上载到HTTPS web服务器的根目录。我遵循apple universal link教程 [SWC]###拒绝重定向到“”(原始“”) 我已经检查了我的设备日志,我看到了如上所述的错误,我得到了一个非常类似的错误: [SWC] ### Denying redirect to 'https://www.<domain>/apple-app-site-association' (original 'https://<

在xcode中添加关联域后,我将我的apple应用程序站点关联文件上载到HTTPS web服务器的根目录。我遵循apple universal link教程

[SWC]###拒绝重定向到“”(原始“”)


我已经检查了我的设备日志,我看到了如上所述的错误,我得到了一个非常类似的错误:

[SWC] ### Denying redirect to 'https://www.<domain>/apple-app-site-association' (original 'https://<domain>/apple-app-site-association')
[SWC]###拒绝重定向到'https://www./apple-app-site-association"(原文)https:///apple-app-site-association')
引用苹果的文档:

  • 文件必须托管在具有有效证书的https://站点上(例如,Safari在查看站点时不得发出证书警告)

  • 该文件不得使用任何重定向

  • 该文件必须具有MIME类型application/pkcs7 MIME

我的猜测是,对于我们两人来说,文件是可以获得的,但它是在被重定向之后。即使在同一个域下,操作系统也不会遵循该重定向;而且,很明显,日志上也有抱怨


运行
curl-ihttps:///apple-app-site-association
您可能会看到HTTP/1.1 301被永久移动,位置为:https://www./apple-app-site-association(或类似)。

最近在尝试实现通用链接功能时遇到了同样的问题。fbeeper给出了一个很好的回答,帮助我确认确实发生了重定向

但是,它没有帮助我决定如何解决重定向问题。因此,对于像我这样正在使用基于Ruby on Rails的后端的人来说,下面是一个如何以满足苹果所有要求的方式为讨厌的苹果应用程序站点关联文件提供服务的示例:

  • 将您的
    apple\u app\u site\u关联
    json文件放入
    public
    文件夹中
  • config/routes.rb
    文件中,添加一行,如:
get'/apple-app-site-association'=>home\apple\u-app\u-site\u-association'

  • 然后在相关控制器文件(本例中为home_控制器)中定义您的方法:

    def苹果应用程序站点协会
    association_json=File.read(Rails.public_path+“apple应用程序站点关联”)
    render:json=>association\u json,:content\u type=>application/pkcs7 mime
    结束
    


它仅在https服务器上工作

步骤:

1) 在rails应用程序的公共目录下创建一个类似于苹果应用程序站点关联的文件,没有任何扩展名,包含以下内容

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "<TEAM_DEVELOPER_ID>.<BUNDLE_IDENTIFIER>",
                "paths": [ "*" ]
            }
        ]
    }
}
3) pages\u controller.rb

def apple_app_site_association 
   association_json = File.read(Rails.public_path + "apple_app_site_association")
   render :json => association_json, :content_type => "application/json"
end
例如,您检查

要进行测试,您可以在heroku上创建应用程序

def apple_app_site_association 
   association_json = File.read(Rails.public_path + "apple_app_site_association")
   render :json => association_json, :content_type => "application/json"
end