How to set correct content-type for apple-app-site-association file on Nginx/Rails

Ali H picture Ali H · Nov 21, 2016 · Viewed 12.1k times · Source

In order to set up universal links for an iOS app, I have created an apple-app-site-association file, and placed it in the /public directory of my Rails app.

I can curl it at the correct address, but it returns the wrong content type. Instead of application/json or application/pkcs7-mime it returns application/octet-stream, as you can see in the response here:

curl -i https://example.com/apple-app-site-association

HTTP/1.1 200 OK
Server: nginx/1.10.1
Content-Type: application/octet-stream
Content-Length: 245
Last-Modified: Mon, 21 Nov 2016 12:45:00 GMT
Strict-Transport-Security: max-age=31536000

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "APPPREFIX.com.mycompany.app",
        "paths": [
          "/home*"
        ]
      }
    ]
  }

I am attempting to specify a Content-Type in the nginx configuration:

/etc/nginx/sites/sites-available/sitename: 

server {
   ...
   location /apple-app-site-association {
      default_type application/pkcs7-mime;
   }
}

I have saved this change and restarted nginx. This doesn't make any difference to the response from curl. I've also tried location /public/apple-app-site-association {} and a few other variations, to no effect.

What is the correct way to set up nginx to deliver this file with the correct content type?

Answer

Pablo Cegarra picture Pablo Cegarra · Sep 27, 2018

Add in nginx:

location ~ /.well-known/apple-app-site-association {
         default_type application/pkcs7-mime;
 }