通过实现 CloudKit 的 CKShare 功能以我的方式工作。我已经设法访问该部分以共享记录(例如通过电子邮件),并且还可以确认用户收到了邀请。问题是当用户接受记录时,应用程序会弹出但没有任何反应。为了帮助这里是应用程序的一些关键元素,如果我错了,请告诉我。
1) 该应用程序不需要用户使用他们的 Apple ID 登录
2)当我使用电缆将手机连接到计算机时(又名尚未使用 TestFlight),我正在通过直接构建在两部不同手机(具有单独的 Apple ID)上的应用程序来测试应用程序。
3)我已经在 CloudkitDashboard 中查看,我可以看到已共享的记录,也可以看到已共享的记录,但是我没有看到用户电子邮件,而是我发送了邀请,我看到了我的电子邮件以及记录哈哈的事实被“接受”
4) 我在 Info.plist 文件中添加了 CKSharingSupported 键。
5) AppDelegate.swift 文件中用于接受 CKShare 的代码如下。我希望您注意字符串“User Accepted the Share”永远不会被打印出来,这让我认为这部分代码永远不会运行。
func application(_ application: UIApplication, userDidAcceptCloudKitShareWith cloudKitShareMetadata: CKShare.Metadata) {
print("User Accepted the Share")
let acceptShareOperation: CKAcceptSharesOperation = CKAcceptSharesOperation(shareMetadatas: [cloudKitShareMetadata])
acceptShareOperation.qualityOfService = .userInteractive
acceptShareOperation.perShareCompletionBlock = {meta, share,
error in
print("The Record Share was Accepted")
}
acceptShareOperation.acceptSharesCompletionBlock = {
error in
/// Send your user to where they need to go in your app
let viewController: SNPDetailsViewController = self.window?.rootViewController as! SNPDetailsViewController
viewController.fetchShare(cloudKitShareMetadata)
}
CKContainer(identifier:
cloudKitShareMetadata.containerIdentifier).add(acceptShareOperation)
}
任何能指导我哪里错的见解,将不胜感激。
感谢您的时间!