此文章基于ios Universal Link 配置教程 + 踩坑记录_apple-app-site-association-CSDN博客,我不想重复写一些内容会复制粘贴一下原贴(原贴内容为红色字体),侵删。
由于Xcode大概已经做出了一些优化,可以简化一些原贴流程。
首先说下我们的需求:支持一个域名下多个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。
原贴必要登录Apple Developer网站举行相关配置并下载配置文件,如果已经有相关的Identifiers,其实可以直接在Xcode直接举行相关配置:
1、打开项目配置,点击左上角的+ Capability
2、双击Associated Domains3、添加一个域名,默认是webcredentials:example.com,webcredentials是根据相关的内容,修改为applinks:你的域名二、服务器资源配置(apple-app-site-association文件创建和存放)
首先新建一个名字为apple-app-site-association的纯文本文件(Json格式),不要有任何后缀,文件内容为:
- {
- "applinks": {
- "apps": [],
- "details": [
- {
- "appID": "CIKJHYGBHT.com.volcano.VOLSteelChat",
- "paths": ["/steel/*"]
- },
- {
- "appID": "CIKJHYGBHT.com.volcano.VOLCompanyChat",
- "paths": ["/companychat/*"]
- }
- ]
- }
- }
复制代码 上述填写内容,重要是appID和paths的填写,其他不消理会。
一组{"appID":"XXX", "paths":"[xxx]"}对应一个APP。有多少个APP,就写多少组。我们的需求是一个域名下支持有两个APP使用Universal Link。所以我这里写了两组。
appID查找方式其实也有简单的方法,前提是你已经将构建好的版本包通过Xcode上传到App Store Connect,可以打开TestFlight,选择构建版本元数据,向下滑动找到Store 信息,这里对应的application-identifier就是appID
服务器我使用的是docker部署的nginx,代码参考:
1、docker-compose.yml
- services:
- all_nginx:
- image: nginx:1.25
- container_name: all_nginx
- restart: unless-stopped
- volumes:
- # Universal Links 文件
- - /www/wwwroot/all_nginx/UniversalLink:/www/wwwroot/all_nginx/UniversalLink:ro
- ports:
- - "80:80"
- - "443:443"
- networks:
- - test_network
- # 添加其他服务的网络
- networks:
- test_network:
- name: test_network
- external: true
- # 添加其他服务的网络
复制代码 2、test.conf
- upstream test_web {
- server test_web:8000;
- keepalive 32; # 保持连接数
- }
- # test API 配置
- server {
- listen 80;
- listen 443 ssl;
- server_name ;
- # SSL 配置
- # API 代理配置
- location = /apple-app-site-association {
- root /www/wwwroot/all_nginx/UniversalLink;
- default_type application/json;
- add_header Access-Control-Allow-Origin * always;
- add_header Cache-Control "public, no-transform";
- }
- # 安全相关的响应头
- # 日志配置
- }
复制代码 重要配置docker-compose.yml的挂载映射,以及conf的代理。
修改完成后使用docker-compose down && docker-compose up -d下令重新启动nginx,使用restart下令大概不会重新挂载映射。
验证使用下令:curl -I https://你的域名/apple-app-site-association,得到如下相应基本就成功了,如果失败请查抄权限问题,大概参考原贴的详细方法。
三、查验
上面的步调都做完,查抄完之后。正常来说,universal link就是配置好了可以测试使用了。
测试方法:
1、在备忘录输入完整地址: https://+applinks配置的域名+apple-app-site-association里的paths
在通讯录点击这个地址,看是否能发生跳转,跳转到手机已经安装上的APP
必要注意的是:应用未在AppStore上架时似乎不会生效,我的一款app未通过考核时并不会举行跳转,但是上架后就可以了(同一个appid只必要通过一次考核就可以了,后续构建的新版本未更新到AppStore也可以跳转)
2、在1、中的地址拷贝。在浏览器输入并前往,页面会出现一个下载该APP的区域。(也有大概会出现一个error页面,但是往下滑动一下页面,谁人下载APP的区域就出来了)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |