Xcode16.2关于ios Universal Link 配置教程

打印 上一主题 下一主题

主题 1618|帖子 1618|积分 4854

此文章基于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 Domains
3、添加一个域名,默认是webcredentials:example.com,webcredentials是根据相关的内容,修改为applinks:你的域名
二、服务器资源配置(apple-app-site-association文件创建和存放)
首先新建一个名字为apple-app-site-association的纯文本文件(Json格式),不要有任何后缀,文件内容为:
  1. {
  2.     "applinks": {
  3.         "apps": [],
  4.         "details": [
  5.             {
  6.                 "appID": "CIKJHYGBHT.com.volcano.VOLSteelChat",
  7.                 "paths": ["/steel/*"]
  8.             },
  9.             {
  10.                 "appID": "CIKJHYGBHT.com.volcano.VOLCompanyChat",
  11.                 "paths": ["/companychat/*"]
  12.             }
  13.         ]
  14.     }
  15. }
复制代码
上述填写内容,重要是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
  1. services:
  2.   all_nginx:
  3.     image: nginx:1.25
  4.     container_name: all_nginx
  5.     restart: unless-stopped
  6.     volumes:
  7.       # Universal Links 文件
  8.       - /www/wwwroot/all_nginx/UniversalLink:/www/wwwroot/all_nginx/UniversalLink:ro
  9.     ports:
  10.       - "80:80"
  11.       - "443:443"
  12.     networks:
  13.       - test_network
  14.       # 添加其他服务的网络
  15. networks:
  16.   test_network:
  17.     name: test_network
  18.     external: true
  19.   # 添加其他服务的网络
复制代码
2、test.conf
  1. upstream test_web {
  2.     server test_web:8000;
  3.     keepalive 32;  # 保持连接数
  4. }
  5. # test API 配置
  6. server {
  7.     listen 80;
  8.     listen 443 ssl;
  9.     server_name ;
  10.     # SSL 配置
  11.     # API 代理配置
  12.     location = /apple-app-site-association {
  13.         root /www/wwwroot/all_nginx/UniversalLink;
  14.         default_type application/json;
  15.         add_header Access-Control-Allow-Origin * always;
  16.         add_header Cache-Control "public, no-transform";
  17.     }
  18.     # 安全相关的响应头
  19.     # 日志配置
  20. }
复制代码
重要配置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企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

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

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

反转基因福娃

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表