使用iCloud Apple ID匿名登录应用程序

根据CloudKit概述 :

CloudKit还允许您的用户使用他们的iCloud Apple ID匿名登录您的应用,而无需共享他们的个人信息。

我在他们的文档中找不到关于此function的任何其他内容。 我已经有了一个带有我自己后端的应用程序,因此我不需要任何CloudKit提供的后端即服务function,但我想利用用户登录iCloud帐户,与我们目前使用Facebook和Twitter的方式大致相同。

是否可以使用CloudKit,或者您是否还必须利用其BAASfunction才能利用登录?

根据他们在WWDC上讨论的内容,您可以使用fetchUserRecordIDWithCompletionHandler:上的fetchUserRecordIDWithCompletionHandler:方法执行此操作。 返回与当前用户对应的CKRecordID 。 此ID在各设备之间保持稳定,但每个应用都有所不同 – 因此,如果同一个人在多个设备上使用您的应用,您的应用将在各处获得相同的结果,但其他应用会从您的应用获得不同的结果。

一旦你有了CKRecordID你可以使用CKRecordID查找有限的其他用户数据(他们的名字和电子邮件) fetchRecordWithID:completionHandler: . 此请求将触发用户的权限警报,因此只有在允许的情况下才能获取该请求。

这不要求您在CloudKit中使用任何其他内容。 它确实要求用户实际在设备上配置了iCloud帐户。

只有在调用-[CKContainer requestApplicationPermission:CKApplicationPermissionUserDiscoverability...]时才会弹出权限警报。

如果用户授予权限( CKApplicationPermissionStatusGranted ),则可以通过运行CKDiscoverUserInfosOperation获取用户的名字和姓氏。

请求可发现性意味着您可以看到用户的名字和姓氏,并且容器的任何其他用户都可以通过电子邮件地址找到他们的用户记录ID,或通过用户记录ID查找他们的姓名。