Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Setting up iOS Universal Links
@timbaas

This comment has been minimized.

Copy link

timbaas commented Aug 18, 2016

Great info, thanks for sharing! I'm not sure if this has changed after time of writing this but currently the file should be named apple-app-site-association instead of apple-app-association :)

@anhar

This comment has been minimized.

Copy link
Owner Author

anhar commented Jan 26, 2017

@timbaas You are totally right, it was a typo on my part 👍

@rupeshpatil761

This comment has been minimized.

Copy link

rupeshpatil761 commented Apr 13, 2017

Hello @anhar , I went through above document and did changes as mentioned. Even though I am able to validate my site. Please help me. I am using ngnix server. Thanks in Advance

@eXhausted

This comment has been minimized.

Copy link

eXhausted commented Apr 19, 2017

too good to be true

@jmarus

This comment has been minimized.

Copy link

jmarus commented Apr 24, 2017

Does the file have to be signed, even if it's being forced over https?

@vj-repo

This comment has been minimized.

Copy link

vj-repo commented May 20, 2017

Hi, Have you tried opening universal links with in the associated domains? I mean if you have only part of website is available for Mobile then you need to remove this "paths": [ "*" ].

So, when you are in the home page of "example.com" on safari app and if you navigate to "https://example.com/articles/some", it should open app. But for some reasons, it is navigating with in the safari.

It works from outside of associated domains but not from with in the associated domains. Is this how it should be or something wrong with my code?

Thanks in advance,
VJ

@dqlobo

This comment has been minimized.

Copy link

dqlobo commented Jun 6, 2017

@vj-repo: I think it's because of this clause in the documentation:

"When a user is browsing your website in Safari and they tap a universal link to a URL in the same domain as the current webpage, iOS respects the user’s most likely intent and opens the link in Safari. If the user taps a universal link to a URL in a different domain, iOS opens the link in your app."

@anhar

This comment has been minimized.

Copy link
Owner Author

anhar commented Jul 18, 2017

@jmarcus Yes the the apple-app-site-association must be signed with the webservers certificates.

@vj-repo Yes, that was an intentional way of showing how to use the wildcard character for all paths.
If you only want to support certain paths of your website you should remove the wildcard part from the example JSON.

@eusonlito

This comment has been minimized.

Copy link

eusonlito commented Aug 9, 2017

@jmarcus, depending the client iOS version https://developer.apple.com/documentation/security/shared_web_credentials/preparing_your_app_and_website_to_share

The apple-app-site-association file must meet the following requirements:

  • The file must be hosted on an https:// site with a valid certificate (for example, Safari must not issue a certificate warning when viewing the site).
  • The file must not use any redirects.
  • In iOS 9.3.1 and later, the file must be no larger than 128 KB (uncompressed), regardless of whether it is signed.
  • If your app runs in iOS 9 and later and you use HTTPS to serve the file, you can create a plain text file that uses the application/json MIME type and you don’t need to sign it.
  • If your app runs in iOS 8, the file must have the MIME type application/pkcs7-mime and it must be CMS signed by a valid TLS certificate.

File validator on server: https://branch.io/resources/aasa-validator

@cuongnv-ibl

This comment has been minimized.

Copy link

cuongnv-ibl commented Jun 14, 2018

How can we show popup Open App when user copy and then paste it that universal link on Safari iOS address bar?

@RareSloth

This comment has been minimized.

Copy link

RareSloth commented Aug 1, 2018

@prcongithub

This comment has been minimized.

Copy link

prcongithub commented Oct 15, 2018

I face this issue even after following the exact same steps.

Your file must be served with content type "application/pkcs7-mime"

I am using nginx

location /apple-app-site-association {
    root /data;
    access_log  /mnt/log/nginx/apple-file.access.log;
    access_log  /mnt/log/nginx/apple-file.error.log;
    default_type application/pkcs7-mime;
  }

I receive no requests on my server when I validate this using the validator tool

@aaronbalthaser

This comment has been minimized.

Copy link

aaronbalthaser commented Dec 24, 2018

@prcongithub

I face this issue even after following the exact same steps.

Your file must be served with content type "application/pkcs7-mime"

I am using nginx

location /apple-app-site-association {
    root /data;
    access_log  /mnt/log/nginx/apple-file.access.log;
    access_log  /mnt/log/nginx/apple-file.error.log;
    default_type application/pkcs7-mime;
  }

I receive no requests on my server when I validate this using the validator tool

Did you ever find a solution? I'm getting the same response from the test tool. I am using Godaddy hosting.

@newsplash24

This comment has been minimized.

Copy link

newsplash24 commented Oct 31, 2019

Thank you very much, i was struggling and this article helped me a lot, especially the server configuration part. Thank you again, god bless you :)

@angelorobo

This comment has been minimized.

Copy link

angelorobo commented Nov 19, 2019

Docs say to use application/json as the MIME type: https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html

Yes this is what I saw too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.