iCloud 在 watchOS 3 上使用不同的容器
iCloud uses a different container on watchOS 3
我正在尝试让 iCloud 在 iPhone 和 Apple Watch 之间工作(在 watchOS 3 上使用 CloudKit)。我已将 Watch Extension 中的云容器指定为与 iOS 目标中的云容器相同,但是当 运行 应用程序时,我从我所做的查询中得到此错误:
Failure retrieving: Optional(<CKError 0x17d45cf0: "Unknown Item" (11/2003); server message = "did not find record type recordTypeId="Recommendation""; uuid = 37D53C78-FF19-4CE3-80BD-C1990F0135A2; container ID = "iCloud.mathsrobot.MathsRobot-LearnMaths.watchkitapp.watchkitextension">)
从容器 ID 可以看出它没有使用 iOS 应用程序容器,应该是 iCloud.mathsrobot.MathsRobot-LearnMaths
。我怎样才能让它为 iOS 应用程序使用 iCloud 容器?
iOS 目标能力截图 Main iOS target capabilities with iCloud
观看目标能力截图 Watch Extension target capabilities with iCloud
很可能您在代码中使用了默认容器...
container = CKContainer.default()
这将默认为 watchOS 应用程序的容器 ID,即使您在 Xcode 中设置它也是如此。你应该尝试做这样的事情......
container = CKContainer(identifier: "iCloud.mathsrobot.MathsRobot-LearnMaths")
我正在尝试让 iCloud 在 iPhone 和 Apple Watch 之间工作(在 watchOS 3 上使用 CloudKit)。我已将 Watch Extension 中的云容器指定为与 iOS 目标中的云容器相同,但是当 运行 应用程序时,我从我所做的查询中得到此错误:
Failure retrieving: Optional(<CKError 0x17d45cf0: "Unknown Item" (11/2003); server message = "did not find record type recordTypeId="Recommendation""; uuid = 37D53C78-FF19-4CE3-80BD-C1990F0135A2; container ID = "iCloud.mathsrobot.MathsRobot-LearnMaths.watchkitapp.watchkitextension">)
从容器 ID 可以看出它没有使用 iOS 应用程序容器,应该是 iCloud.mathsrobot.MathsRobot-LearnMaths
。我怎样才能让它为 iOS 应用程序使用 iCloud 容器?
iOS 目标能力截图 Main iOS target capabilities with iCloud
观看目标能力截图 Watch Extension target capabilities with iCloud
很可能您在代码中使用了默认容器...
container = CKContainer.default()
这将默认为 watchOS 应用程序的容器 ID,即使您在 Xcode 中设置它也是如此。你应该尝试做这样的事情......
container = CKContainer(identifier: "iCloud.mathsrobot.MathsRobot-LearnMaths")