Skip to main content

如何快速设置 Universal Links(通用链接)

前言

从零开始研究 Unity to iOS 项目接入第三方登录,顺便记录 iOS 开发中常遇到的问题,而本文主要围绕如何快速设置 Universal Links(通用链接)。

什么是 Universal Links(通用链接)

Universal Links(通用链接)是 iOS 9.0 推出的一种应用跳转方案,允许用户通过 https 链接来做应用间无缝跳转切换。

开发者账号设置

登录开发者账号,并在对应 AppID 下勾选开启 Associate Domain 功能。

编写 apple-app-site-association 文件

根据官方文档 Example 去编写对应的 apple-app-site-association 文件。

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "teamID.bundleID",
                "paths": ["*"]
            }
        ]
    }
}

绑定域名并部署到线上 kubernetes 环境

通过 Nginx 反代路径,再通过云计算厂商的 Load balancer 进行绑定域名访问。

server {
    listen 80;
    server_name your domain name;

    add_header Content-Security-Policy upgrade-insecure-requests;
    location / {
        root   /usr/share/nginx/html;
        index  index.html;

    location /apple-app-site-association {
        default_type application/json;
    }

    # for other page
    # location /path to other page {
    #     default_type application/json;
    #     alias /usr/share/nginx/html/apple-app-site-association
    # }
}

Dockerfile

FROM nginx:alpine
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
COPY apple-app-site-association /usr/share/nginx/html

部署完 Universal Links 到线上后,可以通过请求 Apple CDN 来验证能否正确返回 apple-app-site-association 内容。(网址会经常抽风

Headers: Host=app-site-association.cdn-apple.com
GET https://app-site-association.cdn-apple.com/a/v1/你的网址

安装软件然后通过访问包含 Universal Links 的网页,在 Safari 下拉查看是否显示 App 信息

Xcode

最后在 Xcode 中打开项目,进入到对应 Target 并在签名选项中设置 Associated Domains(Universal Links)。

Reference