iOS 云锚点快速入门

ARCore Cloud Anchor API(简称 ARCore 云锚点服务)可为您的 iOS 应用提供云锚点功能, 使 iOS 和 Android 用户都能共享 AR 体验。

本指南将介绍如何执行以下操作:

  • 设置您的开发环境以使用云锚点
  • 在示例应用中尝试托管和解析锚点

前提条件

  • Xcode 13.0 或更高版本
  • CocoaPods 1.4.0 或更高版本(如果使用 Cocoapods)
  • 运行 iOS 12.0 或更高版本且与 ARKit 兼容的 Apple 设备 (需要 iOS 12.0 或更高版本的部署目标)

使用云锚点

以下步骤使用 Cloud Anchors 示例应用介绍了配置和构建支持 ARCore Cloud Anchors 的应用所涉及的关键任务。

获取 Cloud Anchors 示例应用

  1. 从 GitHub 克隆或下载 ARCore SDK for iOS,获取示例应用代码。

  2. 打开终端或 Finder 窗口,并导航到您克隆的文件夹 或下载了 SDK。

  3. 您可以在
    /arcore-ios-sdk-master/Examples/CloudAnchorExample 中找到示例应用代码。

    持久云锚点示例应用代码位于
    /arcore-ios-sdk-master/Examples/PersistentCloudAnchorExample 中。

会话设置

示例应用可以在会话设置过程中执行以下重要任务:

设置 Cloud Anchor ID 共享

Cloud Anchors 示例应用使用 Firebase 在设备之间共享云锚点 ID。您可以在自己的应用中使用不同的解决方案。

如需在示例应用中设置 Firebase 数据库,请执行以下操作:

  1. 按照 Firebase 说明将 Firebase 添加到您的应用
  2. 下载添加过程中生成的 GoogleService-Info.plist 文件 将 Firebase 添加至您的应用。
  3. 为示例启用 Firebase 存储: <ph type="x-smartling-placeholder">
      </ph>
    • 转到 Firebase 控制台,然后选择您为其设置的项目 示例应用。
    • 选择 Database 面板。
    • Realtime Database 选项上,点击 Get Started
    • 系统随即会打开 Security rules for Realtime Database 菜单。
      • 如需运行示例,请选择 Start in test mode
      • 请注意,如果您正在为计划发布的应用使用 Firebase,您应当采用更加严格的安全规则。
  4. 在 Xcode 中,将 GoogleService-Info.plist 文件添加到应用的 Info.plist

设置 ARCore API

如需使用云锚点,您必须先为应用设置 ARCore API

运行 pod update

CloudAnchorExample 应用程序随附Podfile预配置 您需要的 ARCore SDK 和 iOS 版本。如需安装这些依赖项,请执行以下操作:

  1. 打开一个终端窗口,然后从 Xcode 项目所在的文件夹运行 pod update
    这将生成一个 .xcworkspace 文件,您稍后会使用此文件构建和运行应用。

请参阅将 ARCore SDK 添加到您的应用 详细了解如何在自己的应用中配置 Podfile

  1. 在 Xcode 中打开项目的 .xcworkspace 文件。

    为避免构建错误,请确保从 .xcworkspace 构建 而不是 .xcodeproj 文件。

更改应用软件包 ID

在 Xcode 中,更改应用的软件包 ID,以便与您的团队一起为应用签名。

构建并运行应用

  1. 连接您的设备并在 Xcode 中启动应用。

  2. (可选)如果您要构建和运行示例应用,请参阅以下内容 部分,详细了解如何使用该应用托管和解析云锚点。

试用示例应用

  1. .xcworkspace 文件构建并运行示例应用以启动 。

  2. 如果出现提示,请向应用授予摄像头权限。然后,ARKit 会开始检测摄像头前方的平面。

  3. 点按 HOST 进入托管模式。用于共享托管锚点的房间代码 系统就会生成并显示在屏幕上

  4. 点按某个平面,开始在平面上托管云锚点。

    • 应用会在平面上放置一个 Andy Android 物体,并将一个锚点连接到此物体。
    • 系统会向 ARCore API 云端点发送一个托管请求。托管请求包含表示锚点相对于附近可视特征的位置的数据。
    • 托管后,锚点将获得一个用于解析云的 ID 锚点。
  5. 点按 RESOLVE 并输入房间代码,使用相同或者不同的设备访问此房间之前托管的云锚点。

    • 将向 ARCore API 云端点发送一个解析请求。
    • 解析请求包含一个云锚点 ID。如果 ID 与 托管锚点和定位成功,则服务器返回 在本地坐标中对锚点进行转换。
    • 示例应用使用转换将锚点添加到您的场景中,然后 来渲染连接到它的虚拟对象。

将 ARCore SDK 添加到您的应用

在您自己的应用中,您需要更新 Podfile 以包含 ARCore SDK 和支持的 iOS 版本。具体操作步骤如下:

  1. 将以下 platformpod 添加到项目的 Podfile

        platform :ios, '11.0'
        pod 'ARCore/CloudAnchors', '~> 1.46.0'
    
  1. 打开终端窗口,然后从所在的文件夹运行 pod update 您的 Xcode 项目已存在。
    这将生成一个 .xcworkspace 文件,用于构建和 运行应用所需的资源

永久性云锚点

托管具有持久性的云锚点中所述,您可以为云锚点设置最长 365 天的生存时间。适用于以下应用的示例代码: /arcore-ios-sdk-master/Examples/PersistentCloudAnchorExample中提供了使用永久性云锚点的教程, 来自 GitHub 的 ARCore SDK for iOS 目录下。

后续步骤