iOS Universal link 配置

1、在苹果开发者平台配置你应用的Universal Links

开通Associated Domains

image

注意:重新设置之后,Profiles文件需要更新

2、.制作相关证书配置文件

image

然后通过Xcode更新mobileprovision文件,即更新上述保存的文件,Xcode->Perferances...->Account->AppIds->Team&role->Download Manual Profiles

image

3、 微信对Universal Links配置要求

a)Universal Links必须支持https
b)Universal Links配置的文件(apple-app-site-association文件)paths不能带query参数
c)微信使用Universal Links拉起第三方App时,会在Universal Links末尾拼接路径和参数,因此App配置(apple-app-site-association文件)的paths必须加上通配符

创建apple-app-site-association文件,json格式,文件不含后缀
终端创建:

touch  apple-app-site-association

appID 是由TeamId + . + BundleId组成。

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "TeamId.BundledId",
                "paths": [ "/app/*"]
            }
        ]
    }
}

那么 微信后台需要填写配置的通用连接Universal link 为https://www.test.com/app/
App中调用微信openSDK的+(BOOL)registerApp:(NSString *)appid universalLink:(NSString *)universalLink方法的通用链接参数也一定要带路径即https://www.test.com/app/,保持一致,单纯的域名就会导致二次降级启动。

apps后面的数组为空就好,主要内容配置在details里面
包含:appID和paths

这里着重讲一下paths:
path是设定你的app支持的路径列表,只有访问到域名下对应path的地址才会唤起APP。
其中可以使用通配符*或者/app/*
具体路径地址/app/home
还可以忽略某种规则NOT /help/website/*

如果要支持QQ分享配置如下

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "teamid.bundleid",
                "paths": [ "*","/qq_conn/appid/*" ]
            }
        ]
    }
}

微信支付和分享

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "teamid.bundleid",
                "paths": [ "*","/app/*" ]
            }
        ]
    }
}

1、apps:是限制只能在这几个app中使用, 基本是不填写,所以是空数组
2、appID :为teamId.bundle identifier形式,9JA89QQLNQ就是teamId,com.apple.wwdc是项目identifier。
登陆开发者中心,在Account -> Membership里面可以找到Team ID
3、details:数组中可以配置多个APP的信息,如果公司内有多个APP需要支持Universal link,则可以直接添加多个
4、paths:设定你的app支持的路径列表,只有这些指定路径的链接,才能被app所处理。*的写法代表了可识别域名下所有链接
5、/app/*是自己定义的路径;

/app/*是自己定义的路径;
/qq_conn/22222222/*需要根据QQ互联平台设置,22222222是QQ互联后台对应应用的APPID。
如果上传人员给你的访问路径是:
https://www.baidu.com/.well-known/apple-app-site-association
https://www.baidu.com/apple-app-site-association则:
微信开放平台的Universal Link填写是:https://www.baidu.com/app/
QQ互联平台的Universal Link填写是:https://www.baidu.com/qq_conn/22222222/

TeamId查找方法:

image

建议Universal links 配置path 例如/app/*,避免全域名

4、将apple-app-site-association文件上传至HTTPS服务器根目录或者.well-known这个子目录下。

使用https://test.com/apple-app-site-association或者https://test.com/.well-known/apple-app-site-association能够访问到(能够下载或者返回文件内容即可)

也可以使用苹果的验证网站https://search.developer.apple.com/appsearch-validation-tool/来验证文件是否能够被访问到。若应用未上线,可能出现如下结果:

image

Error no apps with domain entitlements 是因为还没有发布

5、下载安装配置的证书文件 并在xcode工程中做相关配置

image

注意点:在 Associated Domains 里面配置的 Universal Links 必须要以 applinks: 开头,后面写上域名,例如:applinks:www.test.com

6、在微信开放平台配置universal links

image

微信要求填写格式是https开头,"/"结尾, 所以填写https://test.com/app/

7、验证通用连接是否配置正确的方法:

1)将应用打包或者真机调试安装到手机上,json格式的文件是app第一次安装,它会从https://domain.com/apple-app-site-association下载这个文件。

2)需要测试该功能的时候,只需要在备忘录输入App能识别的链接https://www.test.com/testapp/,然后直接点击或是长按就可以了,直接点的效果是跳转到你的App,长按的效果是弹出的菜单中第二项是“在'XXX应用'中打开”,这也代表着成功。

3)如果未安装应用或者安装了应用由于网络的原因没有正确下载到apple-app-site-association文件则不会出现XXX应用中打开 ,这时候需要安装应用,切换网络重试。

备忘录中复制通用连接https://www.test.com/testapp/ 点击连接 可以正常直接打开APP
附图备忘录中长按可以看到:

image

Safari浏览器中输入通用连接后下拉应该能看到 APP中打开 点击点开按钮可以打开应用

image

系统只会在第一次安装/启动APP的时候去拉取Universal Links

备注:

https域名:https://www.test.cn
文件地址:https://www.test.cn/apple-app-site-association
https://www.test.cn/.well-known/apple-app-site-association
Universal Links:https://www.test.cn/app/
Xcode Domains:applinks:test.cn
Safari或者备忘录访问:https://www.test.cn/app/
微信:https://help.wechat.com/app

遇到疑难问题:

image

在对接微信支付的时候,这个问题纠结了我2天,一直以为自己配置的不对,咨询支付对接方,他们也说我的Universal link配置不对,可我已经吧Universal link配置看了好多遍了,没有问题哈。最终是由于微信开发者平台的,我们应用处于审核中,等审核通过就可以调用测试支付了。真是一个大写的尴尬😓😓😓😓

参考文章:

https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW1
https://www.jianshu.com/p/5aeb5f8e4976
https://blog.csdn.net/survivorsfyh/article/details/121859776
https://www.kancloud.cn/i281151/note/2321693
http://www.360doc.com/content/21/1221/08/65840031_1009637769.shtml
https://www.lbyxlz.com/universal-link-打开app前端部署采坑记/
https://www.jianshu.com/p/e2bbceca48b6
https://www.jianshu.com/p/f1a1e1833eec

作者:我是七月
链接:https://www.jianshu.com/p/a6197e0d2f1f

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

推荐阅读更多精彩内容