如何重命名 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 容器?的主要内容,如果未能解决你的问题,请参考以下文章