CloudKit Error: Not Authenticated on Mac but I'm Signed In

CloudKit Error: Not Authenticated on Mac but I'm Signed In

我正在使用 iCloud 作为在 Mac 应用程序中验证用户身份的一种方式。我使用一些代码来查找用户的 recordName,这是一个独特的字符串,可以帮助我的应用知道他们是谁,而无需任何个人详细信息。

func fetchCloudKitAccessToken(completion: @escaping (_ accessToken: String?, _ error: Error?) -> Void) {

  let container = CKContainer(identifier: "iCloud.my.container.here")

  container.fetchUserRecordID { (recordID, error) in
    let token = recordID?.recordName
    completion(token, error)
  }
}

这对我的 Mac 非常有用,Xcode 正在构建应用程序。但是当我将我的应用程序二进制文件移动到其他计算机(我也登录到 iCloud)时,我得到这个 CKError:

CKError 0x60800024e4f0: "Not Authenticated" (9); "No iCloud account is configured"

但我确实登录了 iCloud。知道发生了什么事吗?

据我了解,使用 CloudKit(对于 MacOS)不同于 iOS、tvOS 和 watchOS。 要在另一台计算机上测试,这台计算机必须在您的门户中注册,新测试计算机的 iCloud 帐户也必须是开发人员帐户,最后您的二进制文件应在生产环境中配置为 运行 而不是开发环境.