我正在开发一个原生iOS应用程序,我对Objective-C和apple设备开发都有点新手。
在我的应用中,我需要以独特的方式识别用户。我认为最好的解决方案是获取当前的Apple ID并将其存储在在线数据库中以用于我的目的。唯一的问题是用户可以更改它。因此,我认为Apple必须有另一个标识符来唯一区分实际帐户。
有什么方法可以得到那个吗?我错过了什么?有些班级?
提前致谢... 皮特
答案 0 :(得分:12)
所有IOS设备都有唯一标识符UDID,可通过以下方式访问:
[[UIDevice currentDevice] uniqueIdentifier]
但Apple不鼓励这样做,有些应用程序因使用此功能而被拒绝,主要是因为苹果不希望您将设备跟踪或视为独特,因为您可以将其出售或与其他人交换。
你可以做的是创建一个UUID which is a unique identifier并将其存储在钥匙链中,这意味着即使应用程序被删除,这个唯一ID仍将保留在手机中,它只会在您执行此操作时消失工厂重置,这是苹果想要的。
另一个解决方案是使用外部库,它会在设备基础上生成uniqueID,例如openUDID或UIDevice-with-UniqueIdentifier-for-iOS-5
希望这有帮助!
答案 1 :(得分:2)
无法获得唯一的用户标识符(除非可能通过礼貌地要求用户提供可选的未经验证的响应)。 Apple的隐私政策似乎不允许他们以任何方式公开app用户的身份信息。
iOS设备UDID不仅被Apple弃用,而且与用户关系不大(因为设备可能已经更改了所有者,并且单个用户可以拥有多个具有不同UDID的设备)。
答案 2 :(得分:2)
[[UIDevice currentDevice] uniqueIdentifier]
现已已弃用。
你应该改用:
UIDevice *device = [UIDevice currentDevice];
NSUUID *uniqueIdentifier = [device identifierForVendor];