iOS Universal Link 配置

什么是 Universal Link?

Universal Link 是苹果在 iOS 9 中引入的一种深层链接技术,它允许你通过一个标准的 HTTPS URL 来直接打开你的 iOS 应用,而无需通过 Safari 浏览器跳转。如果用户没有安装你的应用,这个链接会自动在 Safari 中打开对应的网页内容。
核心优势:
  • 无缝用户体验:用户点击链接即可直接进入应用,无需经过浏览器。
  • 智能 fallback:未安装应用时,会优雅地跳转到网页。
  • 品牌一致性:可以使用你自己的域名作为链接,而不是 yourapp:// 这种自定义 Scheme。
  • 支持跨平台:同一个 HTTPS 链接可以在 iOS、Android、桌面浏览器等多个平台上工作。

配置 Universal Link 的步骤

配置过程主要分为三步:
  1. 配置你的域名服务器:在你的网站上放置一个名为 apple-app-site-association 的 JSON 文件。
  2. 配置你的 Xcode 项目:在项目中启用 Associated Domains 并添加你的域名。
  3. 在应用中处理链接:实现 UIApplicationDelegate 或 NSUserActivity 的回调方法来响应链接的打开。

第一步:配置域名服务器 (apple-app-site-association)

  1. 创建 apple-app-site-association 文件
    这是一个 JSON 文件,没有文件后缀。
    json
     
     
    {
      "applinks": {
        "apps": [],
        "details": [
          {
            "appID": "ABCDE12345.com.example.MyApp",
            "paths": [ "/app/*", "/links/*", "NOT /about" ]
          }
        ]
      }
    }
    
     
     
    • apps: 必须为空数组。
    • details: 一个包含应用信息的数组,可以配置多个应用。
    • appID: 由两部分组成:Team ID.Bundle Identifier
      • Team ID: 你的 Apple Developer 团队 ID,可以在 Apple Developer 网站上找到。
      • Bundle Identifier: 你的应用的 Bundle ID,在 Xcode 项目设置中可以找到。
    • paths: 一个字符串数组,指定了哪些路径的 URL 会被关联到你的应用。
      • 通配符 *: 匹配任意字符序列(包括空)。例如 /app/* 会匹配 /app//app/home/app/item/123 等。
      • 精确匹配: 例如 /links/promotion 只会匹配这个 exact path。
      • NOT 关键字: 用于排除某些路径。例如 "NOT /about" 表示除了 /about 之外的所有路径。NOT 必须是数组中的第一个元素。
  2. 上传文件到你的服务器
    将 apple-app-site-association 文件上传到你域名的 根目录 或 .well-known 子目录中。
    • 推荐路径: https://www.yourdomain.com/.well-known/apple-app-site-association
    • 备用路径: https://www.yourdomain.com/apple-app-site-association
  3. 验证服务器配置
    • 必须使用 HTTPS,且证书必须是可信的(不能是自签名证书)。
    • 确保文件可以被公开访问,没有设置任何访问限制(如 Basic Auth)。
    • 检查文件的 Content-Type 响应头应为 application/json
    你可以使用 Apple 的 App Search API Validation Tool 来验证你的配置是否正确。 这是一个非常重要的步骤,可以帮你发现很多问题。

第二步:配置 Xcode 项目

  1. 打开项目设置:在 Xcode 中,选择你的项目文件(蓝色图标),然后选择你的主 Target。
  2. 启用 Associated Domains:
    • 切换到 Signing & Capabilities 标签页。
    • 点击左上角的 + Capability 按钮。
    • 搜索并添加 Associated Domains。
  3. 添加域名:
    • 在 Associated Domains 能力下面,你会看到一个 Domains 列表。
    • 点击 + 按钮添加你的域名,格式为 applinks:www.yourdomain.com
    • 注意:前缀是 applinks:,后面跟上你的域名。不需要 https://
posted @ 2025-11-25 15:47  福寿螺888  阅读(0)  评论(0)    收藏  举报