iOS 配置通用链接(Universal Link)服务端和开发者后台都配置好了,还是跳转不到App

news2024/11/24 14:03:05

目录

一、什么是 Universal Link?

1.背景介绍

2.特点

3.运行机制原理&流程图

二、配置教程

1.第一步:开启 Associated Domains 服务

1.1 开通 Associated Domains

2.第二步:服务器配置 apple-app-site-association(AASA) 文件

2.1 创建 apple-app-site-association 文件

2.2 将 apple-app-site-association 文件上传到服务器

2.3 校验 AASA 文件的有效性

2.3.1 三方工具(推荐使用)

2.3.2 官网(不好用)

3.第三步:配置 Associated Domains(域名)

3.1 在 Xcode 中配置

3.2 在 HBuilderX 中配置

4.第四步:验证通用连接(Universal Link)是否配置正确


我按照大佬的操作都完成了,服务端给的地址也都验证通过,我前端配置也都ok,就是不跳转,最后发现是手机缓存问题,重启手机后,再重试就好了。

底部文章是来自一个大佬的博客总结的内容:

瑾瑾的技术分享博客

一、什么是 Universal Link?

1.背景介绍

  • Universal Link 是苹果在 WWDC 2015 上提出的 iOS 9 的新特性之一。此特性类似于深层链接,并能够方便地通过打开一个 Https 链接来直接启动您的客户端应用(手机有安装 App)。对比以往所使用的 URLSheme,这种新特性在实现 web-app 的无缝链接时,能够提供极佳的用户体验。使用前请阅读苹果官方文档 - Support Universal Links

  • 由于苹果 iOS 13 系统版本安全升级,微信 SDK1.8.6 版本要求支持 Universal Links 方式跳转,以便进行合法性校验,提升安全性。详情请参考微信官方文档 - iOS 接入指南

2.特点

  • Universal Link 可以无缝链接到 app 或网页,主要应用场景有内容分享广告投放。它有如下特点:

    • 如果安装了 app,会直接打开 app,并定位到内容页;
    • 如果没有安装 app,使用浏览器打开该链接;

3.运行机制原理&流程图

  • 当 App 初次安装后或者更新版本后的第一次启动(第二次启动就不会),向工程配置的 applinks: 的域名请求 apple-app-site-association 配置文件;
  • App 自动的将 apple-app-site-association 配置文件向 iOS 系统配置;
  • 当任何 WebView 发起 UniversalLink 的 url 的时候,系统遍历注册过的通用链接,如果命中则直接打开 App 触发 Delegate 方法;如果没命中,WebView 继续跳转加载 url。
  • 以上都是系统默默替你做的,我们要做的就是确保配置的正确性。

Universal Links流程

二、配置教程

1.第一步:开启 Associated Domains 服务

1.1 开通 Associated Domains
  • 登录苹果开发者中心,在“Certificates, Identifiers & Profiles(证书、标识符和描述文件)”页面选择“Identifiers(标识符)”

    证书、标识符和描述文件

  • 在“Identifiers(标识符)”选项下,添加或选择对应的 App ID

    添加或选择对应的 App ID

  • 勾选 Associated Domains 并保存,一定要确保开启 Associated Domains 服务

    重要提示:开启 Associated Domains 服务后,需要重新生成 profile 文件

    开启 Associated Domains 服务

2.第二步:服务器配置 apple-app-site-association(AASA) 文件

