你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

运行示例应用:iOS - Xcode(Swift 或 Objective-C)

本快速入门介绍如何使用 Xcode(Swift 或 Objective-C)为 iOS 设备运行 Azure 空间定位点示例应用。 Azure 空间定位点是一种跨平台开发人员服务。通过该服务,可以使用能够随时间推移跨设备保存自己位置的对象创建混合的现实体验。 完成后,将获得一个 ARKit iOS 应用,该应用可保存和重新调用空间定位点。

将了解如何执行以下操作:

  • 创建空间定位点帐户
  • 配置空间定位点帐户标识符和帐户密钥
  • 在 iOS 设备上部署和运行

如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户

先决条件

若要完成本快速入门,请确保具备以下项:

  • 开发人员启用已安装最新版本的 XcodeCocoaPods 的 macOS 计算机。
  • 通过 HomeBrew 安装的 Git:
    1. 在终端中以单行形式输入以下命令:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    2. 运行 brew install gitbrew install git-lfs
    3. 使用 git lfs install(适用于当前用户)或 git lfs install --system(适用于整个系统)更新 git 配置。
  • 支持开发人员的 ARKit 兼容 iOS 设备。

创建空间定位点资源

转到 Azure 门户

在左窗格中,选择“创建资源”。

使用搜索框以搜索“空间定位点”。

Screenshot showing the results of a search for Spatial Anchors.

选择“空间定位点”,然后选择“创建” 。

在“空间定位点帐户”窗格中,执行以下操作:

  • 使用常规字母数字字符输入唯一的资源名称。

  • 选择想要将资源附加到的订阅。

  • 选择“新建”可创建资源组。 将其命名为 myResourceGroup,然后选择“确定” 。

    资源组是在其中部署和管理 Azure 资源(例如 Web 应用、数据库和存储帐户)的逻辑容器。 例如,可以选择在使用完之后通过一个简单的步骤删除整个资源组。

  • 选择可在其中放置资源的位置(区域)。

  • 选择“创建”开始创建资源。

Screenshot of the Spatial Anchors pane for creating a resource.

创建资源后,Azure 门户显示部署已完成。

Screenshot showing that the resource deployment is complete.

选择“转到资源”。 你现在可以查看资源属性。

将资源的“帐户 ID”值复制到文本编辑器中,供稍后使用。

Screenshot of the resource properties pane.

另外,将资源的“帐户域”值复制到文本编辑器中,供稍后使用。

Screenshot showing the resource's account domain value.

在“设置”下,选择“访问密钥” 。 将“帐户密钥”的“主密钥”值复制到文本编辑器中,供稍后使用 。

Screenshot of the Keys pane for the account.

打开示例项目

使用终端执行以下操作。

通过运行以下命令克隆示例存储库

git clone https://github.com/Azure/azure-spatial-anchors-samples.git
cd ./azure-spatial-anchors-samples

使用 CocoaPods 安装必要的 Pod:

导航到 iOS/Swift/

cd ./iOS/Swift/

运行 pod install --repo-update 以安装项目的 CocoaPods。

注意

如果你有 macOS Monterey (12.2.1),请使用以下命令

运行 pod update 以安装项目的 CocoaPods。

现在打开 Xcode 中的 .xcworkspace

注意

如果在升级到 macOS Catalina (10.15) 后遇到 CocoaPod 问题,请参阅此处的故障排除相关步骤。

open ./SampleSwift.xcworkspace

配置帐户标识符和密钥

下一步是将应用程序配置为使用帐户标识符和帐户密钥。 在设置空间定位点资源时,将它们复制到文本编辑器中。

打开 iOS/Swift/SampleSwift/ViewControllers/BaseViewController.swift

找到 spatialAnchorsAccountKey 字段并将 Set me 替换为帐户密钥。

找到 spatialAnchorsAccountId 字段并将 Set me 替换为帐户标识符。

找到 spatialAnchorsAccountDomain 字段并将 Set me 替换为帐户域。

将应用部署到 iOS 设备

将 iOS 设备连接到 Mac 并将“活动方案”设置为 iOS 设备。

Select the device

选择“生成并运行当前方案”。

Deploy and run

注意

如果看到 library not found for -lPods-SampleObjC 错误,则可能是打开了 .xcodeproj 文件而不是 .xcworkspace。 请打开 .xcworkspace 然后重试。

在 Xcode 中,按“停止”来停止应用。

疑难解答

macOS Catalina (10.15) 上的 CocoaPods 问题

如果最近更新到 macOS Catalina (10.15) 并事先安装了 CocoaPods,则 CocoaPods 可能处于损坏状态,无法正确配置 pod 和 .xcworkspace 项目文件。 若要解决此问题,需要通过运行以下命令重新安装 CocoaPods:

brew update
brew install cocoapods --build-from-source
brew link --overwrite cocoapods

从个人预配配置文件/开发人员帐户部署到 iOS 10.3.1 时应用崩溃

如果通过个人预配配置文件/开发人员帐户在 iOS 10.3.1 上部署 iOS 应用,可能会出现此错误:Library not loaded: @rpath/ADAL...

若要解决问题,请执行以下操作:

  • 使用不是“个人团队”配置文件(付费开发人员帐户)的预配配置文件。
  • 将应用部署到运行 iOS 13.3 或更低版本的 iOS 设备,或者部署到运行 iOS 13.4 Beta 版或发布版的 iOS 设备。
  • 有关此问题的详细信息,请访问 Stack Overflow

清理资源

在前面的步骤中,你在资源组中创建了 Azure 资源。 如果将来不再需要这些资源,可以通过删除资源组来删除它们。

从 Azure 门户菜单或“主页”页上,选择“资源组” 。 然后,在“资源组”页上,选择“myResourceGroup” 。

在“myResourceGroup”页中,确保列出的资源是要删除的资源。

选择“删除资源组” ,在文本框中键入“myResourceGroup” 以确认,然后选择“删除” 。

后续步骤

在本快速入门中,你已创建空间定位点帐户。 然后,你配置并部署了应用来保存和重新调用空间定位点。 要详细了解如何改进应用使其可以与其他设备共享空间定位点,请继续学习下一个教程。