如何重命名 iCloud 容器?

Posted

技术标签:

【中文标题】如何重命名 iCloud 容器?【英文标题】:How to rename an iCloud container? 【发布时间】:2021-03-21 14:52:11 【问题描述】:

我在 TARGETS 的 Signing & Capabilities 部分为我的 ios 应用创建了一个 iCloud 容器,名为:iCloud.myApp

我在使用 iCloud 时遇到了很多问题,我在 this article 中发现:

应用的捆绑包 ID 和 iCloud 容器必须匹配,并且它们必须 存在于开发者帐户中。例如,如果捆绑标识符 是 com.myDomain.myApp,那么 iCloud 容器名称应该是 iCloud。加上捆绑包 ID:iCloud.com.myDomain.myApp。

所以问题是如何以及在何处将其从 iCloud.myApp 更改为 iCloud.com.myDomain.myApp

签名和功能中的容器不可编辑。我在CloudKitDashboard 中也找不到它。还是我应该创建一个新容器?

【问题讨论】:

【参考方案1】:

一旦创建容器,您就不能编辑它的名称,也不能删除它(这很不幸;我在几年前提交了一份雷达报告)。

如果您已经创建了iCloud.myApp,您可以使用它!没有真正需要更改以匹配捆绑标识符。这只是一个命名指南。 Apple 允许您创建和使用任何可用的容器 ID。我正在使用我自己的iCloud.appName 标识符。 ?

在您的代码中,只需指向您的容器 ID:

let container = CKContainer(identifier: "iCloud.myApp")

...然后确保它在 Xcode 中的 Signing & Capabilities 中被选中。

如果你真的想用新名称创建一个新的,那么你可以在你的 Apple 开发者帐户设置中这样做:https://developer.apple.com/account/resources/identifiers/list/cloudContainer

【讨论】:

谢谢克利夫顿。这真有趣。因此,我链接到的本教程对此是错误的。你知道 Apple 如何让容器 ID 独一无二吗?如果您创建了 iCloud.myApp,我不能创建具有相同名称的新容器吗?或者也许 2 个开发者可以创建 2 个同名的容器,但每个容器都与这个开发者相关联? 是的,我已经在使用容器了。使用“iCloud.myApp”命名约定。但这适用于具有一个 AppleID 的设备,但不适用于具有另一个 AppleID 的设备。而且我遇到了很多错误。我在想这是因为容器名称,但也许是别的东西:/ 据我所知,如果名称已经存在,Apple 会在创建容器 ID 时给您一个错误,从而强制执行容器 ID 的唯一性。我相当确定这些 ID 在所有 CloudKit 中都是全球唯一的,这就是 Apple 建议使用 com.example.yourApp 格式的原因。 请务必检查您在 iCloud.myApp 上的容器权限,并确保两个 Apple ID 都可以完全访问它。您可以在 CloudKit 仪表板中检查这些权限。我目前共享开发人员对具有多个 Apple ID 的容器的访问权限,没有任何问题。 谢谢克利夫顿。我认为权限是指我团队中其他人的权限。所以其他人可以编辑我的 iCloud 容器。我的意思是 iCloud 同步在我的设备上工作,但在其他用户的设备上它不同步。用户,而不是开发人员。我想我需要为此发布一个单独的问题。

以上是关于如何重命名 iCloud 容器?的主要内容,如果未能解决你的问题,请参考以下文章

如何在带有电容器的离子中重命名平台“App”

Swift UIAlertController 文件重命名操作

重命名存档工件的容器

iCloud 容器创建唯一的文件名

您必须删除(或重命名)该容器才能重用该名称 [重复]

js 如何批量重命名文件