iOS 云锚点快速入门

ARCore SDK 可以为您的 iOS 应用提供云锚点功能,从而让 iOS 和 Android 设备上的用户可以共享 AR 体验。

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

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

要求

要使用云锚点,您需要满足以下要求:

硬件

请注意:

  • 由于 iOS 11 仅支持 64 位架构,ARCore SDK for iOS 仅支持 x86_64 和 arm64 架构。

软件

使用云锚点

以下步骤使用 Cloud Anchors 示例应用介绍了配置和构建具有云锚点功能的应用所涉及的关键任务。

获取 Cloud Anchors 示例应用

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

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

  3. 您可以在以下位置找到示例应用代码:
    /arcore-ios-sdk-master/Examples/CloudAnchorExample

设置云锚点 ID 共享

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

要在示例应用中设置 Firebase 存储空间,请执行以下操作:

  1. 按照 Firebase 说明操作,将 Firebase 添加到您的应用
  2. 下载将 Firebase 添加到您的应用时生成的 GoogleService-Info.plist 文件。
  3. 为示例启用 Firebase 存储空间:
    • 转到 Firebase console,并选择您为示例应用设置的项目。
    • 选择 Database 面板。
    • Realtime Database 选项上,点击 Get Started
    • Security rules for Realtime Database 菜单将打开。
      • 要运行示例,请选择 Start in test mode
      • 请注意,如果您正在为计划发布的应用使用 Firebase,您应当采用更加严格的安全规则。
  4. 在 Xcode 中,将 GoogleService-Info.plist 文件添加到您的应用中靠近 Info.plist 的位置。

添加 API 密钥

要使用云锚点,您需要向应用中添加一个 API 密钥。

  1. 获取一个 API 密钥。 如果您对 API 密钥的使用不熟悉,请参阅 Google Cloud Platform Console 帮助中心中的设置 API 密钥

  2. 为您的 Google Cloud Platform 项目启用 ARCore Cloud Anchor API

  3. 在 Xcode 中,将您的 API 密钥添加到应用中。 为此,请将密钥添加到 ExampleViewController.m 的以下代码中:

    self.gSession = [GARSession sessionWithAPIKey:@"Replace me with your API key."
                                 bundleIdentifier:nil
                                            error:nil];
    

运行 pod 更新

CloudAnchorExample 应用附带一个 Podfile,此配置文件已使用您需要的 ARCore SDK 和 iOS 版本预配置。 要安装这些依赖项,请执行以下操作:

  1. 打开终端窗口,并从 Xcode 项目所在的文件夹运行 pod update

    这将生成一个 .xcworkspace 文件,您稍后会使用此文件构建和运行应用。

请参阅将 ARCore SDK 添加到您的应用,了解在您的应用中配置 Podfile 的详细信息。

更改应用软件包 ID

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

  2. 关闭 .xcodeproj 文件。

构建并运行应用

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

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

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

  3. (可选步骤)如果您正在构建和运行示例应用,请参阅下一部分,了解使用应用托管和解析云锚点的详细信息。

试用示例应用

  1. .xcworkspace 文件构建并运行示例应用,以在您的设备上启动此应用。

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

  3. 点按 HOST 进入托管模式。 系统将生成一个用于共享托管的锚点的房间代码,并在界面上显示此代码。

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

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

    • 将向 Google 云锚点服务发送一个解析请求。
    • 解析请求包含一个云锚点 ID。 如果 ID 与某个托管锚点匹配并且定位成功,服务器将在您的本地坐标中返回锚点的转换。
    • 示例应用使用转换将锚点添加到您的场景并渲染连接到场景的虚拟物体。

将 ARCore SDK 添加到您的应用

在您的应用中,您需要更新 Podfile 以包含 ARCore SDK 和支持的 iOS 版本。 为此,请执行以下操作:

  1. 将下面的 platformpod 添加到您项目的 Podfile 中:

        platform :ios, '11.0'
        pod 'ARCore', '~> 1.4.0'
    
  2. 打开终端窗口,并从 Xcode 项目所在的文件夹运行 pod update

    这将生成一个 .xcworkspace 文件,您将使用此文件构建和运行应用。

后续步骤