问题标签 [cloudkit-environments]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
210 浏览

macos - CloudKit 错误:在 Mac 上未经过身份验证,但我已登录

我使用 iCloud 作为在 Mac 应用程序中验证用户身份的一种方式。我使用一些代码来查找用户的recordName,这是一个独特的字符串,可以帮助我的应用程序知道他们是谁,而无需任何个人详细信息。

这在 Xcode 正在构建应用程序的 Mac 上非常有用。但是当我将我的应用程序二进制文件移动到其他计算机(我也登录到 iCloud)时,我得到了这个CKError

CKError 0x60800024e4f0:“未认证”(9);“未配置 iCloud 帐户”

但我肯定登录了 iCloud。知道发生了什么吗?

0 投票
1 回答
88 浏览

ios - 如何让多个用户同时更新我的​​一条 CloudKit 记录而不重叠?

我有一个“赞”按钮,所有用户同时使用它。它应该将云容器中类似记录的值加一,或减一。如何保证更新发生在记录的最后一个版本?我的意思是 Swift 3 中的代码是什么,它可以保证每个用户都将获得类似记录的最终值并应用增量,而其他用户在同一记录上发送相同的操作?对不起,我没有代码可以显示这个。

我读过CKErrorServerRecordChanged但我不知道如何在语法中使用它。如果您有代码示例,那就太好了。

我在 Firebase 中找到了它。它被称为事务,它会一直跟踪记录版本,直到将操作应用于最后一个版本,这样它就不会丢失任何针对该记录的用户操作。

0 投票
0 回答
328 浏览

atomic - 如何使用 CloudKit 防止“ATOMIC_ERROR”?

最近几天,我看到一些用户在 CloudKit 仪表板遥测视图中生成了许多标记为“ATOMIC_ERROR”的错误。我对此进行了一些搜索,但我只看到一些与 CloudKit JS 相关的文档。我不使用它,我只是在多平台 macOS/iOS/tvOS 应用程序中使用标准 CloudKit 库。

  • ATOMIC_ERROR 映射到哪个 CKError?CKErrorPartialFailure 也许?
  • 复制此错误的通用方法是什么?
  • 如何防止这个错误?

顺便说一句:我知道财产isAtomic。我总是将isAtomic批量更新中的属性设置为 false,因为我不需要一个区域中的多个记录之间的数据完整性。因此,我不希望出现与“原子”相关的错误。

0 投票
1 回答
241 浏览

cloudkit - 如何查看保存在 CloudKit Dashboard 中的值?

所以我能够在仪表板中保存数据,但我只能看到 Cloudkit 仪表板中的键。我如何真正看到键的值?

在此处输入图像描述

这是我的代码:

在此处输入图像描述

0 投票
1 回答
991 浏览

ios - 删除 CloudKit 记录 Swift 4

我在删除 CloudKit 记录时遇到问题。这是我第一次处理 API,显然有两种方法可以做到这一点。

保存记录是直截了当的,表面上也是如此,删除它们,除非这样做:

我知道使用 ackModifyRecordsOperation是另一种方法,但这是一个批处理操作。我一次只需要删除一条记录。这是我的代码:

这些单独或一起都不适合我。

0 投票
1 回答
325 浏览

ios - Cloudkit 中的即时模式

我想为我的应用程序使用 cloudkit 的私有数据库,所以为了设计,我正在寻找可以轻松地将我的模型类映射到 cloudkit 的东西,而无需任何额外的努力。

所以我在编写它的苹果文档中发现了一些有趣的东西,

在开发过程中,使用 CloudKit API 创建模式很容易。当您将记录对象保存到数据库时,会自动为您创建关联的记录类型及其字段。此功能称为即时模式,仅当您使用商店中出售的应用程序无法访问的开发环境时才可用。例如,在开发过程中,您可以使用存储在属性列表中的测试记录来填充 CloudKit 数据库。

但是我无法完全理解相同的概念或无法找到任何可靠的教程来实现这一点。

0 投票
1 回答
587 浏览

ios - 生产环境中的 CloudKit 自定义区域

iCloud 集成在开发环境中有效,在生产环境中失败。似乎自定义记录区域没有与记录类型一起部署。请允许我解释一下。

配置: 我们配置的 iCloud 开发模式有多个不同的自定义记录区域,每个区域都有自己的记录类型。在开发模式下,它可以完美运行——数据跨设备持续存在,所有记录及其区域都在 iCloud 仪表板上可见。

观察: 然而,当我们将模式部署到生产环境时,自定义记录区域被忽略了。记录类型已成功部署,但它们仍然无用,因为服务器不知道自定义记录区域。

得知每次生产应用程序尝试与 iCloud 同步时,您不会感到震惊,它会被告知(记录错误)记录类型不存在。

我们尝试了什么: 我们尝试从头开始重建 iCloud 容器,我们尝试在仪表板上手动创建自定义记录区域。都没有奏效。

此外,就在 1-2 周前,我们为不同的应用程序部署了一个(看似)相同的架构,并且它没有任何问题就成功了。

有没有人对问题可能是什么以及如何解决有任何想法?

0 投票
1 回答
243 浏览

icloud - CloudKit“部署到生产”不显示记录更改,“部署”灰显

当我在 CloudKit 中单击“部署到生产”时,它看起来像这样:icloud 部署到生产屏幕

如您所见,索引有两个更新。但问题是,这不是我对架构所做的唯一更改——某些记录类型上还有新字段。他们根本没有出现。

更重要的是,即使我只想部署这两个索引更改,部署按钮也是灰色的!这是怎么回事?如何说服 CloudKit 承认我所做的更改?

0 投票
0 回答
63 浏览

ios - 如何列出 iCloud 帐户上的所有设备?

使用 Swift/Cloudkit,我怎样才能简单地列出连接在我的 iCloud 帐户中的所有设备名称?我只想要帐户中所有设备名称的列表。

0 投票
0 回答
49 浏览

ios - CloudKit delete records at specific date time

I want to delete a record in a shared cloud container at a specific date time. When the record is created I know when it should be deleted.

Is there a way to create a trigger that will handle the work for me?

The only solution I came up with is:

  1. Add code to the app that will delete the records
  2. Use a server application to query and delete the records

The first solution is not preferred since it won't work if the user does not start the app. The second solution seems to be "overkill".

Is there a way to register a trigger on the CloudKit dashboard?