SwiftUI macOS应用无法与iCloud同步问题求助
macOS 应用 NSPersistentCloudKitContainer 无法同步 iCloud 数据求助
我的iOS和iPadOS应用已上架App Store,采用iCloud同步数据,生产环境数据库运行完全正常。
同时开发的macOS应用使用NSPersistentCloudKitContainer,已正确设置合并策略,应用配置文件、证书、权限均无问题,且已通过Apple签名,但无法与iCloud同步,原因不明。
已做排查操作:
- 确认Mac的iCloud设置中该应用同步已开启
- 尝试退出并重新登录iCloud
- 重建应用
- 发现删除项目时应用反应延迟,疑似尝试连接,但通过TCPDump工具未检测到应用发起的连接请求
附上相关配置截图说明:
- Mac上的iCloud设置:显示该应用iCloud同步已开启
- 开发者网站中的配置文件:已配置对应iCloud容器
- 应用项目设置:容器/数据库配置与iOS应用完全一致
以下是persistance.swift中的代码:
import CoreData struct PersistenceController { static let shared = PersistenceController() static var preview: PersistenceController = { let result = PersistenceController(inMemory: true) let viewContext = result.container.viewContext for _ in 0..<10 { let newBolt = Jot(context: viewContext) newBolt.id = UUID() newBolt.text = "random" } do { try viewContext.save() } catch { let nsError = error as NSError fatalError("Unresolved error \(nsError), \(nsError.userInfo)") } return result }() let container: NSPersistentCloudKitContainer init(inMemory: Bool = false) { container = NSPersistentCloudKitContainer(name: "Simple_Bolt") let description = container.persistentStoreDescriptions.first description?.setOption(true as NSNumber, forKey: NSPersistentHistoryTrackingKey) description?.setOption(true as NSNumber, forKey: NSPersistentStoreRemoteChangeNotificationPostOptionKey) if inMemory { container.persistentStoreDescriptions.first!.url = URL(fileURLWithPath: "/dev/null") } container.loadPersistentStores(completionHandler: { (storeDescription, error) in if let error = error as NSError? { fatalError("Unresolved error \(error), \(error.userInfo)") } }) container.viewContext.mergePolicy = NSMergeByPropertyStoreTrumpMergePolicy container.viewContext.automaticallyMergesChangesFromParent = true } }
请问是否有人遇到过类似问题?能否提供解决方案?
感谢!
内容的提问来源于stack exchange,提问作者Aleph
相关产品推荐
相关产品推荐