AASA(apple-app-site-association)文件是一个位于 根目录 或 /.well-known 文件夹下面的 json 文件 (例如: https://your_domain/apple-app-site-association 或 https://your_domain/.well-known/apple-app-site-association),里面描述了目标 app 的信息。AASA 文件和 entitlements 为网站和 app 提供了互相认证的机制。

2.1 创建 apple-app-site-association 文件
  • 需要创建一个 apple-app-site-association 文件,必须命名为 apple-app-site-association,切记没有后缀,有些人的电脑是隐藏文件后缀的,务必把 .json 后缀去掉!

    1
    
    touch apple-app-site-association
    
  • 文件内添加 json 格式数据,内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    {
      "applinks": {
        "apps": [], // apps:是限制只能在这几个app中使用,基本上不填写,所以是空数组
        "details": [
          // 可以配置一个,也可配置多个
          {
            "appID": "9JA89QQLNQ.com.apple.wwdc", // appID:是由TeamId + . + BundleId组成
            "paths": ["*"] // paths:设定你的app支持的路径列表,只有这些指定路径的链接,才能被app所处理。"*"的写法代表了可识别域名下所有链接
          },
          {
            "appID": "ABCD1234.com.apple.wwdc",
            "paths": ["/app/*", "/qq_conn/appid/*"] // "/app/*"是自己定义的路径;"/qq_conn/appid/*"需要根据QQ互联平台设置,appid是QQ互联后台对应应用的APPID
          }
        ]
      }
    }
    
2.2 将 apple-app-site-association 文件上传到服务器
  • 你的服务器必须支持 HTTPS 协议,并且拥有该域名下上传到根目录的权限;

  • 将这个文件上传到你的服务器,可以将这个文件放到服务器的 根目录 下,也可以放到 .well-known 这个子目录下,这是为了苹果能获取到你上传的文件;

  • 该文件的 content-type 需要设置成 application/json,可以直接在 oss 上进行修改;

    修改 Http 头

  • 上传完成后,对应的链接分别为https://xxx/apple-app-site-associationhttps://xxx/.well-known/apple-app-site-association(xxx 为服务端的域名),然后试着访问一下,看看是否能够获取到,当你在浏览器中输入这个文件链接后,出现下图就可以了:

    预览 AASA

2.3 校验 AASA 文件的有效性
  • AASA 文件的格式和命名会直接影响到 iOS 系统能否正常拉取、识别里面的内容,现在有一些工具可以校验 AASA 文件有效性:
2.3.1 三方工具(推荐使用)

aasa-validator 校验

2.3.2 官网(不好用)

3.第三步:配置 Associated Domains(域名)

3.1 在 Xcode 中配置

Xcode 版本:Version 14.2 (14C18)

  • 在 Xcode 中打开项目,选择目录中的 xxx.xcodeproj(xxx 通常为项目名称),在 xxx.xcodeproj -> Signing&Capabilites -> Capability -> Associated Domains 这个路径下进行配置;

    Xcode 配置 Associated Domains 图1

  • 然后双击 Associated Domains,即可在 Xcode 中对 Associated Domains 进行配置,如果 Capability 中已经存在 Associated Domains,那么直接配置即可;

    Xcode 配置 Associated Domains 图2

  • 在 Associated Domains 里面配置的 Universal Links,必须以 applinks: 为前缀,格式为:applinks:+配置的域名,例如:applinks:test.com

    Xcode 配置 Associated Domains 图3

3.2 在 HBuilderX 中配置

HBuilderX 版本:3.8.4

  • 打开 HBuilderX 并选择对应的项目,找到 manifest.json,在 App常用其它设置 中找到“iOS 设置”下的 关联域(Associated Domains)进行配置;

    HBuilderX 配置 Associated Domains

  • 或者打开项目的 manifest.json 文件,切换到“源码视图”项,在 uni-app 项目在 app-plus -> distribute -> ios -> capabilities -> entitlements 节点下添加 com.apple.developer.associated-domains 字段,字段值为字符串数组,每个字符串为要关联的域名;

    1
    2
    3
    4
    5
    6
    7
    
    "capabilities": {
      "entitlements": {
        "com.apple.developer.associated-domains": [
          "applinks:xxx.xxx.com"
        ] // xxx.xxx.com 是应用通用链接的域名(这里不要包含path),请修改为自己应用要使用的域名
      }
    }
    
  • 保存后提交云端打包生效;

注意:在 Associated Domains 里面配置的 Universal Links 必须要以 applinks: 开头,后面写上域名,例如:applinks:test.com

4.第四步:验证通用连接(Universal Link)是否配置正确

注意:测试时,手机上必须安装你需要跳转的应用并配置 Associated Domains

  • 在这个链接的页面顶部能看到“在 xxx APP 中打开”字样,点击“打开”按钮可以打开 app;

Safari 校验

  • 如果输入的 Universal Links 是能识别的链接,那么点击链接看看是否可以直接跳转到 app;
  • 或者长按该链接,看看弹出的菜单中是否有“在 xxx 中打开”,这都代表着成功了;

备忘录校验

注意:服务器上 apple-app-site-association 的更新不会让 iOS 本地的 apple-app-site-association 同步更新,即 iOS 一般只会在 APP 下载完后初次启动才会下载这个文件,所以如果修改了 apple-app-site-association 文件,请删除 APP 后重新下载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1123389.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

binlog 和 redolog 有什么区别

binlog 和 redolog 都是 Mysql 里面用来记录数据库数据变更操作的日志. binlog 其中 binlog 主要用来做数据备份、数据恢复和数据同步,在Mysql 的主从数据同步的场景中,master 节点的数据变更,会写入到 binlog 中,然后再把 binl…

会声会影2024永久破解中文版下载

会声会影2024中文版是一款功能强大的视频编辑软件、大型视频制作软件、专业视频剪辑软件。会声会影专业视频编辑处理软件,可以用于剪辑合并视频,制作视频,屏幕录制,光盘制作,视频后期编辑、添加特效、字幕和配音等操作…

Allegro在走线时如何隐藏其它网络的飞线

Allegro在走线时,自动隐藏其它网络的飞线,在走线的过程中不会被其它飞线干扰,从而方便快速的走线。 在走线过程中,其它飞线自动隐藏。 操作方法如下: 先激活走线命令,然后在Options选项卡上勾选Auto-blank other rats 则在走线时,其它网络的预拉线全部自动隐藏。

Mybatis plus中的逻辑删除源码跟踪

网上搜了一堆文章,都没有贴出源码: 疑问: 逻辑删除,到底是在哪改变的sql??? 跟踪方法——DeleteById 说明:逻辑删除,实质用的update语句; 组装逻辑删除字段…

分享画PAD图的软件-PADFlowChart

软件的可执行文件下载:PADFlowChart-exe.zip 如果有帮助望三联

第63讲:MySQL存储过程变量传参的核心概念与案例

文章目录 1.存储过程传参2.存储过程传参的语法结构3.存储过程传参经典案例3.1.IN类型的传参3.2.IN和OUT同时使用的传参3.3.INOUT类型的传参 1.存储过程传参 在创建存储过程时,存储过程名称后面的括号里是可以传入一些参数的,例如传入一个变量&#xff0…

毕业三年,月薪30K,我想跟你聊聊

大家好,我是冰河~~ 很多读者私信问我,自己工作三年多了,随着工作年限的不断增长,感觉自己的技术水平与自己的工作年限严重不符。想跳槽出去换个新环境吧,又感觉自己的能力达不到心仪公司的标准,即使投了简…

蔚蓝科技推BabyAlpha阿尔法机器狗,表象之下是否会重蹈虚假覆辙

最近笔者在朋友圈又刷到这样一条广告:关于一个叫蔚蓝阿尔法机器狗的推广。颇有刷着刷着刷出一条机器狗来的既视感。 经过了解,这是蔚蓝科技公司为旗下新机器狗BabyAlpha推出,投放的朋友圈销售广告。为什么说又呢,因为印象中这家公…

单链表(第二部分)单链表的实现!!!

1.单链表的头文件 #pragma once #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<assert.h> #include<string.h> #include"contact.h"typedef struct PersonInfo SLTDataType; typedef struct SListNode {…

技术文档工具『Writerside』抢鲜体验

前言 2023 年 10 月 16 日&#xff0c;JetBrains 宣布以早期访问状态推出 Writerside&#xff0c;基于 IntelliJ 平台的 JetBrains IDE&#xff0c;开发人员可使用它编写、构建、测试和发布技术文档&#xff0c;可以作为 JetBrains IDE 中的插件使用&#xff0c;也可以作为独立…

2023年中国汽车塑料模具市场规模、竞争格局及行业趋势分析[图]

汽车注塑模具主要用来制造汽车内外饰件以及座椅等其他塑料零部件&#xff0c;其中又以汽车内外饰件模具最多。汽车内外饰件主要由各类塑料、表皮、织物或复合材料制成&#xff0c;用到的模具主要是塑料模具。从现代汽车使用的材料来看&#xff0c;无论是外装饰件、内装饰件&…

【剑指Offer】36.二叉搜索树与双向链表

题目 输入一棵二叉搜索树&#xff0c;将该二叉搜索树转换成一个排序的双向链表。如下图所示 数据范围&#xff1a;输入二叉树的节点数 0≤n≤1000&#xff0c;二叉树中每个节点的值 0≤val≤1000 要求&#xff1a;O(1)&#xff08;即在原树上操作&#xff09;&#xff0c;时间…

爱尔眼科眼底病论坛糖网病变智能(AI)监测防治培训举办!

为推动四川省眼科学领域的学科建设、规范诊疗行为、提高学术水平&#xff0c;促进国内眼底病学学术交流。由成都高新医学会主办&#xff0c;爱尔眼科集团、爱尔眼科四川省区承办的成都高新医学会第二届眼科学术会议一一爱尔眼科眼底病论坛暨糖尿病视网膜病变智(AI)终生监测防治…

读卡器+芯片

RFID Reader 产品参数 产品型号 RFID Reader 尺寸(mm) 104*70*11.7mm 外观颜色 黑 材质 ABS 接口 MINI 功率 0.1W 电源 5V/1A 读卡距离 40mm 工作温度 -40~85℃ 工作频率 13.56Mhz 串口功能 支持 支持协议 ISO/IEC 14443、ISO/IEC 15693 产品参数 …

2023年中国石英矿资源现状及行业市场供需分析[图]

石英矿为常见的非金属矿物质&#xff0c;具有储量大、分布广、易开采等特点&#xff0c;根据不同成矿特性和理化特性&#xff0c;石英矿物可分为岩浆岩型、变质型、热液型、沉积型&#xff0c;对应的石英岩分别为花岗伟晶岩、脉石英岩、石英岩和石英砂岩。 石英矿物类型和特点…

关于在公众号刷到自己博客这件事

微信公众号 探索云原生 正式启用了&#xff0c;欢迎大家关注。 吐槽&#xff1a;竟然在微信公众号刷到自己的文章&#x1f923;&#xff0c;这也太巧了吧。 吐槽&#xff1a;这也太巧了吧 周五&#xff0c;开心的下班回到家&#xff0c;刷会微信。 发现关注的某大佬的公众号又…

laravel框架介绍(二) composer命令下载laravel报错

1.composer命令下载laravel报如下错 &#xff1a; curl error 18 while downloading https://repo.packagist.org/p2/symfony/uid.j son: transfer closed with 3808 bytes remaining to read&#xff0c;具体为 解决方案&#xff1a;执行以下命令切换镜像 >composer con…

滚动条样式美化

css手搓 <script setup> import { ref } from "vue"; </script><template><div class"ii"><div>ssssssssssssss</div><div>ssssssssssssss</div><div>ssssssssssssss</div><div>sssss…

【Python语言速回顾】——函数模块类与对象

目录 引入 一、函数 1、函数概述 2、参数和返回值 3、函数的调用 二、模块 1、模块概述 2、模块应用实例 三、类与对象 1、面向对象概述 2、类 3、类的特点 引入 为了使程序实现的代码更加简单。需要把程序分成越来越小的组成部分&#xff0c;3种方式——函数、对象…

10.26 来 CNCC 2023 T16 展位,TDengine 精美周边等你来领!

10 月 26 日你在哪&#xff1f; 这一天 TDengine 在美丽的大沈阳&#xff01; 没错 TDengine 受邀来参加中国计算机大会&#xff08;CNCC2023&#xff09;啦 在 CNCC T16 展位上 我们准备了很多精美周边礼品 等你来面基&#xff01; 另外我们还有一个好消息要分享 如果有…