ios Universal Link 设置教程

打印 上一主题 下一主题

主题 758|帖子 758|积分 2274

Univeral Link的设置有3方面:Apple Developer网站设置、XCode设置、服务器资源设置(apple-app-site-association文件创建和存放)
起首说下我们的需求:支持一个域名下多个APP(目前是两个)的universal Link 跳转
Universal Link访问地址为:
(1)steel项目:https://chat.vol.com/steel/
(2) companychat项目: https://chat.vol.com/companychat/
一、Apple Developer网站设置

项目的App ID 必要开通Associated Domains。
(1)登录Apple Developer网站 (Sign In - Apple),点开Identifiers一栏,找到我们项目的App ID。点击这个APP ID,进入APP ID设置页面。

(2)在APP ID的设置页面,勾选Associated Domains。(如果在创建设置文件Profiles之后再勾选的Associated Domains,必要重新创建一下设置文件Profiles,然后下载最新的改APP ID的设置文件Profiles,重新安装上设置文件Profiles)。

二、服务器资源设置(apple-app-site-association文件创建和存放)

【原理】:在第一次安装APP的时间,手机的iOS系统会去指定的路径(这个路径是背面后端开发职员给的)下载apple-app-site-association文件。通过这个文件,iOS系统就会知道哪些URL是Universal Links,哪些不是Universal Links。从而我们指定的路径可以发生跳转。这个apple-app-site-association文件必要开发者去创建和放到一个苹果可以访问的服务器上。这个过程在XCode调试的时间也会发生。
1、apple-app-site-association文件创建
新建一个名字为apple-app-site-association的纯文本文件(Json格式),不要有任何后缀,文件内容为
   {
“applinks”: {
“apps”: [],
“details”: [
{
“appID”: “团队ID.软件BundleID/APP ID”,
“paths”: [“限制的路径节点名,没有限制就填*”]
}
]
}
}
  述填写内容,主要是appID和paths的填写,其他不消理会。
一组{“appID”:“XXX”, “paths”:“[xxx]”}对应一个APP。有多少个APP,就写多少组。我们的需求是一个域名下支持有两个APP使用Universal Link。所以我这里写了两组。
(1)填写appID
appID最正确的填写方式,就是XCode运行后,找到这个包,然后找到这个包下的设置文件embedded.mobileprovision, 在这个文件中的application-identifier是什么,APP ID就填写什么。
步调:
1、先运行一下项目。
2、找到编译后的目录。有两种方法:直接访问/通过XCode进入
(1)直接访问
编译后的文件路径:/Users/用户名/Library/Developer/Xcode/DerivedData/工程名-sdsdfsfdsfdsdfsf/Build/Products,文件下面有XXX-iphoneos,XXXX-iphonesimulator样式的文件夹。选择符合我们运行设备和版本的文件夹,点击进入。

(2)可以通过Xcode直接进入:
Xcode -> Preferences -> Locations
单击Derived Data 箭头即可进入编译产生的目录文件夹。然后在里面找到包含有我们的工程名的文件夹(文件名类似:“工程名-geykbzytgtgsegcrodkvxvfktiow”),点击进入。

进入Build,进入Products,然后根据运行的是手机照旧模拟器,点击对应的文件夹,进入。

3、进入app 包,找到embedded.mobileprovision 文件
找到app包,右键点击【显示包内容】

在app包里找到embedded.mobileprovision 文件,就能在右侧预览往下活动看到application-identifier。 application-identifier显示的内容就是apple-app-site-association 里的appID要填写的内容。

