理解 Xcode 中的 Host in CloudKit

本文详细介绍如何了什么是 SwiftData ,并详细对比了 SwiftData 与 Core Data 的异同。另外,苹果发布 SwiftData 对苹果开发生态的意义,作者也做了相关分析,是指的阅读的一篇文章。

理解 Xcode 中的 Host in CloudKit
Photo by Tyler Jamieson Moulton / Unsplash

在 Xcode 中创建项目时,你会看到有一个选项是 Host in Cloudkit,若勾选,则意味着您的应用将使用 CloudKit 作为其后端服务。

image-20231120111705296
苹果 Cloudkit 官方文档: https://developer.apple.com/icloud/cloudkit/

CloudKit 发展历史

要理解 CloudKit 在苹果开发技术中的地位和作用,我们需要先了解 CloudKit 的发展历史。

CloudKit 是 Apple 在 2014 年 WWDC 时推出( Swift 编程语言也是此时推出),作为其 iCloud 服务的一部分。以下是 CloudKit 的主要历史和发展:

推出( 2014 年)

  • 核心问题:在 CloudKit 推出之前,当时的 App 开发中,对于应用后端数据的存储、多设备同步存在很多困难,开发者通常需要花费很多精力和资源来创建和维护服务器,这对于不具备后端开发经验的开发者来说是一个较大的挑战。
  • CloudKit 推出: CloudKit 就是为了解决这个问题而被推出,目的是为开发者提供一种更简单的方法,来集成云存储和数据同步功能到他们的 iOS 和 macOS 应用中。
  • 当时 iCloud (在 2011 年推出)已经作为每个苹果账户服务的一部分,因此直接在数据保存在用户 iCloud 空间中,既方便又解决了数据隐私安全的问题。

逐步增强和扩展( 2015-2019 年间)

  • 平台扩展: CloudKit 随后被扩展到支持 macOS ,后来又扩展到 watchOS 和 tvOS ,实现了跨 Apple 平台的数据同步。
  • Web API: Apple 还引入了 CloudKit 的 Web API ,允许开发者为非 Apple 平台的客户端创建与 iCloud 数据同步的功能。
  • 增强的功能:随着时间的推移, CloudKit 加入了更多的功能,如更复杂的查询支持、记录共享、参照完整性等。

SwiftUI 和 CloudKit ( 2019 年及以后)

  • 与 SwiftUI 的整合:随着 SwiftUI 的推出和普及, CloudKit 开始被更加紧密地整合到 Apple 的开发生态中,提供了更好的开发体验。
  • 持续更新: Apple 持续更新 CloudKit ,提供更好的性能、更强大的功能和更高的可靠性。
  • CloudKit Dashboard : CloudKit Dashboard 的推出为开发者提供了一个强大的工具,用于管理和监控他们的 CloudKit 数据库和应用的使用情况。

CloudKit 关键功能

CloudKit 是 Apple 提供的一个云服务框架,它允许开发者在 iCloud 上存储用户的数据,并在用户的所有设备之间同步这些数据。

以下是 “Host in CloudKit” 的一些关键要点:

  1. 云端数据库: CloudKit 提供云端数据库服务,支持应用数据的存储和同步。
  2. 用户数据隔离:每个用户的数据在 iCloud 中是隔离的,保证了数据的私密性和安全性。
  3. 跨平台同步:支持在 iOS 、 iPadOS 、 macOS 、 watchOS 等 Apple 平台间同步数据。
  4. 可扩展性:适合应对从小规模到大规模的用户群体。
  5. 后端服务:您无需自己搭建和维护后端服务器, CloudKit 为您处理存储和数据同步的复杂性。

是否勾选 Host in CloudKit 选项?

对于 Xcode 开发项目,你可以在任何时候添加对 CloudKit 服务的支持。这意味着,即使在创建项目时未勾选 Host in CloudKit ,后续也可以手动开启。

在创建项目时勾选, Xcode 会自动为您的项目配置 CloudKit 的相关设置,简化了初始化和配置过程。因此,建议在创建项目前规划好是否使用 CloudKit 服务。

若你想手动开启,可按照以下步骤启用 iCloud 和 CloudKit :

  1. 打开您的项目:在 Xcode 中打开您的项目。
  2. 选择项目目标:在 Xcode 的导航面板中,选择您的项目目标。
  3. 转到 “ Signing & Capabilities ” 标签:在顶部的选项卡中选择 “ Signing & Capabilities ”。
  4. 添加 Capability:点击 “+ Capability ” 按钮,搜索并选择 “ iCloud ”。
  5. 配置 iCloud 服务:勾选 “ CloudKit ”,并选择您想要使用的容器。通常,您会选择默认的容器,它与您的应用程序的 Bundle Identifier 相关联。

应用场景

选择 “Host in CloudKit” 是一个非常方便的方式,用于快速启动一个需要云存储和数据同步的 iOS 或 macOS 应用。这样可以让开发者专注于应用本身的功能开发,而无需过多担心后端数据存储的细节。

  • 多设备应用:适用于需要在 iPhone 、 iPad 和 Mac 等多种设备上运行的应用,确保用户数据在各个设备间同步。
  • 数据依赖型应用:如日记应用、健康追踪应用等,需要大量数据存储和同步的应用可以从 CloudKit 中受益。

更多资料