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

这篇具有很好参考价值的文章主要介绍了iOS 配置通用链接(Universal Link)服务端和开发者后台都配置好了,还是跳转不到App。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、什么是 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)是否配置正确

4.1 在 Safari 输入 Universal Links

4.2 在 iOS 原生备忘录上,输入 Universal Links


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

ios 通用链接,iOS开发中的疑难杂症,ios,cocoa,macos,Universal Link,iOS通用链接不跳转

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

瑾瑾的技术分享博客

一、什么是 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。
  • 以上都是系统默默替你做的,我们要做的就是确保配置的正确性。

ios 通用链接,iOS开发中的疑难杂症,ios,cocoa,macos,Universal Link,iOS通用链接不跳转

二、配置教程

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

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

    ios 通用链接,iOS开发中的疑难杂症,ios,cocoa,macos,Universal Link,iOS通用链接不跳转

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

    ios 通用链接,iOS开发中的疑难杂症,ios,cocoa,macos,Universal Link,iOS通用链接不跳转

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

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

    ios 通用链接,iOS开发中的疑难杂症,ios,cocoa,macos,Universal Link,iOS通用链接不跳转

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 上进行修改;

    ios 通用链接,iOS开发中的疑难杂症,ios,cocoa,macos,Universal Link,iOS通用链接不跳转

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

    ios 通用链接,iOS开发中的疑难杂症,ios,cocoa,macos,Universal Link,iOS通用链接不跳转

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

ios 通用链接,iOS开发中的疑难杂症,ios,cocoa,macos,Universal Link,iOS通用链接不跳转

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 这个路径下进行配置;

    ios 通用链接,iOS开发中的疑难杂症,ios,cocoa,macos,Universal Link,iOS通用链接不跳转

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

    ios 通用链接,iOS开发中的疑难杂症,ios,cocoa,macos,Universal Link,iOS通用链接不跳转

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

    ios 通用链接,iOS开发中的疑难杂症,ios,cocoa,macos,Universal Link,iOS通用链接不跳转

3.2 在 HBuilderX 中配置

HBuilderX 版本:3.8.4

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

    ios 通用链接,iOS开发中的疑难杂症,ios,cocoa,macos,Universal Link,iOS通用链接不跳转

  • 或者打开项目的 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

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

ios 通用链接,iOS开发中的疑难杂症,ios,cocoa,macos,Universal Link,iOS通用链接不跳转

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

ios 通用链接,iOS开发中的疑难杂症,ios,cocoa,macos,Universal Link,iOS通用链接不跳转

注意:服务器上 apple-app-site-association 的更新不会让 iOS 本地的 apple-app-site-association 同步更新,即 iOS 一般只会在 APP 下载完后初次启动才会下载这个文件,所以如果修改了 apple-app-site-association 文件,请删除 APP 后重新下载。文章来源地址https://www.toymoban.com/news/detail-757120.html

到了这里,关于iOS 配置通用链接(Universal Link)服务端和开发者后台都配置好了,还是跳转不到App的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 由于应用universal link 校验不通过(ios分享)

    app苹果分享的时候校验不通过 解决方法:登录微信开放平台 点击自己的应用 下拉查看应用平台这里没有ios的,就要新增ios的 在上拉基本信息那里去点击修改进去新的页面不用管, 下拉点击保存,下一步 这样就可以勾选新增ios的了, Bundle id是你打包的时候 可以看到的填写

    2024年02月11日
    浏览(50)
  • iOS通用链接(UniversalLink)配置详细流程

    登录苹果账号后,点击创建的APP 的Bundle ID,跳转到APP 信息页面。 记录下 Team ID  和 Bundle ID  备用。 勾选上 功能列表上的 ”Associated Domains“选项。 配置苹果后台 创建一个text空文本文件,去掉文件后缀,命名为 apple-app-site-association (不能修改,且不能添加后缀)。 文件内添加

    2024年02月13日
    浏览(38)
  • uniapp 手动配置ios通用链接UniversalLink

    1.登录苹果开发者中心,找到对应的Identifier勾选 Associated Domains,重新生成profile文件 APP会在第一次启动的时候通过填写的域名来下载apple-app-site-association文件,先部署好文件后打开app 2.在uniapp的项目里面,创建apple-app-site-association文件, 切记不要有后缀名 teamid :是在苹果开发者中

    2024年02月15日
    浏览(44)
  • 小鱼深度产品测评之:阿里云新款通用算力型ECS云服务器Universal实例,实力与能力并存的一款产品。

    首先,很荣幸能参与 ECS U实例 产品测评 。 不仅本次活动面向 全域ECS U实例用户及社区 专家博主 ; 而且还有名额限制, 并且,对产品测评的质量要求更高了, 毕竟面向专家博主这一项要求,就会筛选掉一批。 但是,这并不是提高了产品测评门槛, 反而觉得,这是在提升测

    2024年02月08日
    浏览(52)
  • 将Swift Package构建为通用二进制文件 Universal Binary

      因此,在苹果在WWDC 2020期间宣布他们将把Mac从英特尔处理器过渡到苹果硅之后,现在是时候让每个人都准备好他们的软件了。 对大多数人来说,这次过渡可能更容易一些,特别是那些已经在iOS上支持arm64的人,但仍有工作要做,以确保工具和预编译的发行版支持使用Apple

    2024年02月11日
    浏览(43)
  • #Centos Centos7配置NTP服务端和客户端

    环境: 服务器:172.16.89.252 客户端:172.16.89.253 NTP公网地址:常见的NTP授时服务器地址 一、配置服务端 1、先安装NTP服务器(服务器是最小安装,不带ntp) 2、配置ntpd服务 配置文件中一般有restrict default语句,注释掉第二种或选择第一种   配置与上级互联网服务端连续性同步

    2024年02月05日
    浏览(32)
  • 【三方登录-Apple】iOS 苹果授权登录(sign in with Apple)之开发者配置一

    记录一下sign in with Apple的开发者配置 关于使用 Apple 登录 使用“通过 Apple 登录”可让用户设置帐户并使用其Apple ID登录您的应用程序和关联网站。首先使用“使用 Apple 登录”功能启用应用程序的App ID 。 如果您是首次启用应用程序 ID 或为新应用程序启用应用程序 ID,请启用该

    2024年02月06日
    浏览(68)
  • websocket链接断开服务器报错java.io.EOFException解决办法

    首先说一下报错原因,由于默认60s无消息交互就会关闭长连接,所以导致这个报错 解决方案其实也很简单,既然是长时间没有通信导致断开,其实保持通信就好,可以设置心跳时间来解决。 可以前端也可以后端,附上前端代码吧 //心跳检测 var heartCheck = {     timeout: 60000,//

    2024年02月08日
    浏览(54)
  • 13 Link(链接)

    静态链接(Static Linking)是编译程序时链接库的一种方法。在静态链接过程中,程序所需的库文件会被嵌入到最终的可执行文件中。这样,程序在运行时不需要动态加载外部库文件。静态链接的过程主要包括以下步骤: 编译源代码:首先,将源代码编译成目标文件(object fi

    2023年04月11日
    浏览(27)
  • 关于ios Universal Links apple-app-site-association文件 Not Found的问题

    Support Universal Links 里面有说到 Universal Links 是什么、注意点、以及如何配置的。简单来说就是 当您支持通用链接时,iOS 用户可以点击指向您网站的链接,并无缝重定向到您安装的应用程序 大白话就是说,用户通过点击某个链接,可以直接唤起对应的app。提供这样功能的目的

    2024年02月11日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包