Ошибка CloudKit: не аутентифицирована на Mac, но я вошел в систему

Я использую 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: "Не аутентифицирован" (9); "Учетная запись iCloud не настроена"

Но я определенно вошел в iCloud. Есть идеи, что происходит?

1 ответ

Решение

Насколько я понимаю, при использовании CloudKit (для MacOS) он отличается от iOS, tvOS и watchOS. Для тестирования на другом компьютере этот компьютер должен быть зарегистрирован на вашем портале, учетная запись iCloud нового тестового компьютера также должна быть учетной записью разработчика, и, наконец, ваш двоичный файл должен быть настроен для работы в производственной среде вместо разработки.

Другие вопросы по тегам