(2)填写paths
如果是一个服务器对应一个APP跳转,那么这里其实填写一个 “”就可以了。如果一个服务器支持多个APP跳转,则必要用差别的专用路径节点(填写“/节点/”)去相互屏蔽。比如地址https://chat.vol.com/AHost/XXX(paths填写"/AHost/“) 只能用于A应用的跳转;地址https://chat.vol.com/BHost/XXX(paths填写”/BHost/")只能用于B应用的跳转。
举个例子,因为我们需求是支持一个域名下多个APP(目前是两个)的universal Link 跳转
Universal Link访问地址为:
(1)steel项目:https://chat.vol.com/steel/
(2) companychat项目: https://chat.vol.com/companychat/
所以,下面是我用的文件(大概就如许)这两个APP都是在同一个开发者账号下,所以从embedded.mobileprovision, 在这个文件中的application-identifier拷贝到的appID里面的team ID都是同一个
   {
“applinks”: {
“apps”: [],
“details”: [
{
“appID”: “CIKJHYGBHT.com.volcano.VOLSteelChat”,
“paths”: [“/steel/“]
},
{
“appID”: “CIKJHYGBHT.com.volcano.VOLCompanyChat”,
“paths”: [”/companychat/
”]
}
]
}
}
  2、apple-app-site-association文件的存放
这个文件创建好之后,交给后端职员。让他们把这个文件放到指定的url的根目录下(URL不一定要指定,可以后端职员给啥我们就用啥也行。这个URL在设置XCode会用到)。这个根目录下除了放这个文件不要放其他东西。我们的URL是https://chat.vol.com/。
【验证】:验证后端是否正确放置的方法,这是欣赏器输入这个地址,会直接下载apple-app-site-association文件。如果没有下载到这个软件,阐明服务器设置不对。
【注意1】:我这里下载下来的apple-app-site-association文件名字不是“apple-app-site-association”,但是这没有影响。只要放到服务器的名字是apple-app-site-association就行。


【注意2】:对于paths有填写专用路径节点的环境(比如我这里写的【“paths”: [“/companychat/*”]】), 服务器不消在这个路径下添加真实的文件访问路径!访问applinks这个域名网址的时间,找不到的话不要重定向!!访问applinks网址的时间,找不到的话不要写一个专门的空白页!

三、XCode设置

XCode 的设置下图都同一给出来了。下面逐步说一下。

1、点击Signing & Capabilities一栏
2、一定要点击这个All。因为这里的一些设置会区分Debug 版和Release版。粗心一点的,就会在背面混淆了是Debug 照旧Release。
3、(1)取消掉这个Automatically manage siging(自动签名)的勾选(取消勾选)。
(2)因为我们使用的手动签名,所以在这里要选择到能用的Proivsioning Profile。选择了之后运行看是否报错。报错的话再去重新去 Apple Developer网站 (Sign In - Apple)生成一个正确的下载下来装上。
4、设置Associated Domains的applinks,格式为:“applinks:xxx”。这里的xxx为一个域名,没有“https://”前缀,也没有“/”后缀。
在第二步服务器资源设置(apple-app-site-association文件创建和存放)的2、apple-app-site-association文件的存放的步调里,我们已经拿到了一个URL。将这个URL填入。
我们的服务器地址为【https://chat.vol.com/】,所以这里填写的是:【applinks:chat.vol.com】
这里有一个要注意的地方:
一般来说,新设置了applinks:的话,工程主目录会出现一个APPNAME.entitlements文件,里面有我们刚设置的applinks。设置完applinks后我们必要去检查一下,这个文件有没有存在。如果设置了applinks:但是Xcode上没有这个文件的话,前往Finder目录下看看有没有(一般来说都会即时生成一个在文件目录下)。
【非常的极端环境】:如果XCode和Finder下都没有,那就试试手动创建一个——新建里没看到这个文件类型,试试拷贝别人的.entitlements文件改改看能不能用,最后填写一下applinks。===>这个方法没碰到过没试过= 。=

四、查验的时间到了
上面的步调都做完,检查完之后。正常来说,universal link就是设置好了可以测试使用了。
测试方法:
1、在通讯录输入完整地址: https://+applinks设置的域名+apple-app-site-association里的paths
在通讯录点击这个地址,看是否能发生跳转,跳转到手机已经安装上的APP

2、在1、中的地址拷贝。在欣赏器输入并前往,页面会出现一个下载该APP的地区。(也有可能会出现一个error页面,但是往下滑动一下页面,那个下载APP的地区就出来了)


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

花瓣小跑

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表