配置 Associated Domains

本文主要是讲解一下开启Associated Domains并实现通用链接universal link 的配置,以及对另外一篇文章 《QQ分享提示设备未授权(错误码:25105)》关于QQ、微信对应的universal link 的补充。

Associated Domains 主要作用就是由外部浏览器打开已安装的APP,实现引流等作用。 iOS 9.0 之前的实现深度链接是通过 URL Types 白名单来实现,白名单的方式存在弊端例如:与其它APP白名单重复了,导致无法正常跳转至所需的APP。

Associated Domains 、QQ 、微信 校验 universal link 的方式是共通—— 通过访问服务器域名的根目录或者.well-known子目录下配置 apple-app-site-association 的文件来实现的。 这点很重要,后续如果出现问题,基本就是检查一下是否开启配置,访问一下对应域名下的apple-app-site-association文件,基本就可确定问题所在。

下面先讲解一下关于 Associated Domains 配置(这部分基本就是百度一堆,这边算是一个小小的记录吧)。

Associated Domains 配置

配置Associated Domains需要进行以下步骤来实现:

  • 苹果开发者后台开启 Associated Domains 配置
  • Xcode 工程开启 Associated Domains 配置
  • 服务器端配置 apple-app-site-association 文件

1、苹果开发者后台

苹果开发者后台 中找到对应的APPID,开启配置,如下图:

苹果开发者后台开启 Associated Domains 配置

2、Xcode 工程

Xcode 工程的配置也没啥好说的,只需要关注一点 Domains 的填充内容是以applinks:域名 的格式即可,如图:

Xcode 工程配置 Associated Domains

3、apple-app-site-association文件

建议参考官方文档 Support Universal Links,emmm... 懒得看的话,继续看我写的:

创建一个文件命名 apple-app-site-association 不带任何后缀的文件,文件内容:

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "TeamId.com.xxx.xxx",
                "paths": [ "*","/wwdc/news/","/qq_conn/101577777/*"]
            },
            {
                "appID": "TeamId.com.xxx.xxx",
                "paths": [ "*","/wwdc/news/","/qq_conn/101566666/*"]
            }
        ]
    }
}

说明
appID:开发者团队ID与bundle id的组合
paths:用于关联或者不想关联的网站部分,值可以是一个字符串数组。如上文使用的* 代指整个网站;/wwdc/news/ 为指定特定的链接;/qq_conn/101566666/*附加 * 表示为网站的一部分后续可以增加其它内容。具体使用可以参考官方文档,根据自身所需来填写 paths的值。

完成 apple-app-site-association 文件的编辑后,将文件放置 服务器的根目录或.well-known子目录,该文件能够通过 HTTPS 访问即可,请使用一下路径进行访问:

根目录访问URL
https://<domain>/apple-app-site-association
.well-known 子目录访问URL
https://<domain>/.well-known/apple-app-site-association

<domain> 替换为对应的域名即可。

完成后可通过 苹果官方提供Universal Links校验 输入域名进行访问看是否成功,查询结果如图:

校验结果

这样算是完成配置了,如果同个域名下需要配置多个APP,建议使用子域名的形式来实现,将域名解析成对应每个项目的子域名,在每个子域名下都生成一份apple-app-site-association 文件,例如 aaa.baidu.com,配置xcode Associated Domains 的时候 domains 则输入 aaa.baidu.com即可,后续通过浏览器访问 aaa.baidu.com/xxx 即可出现提示打开APP。

注意:
浏览器上需要打开 APP 访问的 URL 不需要部署到服务器,如果apple-app-site-association文件的paths 配有通配符 * 的情况可以直接在域名后随意拼接字符也能检查出本地是否安装有APP从而提示打开APP。

全域命中 universal link 问题:
由于项目中碰到一下问题,深入探讨了一下关于 iOS Associated Domains 配置 universal link。问题复现如下:

  • 项目A:配置的QQ universal link 为 aaa1.com, 使用 QQ 授权返回APP的时候打开了项目C
  • 项目B:配置的微信 universal link 为 aaa1.com,使用微信授权返回APP的时候打开了项目C
  • 项目C:配置了Associated Domains,Xcode中填写的 Domains 为 aaa1.com

解决: 根据 universal link 的校验原理,针对这块做一些修改即可,例如配置子域名来实现项目隔离,或者是修改paths来实现。

注: Associated DomainsQQ、微信都是通过校验apple-app-site-association 文件来实现,但是QQ、微信Associated Domains多了个配置管理后台的universal link ,并且QQ、微信是通过管理后台配置的universal link 来校验自身,因此通过配置universal link避免全局命中。

结语

对接 QQ、微信授权神马的 都是cmd + c、cmd + v 配置universal link 看着提示梭哈完事,然后多项目深究一下 universal link 后跪了... emmm 写个简书记录一下。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容