fetchUserRecordID Cloudkit 错误:无法获取容器配置

问题描述 投票:0回答:2

我的应用程序是用 SwiftUI 编写的,使用 Cloudkit 来存储核心数据中的记录。我可以使用

@FetchRequest
获取记录来填充列表。现在我想获取当前用户的 iCloud ID 并将其与另一个全局 ID 进行比较,但我遇到了问题
fetchUserRecordID
...

在查看 Cloudkit Dashboard 的

Users
记录类型时,我能够看到用户记录。但每次运行下面的代码时,我都会收到以下错误:“无法从容器“iCloud.com.my_container_name”的服务器获取容器配置”

我正在运行 Xcode 12.2 Beta 4

ContentView.swift

struct ContentView: View {
    
    @Environment(\.managedObjectContext) private var viewContext

    init() {
        isCreator()
    }
    
    
    var body: some View {
   
      Text("Hello World")   

    }

    func isCreator() {
        
        CKContainer.default().fetchUserRecordID(completionHandler: { (recordId, error) in
            
            guard let record = recordId, error == nil else {
                print("Error: \(error!.localizedDescription)")
                return
            }
            
            print("Found record")
            // Now do something with record...
            
        })
        
    }

} // end ContentView
core-data swiftui cloudkit ios14
2个回答
5
投票

使用

CKContainer(identifier: "iCloud.name_of_your_container")
代替
CKContainer.default()

我的问题是我将 Cloudkit 容器命名为

testapp
,而我的应用程序的捆绑 ID 为
com.my_team_name.testapp
。运行 Cloudkit 查询时,我不断收到此错误:

Couldn't get container configuration from the server for container "iCloud.com.my_team_name.testapp"

查看 Cloudkit 仪表板后,我意识到我的容器名称实际上只是“testapp”。

一旦我将代码更改为

CKContainer(identifier: "iCloud.testapp")
,它就工作得很好。


0
投票

它对我有用。谢谢你,兄弟!尊重

© www.soinside.com 2019 - 2024. All rights reserved.