Xcode16.2关于ios Universal Link 配置教程
此文章基于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、打开项目配置,点击左上角的+ Capabilityhttps://i-blog.csdnimg.cn/direct/446a1e4bcd9f4658bc97e7f8cbba28e5.png
2、双击Associated Domainshttps://i-blog.csdnimg.cn/direct/f61c866f32174f6dab45fe1836762315.png3、添加一个域名,默认是webcredentials:example.com,webcredentials是根据相关的内容,修改为applinks:你的域名https://i-blog.csdnimg.cn/direct/45b8944a9fef4cdabfe2e43d7569e17d.png二、服务器资源配置(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":""}对应一个APP。有多少个APP,就写多少组。我们的需求是一个域名下支持有两个APP使用Universal Link。所以我这里写了两组。
appID查找方式其实也有简单的方法,前提是你已经将构建好的版本包通过Xcode上传到App Store Connect,可以打开TestFlight,选择构建版本元数据,向下滑动找到Store 信息,这里对应的application-identifier就是appIDhttps://i-blog.csdnimg.cn/direct/9c61f77a04434ac9ae700905388d0f41.png
https://i-blog.csdnimg.cn/direct/4aa8b574d8524d59b0be30d56e286c01.png
服务器我使用的是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,得到如下相应基本就成功了,如果失败请查抄权限问题,大概参考原贴的详细方法。https://i-blog.csdnimg.cn/direct/b1fa2c59e0294fb4aaa5a48219afdd51.png
三、查验
上面的步调都做完,查抄完之后。正常来说,universal link就是配置好了可以测试使用了。
测试方法:
1、在备忘录输入完整地址: https://+applinks配置的域名+apple-app-site-association里的paths
在通讯录点击这个地址,看是否能发生跳转,跳转到手机已经安装上的APP
必要注意的是:应用未在AppStore上架时似乎不会生效,我的一款app未通过考核时并不会举行跳转,但是上架后就可以了(同一个appid只必要通过一次考核就可以了,后续构建的新版本未更新到AppStore也可以跳转)
https://i-blog.csdnimg.cn/blog_migrate/ca188552e8ffbe75981b44bdea22698f.gif
2、在1、中的地址拷贝。在浏览器输入并前往,页面会出现一个下载该APP的区域。(也有大概会出现一个error页面,但是往下滑动一下页面,谁人下载APP的区域就出来了)
https://i-blog.csdnimg.cn/blog_migrate/448cf42a1647b925353a63ac9ab4e807.gif
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]