CKContainer.discoverAllIdentities(completionHandler:), DiscoverUserIdentity(recordID: - обработчик завершения возвращает CKUserIdentity, но .lookupInfo всегда равен нулю, даже если контакты содержат адрес электронной почты, телефон и т. д. Другие свойства, такие как hasiCloudAccount, userRecordID, nameComponents, в порядке. Эта проблема только началась. с последним выпуском Swift 3.1 Кто-нибудь знает, является ли это предполагаемым поведением, поскольку я не смог найти никаких ссылок на изменения CloudKit в примечаниях к выпуску, но это похоже на конфиденциальность.
После дальнейшего расследования выяснилось, что эта проблема может быть связана с недавним обновлением iOS 10.3. При запуске приложения на iPhone 5 с версией 10.2.1 проблема не возникает, и lookupInfo правильно содержит адрес электронной почты.
Представленная ошибка Apple: 31377433
НОВОЕ: Кроме того, если я попытаюсь получить доступ к информации через CKDiscoverAllUserIdentitiesOperation, в частности, userIdentityDiscoveredBlock -> user.nameComponents, результатом будет «пустая строка» для идентификатора Apple, связанного с пользователями младше 12 лет (и, возможно, в «Семейном доступе» план). Я не нашел никакой информации об этом, и поддержка разработчиков Apple также не предложила никакой помощи.