我需要访问2个不同的cloudkit数据库,并将信息从一个复制到另一个(包括图像)。其中一个数据库是我的,另一个是我可以访问的朋友。我似乎无法弄清楚如何在一个应用程序中访问这两个,所以我可以从一个下载信息并将其上传到另一个。我可以一次做一个,但这对我没有好处。
以下代码可以访问其中一个容器,但如何切换到其他帐户以访问其他容器?
var container = CKContainer(identifier: "iCloud.com.lastname.firstname.MyAppName")
var publicDatabase: CKDatabase?
var currentRecord: CKRecord?
var publicDB = CKContainer.default().publicCloudDatabase
我应该使用手机应用程序执行此操作还是应该创建mac应用程序?
谢谢!
答案 0 :(得分:1)
不允许应用从其他开发者访问其他应用的CloudKit容器。如果可能的话,这将是一个可怕的安全问题。
只有当两个容器来自同一个开发人员时,应用才能访问多个容器。
所以对你的问题的简短回答是,你想做的事情是不可能的(谢天谢地)。
答案 1 :(得分:1)
由于这两个应用来自不同的开发者帐户,因此无法访问彼此的容器。
如果您有权访问这两个开发者帐户,则有几种方法可以迁移数据:
答案 2 :(得分:0)
Apple在2016年WWDC上宣布了共享数据库功能,请参阅此视频。
https://developer.apple.com/videos/play/wwdc2016/226/
共享云目录记录的详细信息大约在20分钟左右进入视频。简而言之,您可以与其他指定用户共享特定记录。我还没有使用新设施,但看起来很有希望。
你的另一个选择是使用像DropBox这样的东西;使用API创建要分享的图像的公共链接。
https://dropbox.github.io/SwiftyDropbox/api-docs/latest/
哪个更好;我不知道。使用我当前的应用程序,当涉及到小块数据时,它们是相同的。但是当谈到处理更大的块时,cloudKit中的资产就会说话。 DropBox似乎有我的优势[2016年12月],至少它更快,明显更快。