iOS 云锚点快速入门

ARCore Cloud Anchor API(或 ARCore Cloud Anchor 服务)可为您的 iOS 应用提供云锚点功能,让 iOS 和 Android 设备上的用户能够共享 AR 体验。

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

  • 设置开发环境以使用 Cloud Anchors
  • 在示例应用中试用托管和解析锚点

前提条件

  • Xcode 13.0 或更高版本
  • 如果使用 Cocoapods,则需要 Cocoapods 1.4.0 或更高版本
  • 搭载 iOS 12.0 或更高版本且支持 ARKit 的 Apple 设备(部署目标必须为 iOS 12.0 或更高版本)

使用 Cloud Anchors

以下步骤使用 Cloud Anchors 示例应用向您展示配置和构建支持 ARCore Cloud Anchors 的应用的关键任务。

获取 Cloud Anchors 示例应用

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

  2. 打开一个终端或 Finder 窗口,然后前往您克隆或下载 SDK 的文件夹。

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

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

会话设置

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

设置 Cloud Anchor ID 共享

Cloud Anchors 示例应用使用 Firebase 在设备之间共享 Cloud Anchor ID。您可以在自己的应用中使用其他解决方案。

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

  1. 按照 Firebase 说明将 Firebase 添加到您的应用
  2. 下载在将 Firebase 添加到应用时生成的 GoogleService-Info.plist 文件。
  3. 为该示例启用 Firebase 存储空间:
    • 前往 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 更新

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

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

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

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

    为避免构建错误,请确保您是从 .xcworkspace 文件(而非 .xcodeproj 文件)进行构建。

更改应用软件包 ID

在 Xcode 中,更改应用的软件包 ID,以便您可以使用团队账号为应用签名。

构建并运行应用

  1. 连接设备,然后在 Xcode 中启动应用。

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

试用示例应用

  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.48.0'
    
  1. 打开一个终端窗口,然后从 Xcode 项目所在的文件夹中运行 pod update
    这会生成一个 .xcworkspace 文件,供您用来构建和运行应用。

持久云锚点

托管具有持久性的云锚点中所述,您可以为云锚点设置最长 365 天的生存时间。如需使用永久性云锚点,请参阅 GitHub 上的 ARCore SDK for iOS/arcore-ios-sdk-master/Examples/PersistentCloudAnchorExample 目录中的示例代码。

后续步骤