iCloud、CloudKit、iOS 8、Apple id

Posted

技术标签:

【中文标题】iCloud、CloudKit、iOS 8、Apple id【英文标题】:iCloud, iCloudKit, iOS 8, Apple id 【发布时间】:2014-07-31 13:04:51 【问题描述】:

据我了解,现在无法在 ios 7 中获取 Apple ID。 iOS 8 对 iCloud 进行了许多修改并添加了 iCloudKit。我能否从 API 获取 Apple id 并将其用于例如在自己的服务器中注册?

【问题讨论】:

严重怀疑,这将是窃取某人苹果 ID 的一种非常简单的方法 【参考方案1】:

不,您无法获取用户的 Apple ID。

可以用 CloudKit 做的是获得一个不透明的用户记录 ID。对于您的应用在所有设备上的用户,此对象将是相同的,但对于其他应用或其他用户而言,它会有所不同。您可以将其保存在您的服务器上,并将其用作“使用 CloudKit 登录”功能。这在 WWDC 2014 intro to CloudKit 会话中有所描述。基本上,您在CKContainer 上使用fetchUserRecordIDWithCompletionHandler: 方法。但是没有办法自动将它与 Apple ID 相关联——您仍然需要询问用户是否需要。

【讨论】:

【参考方案2】:

我不知道。这有点“侵犯”用户的隐私,因为你会在未经他同意的情况下获得他的 Apple ID(这是一封电子邮件)。

我使用 Parse SDK 所做的是让用户匿名登录我的 Parse 应用程序,然后将他自动生成的用户 ID 保存在 iCloud 键值容器中。每当用户删除应用程序并重新安装它(或简单地安装在他的另一台设备上)时,我的应用程序知道他有一个保存在 iCloud 上的用户名,然后使用它而不是创建一个新用户。这样,我就可以在不侵犯任何人隐私的情况下跟踪我的用户。

【讨论】:

以上是关于iCloud、CloudKit、iOS 8、Apple id的主要内容,如果未能解决你的问题,请参考以下文章

App 启动时如何知道 CloudKit 的 iCloud 数据同步操作已经结束了?

App 启动时如何知道 CloudKit 的 iCloud 数据同步操作已经结束了?

更改 iOS 模拟器 iCloud 帐户

来自 iCloud/CloudKit 的序列号

CloudKit - 无法从 iCloud 检索数据

清除/清除 CloudKit 容器的所有用户 iCloud 记录