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

此文章基于ios Universal Link 配置教程 + 踩坑记录_apple-app-site-association-优快云博客,我不想重复写一些内容会复制粘贴一下原贴(原贴内容为红色字体),侵删。

由于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的区域就出来了)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值