有没有办法识别iDevice用户?

时间:2011-12-25 21:18:23

标签: objective-c ios ios5

我正在开发一个原生iOS应用程序,我对Objective-C和apple设备开发都有点新手。

在我的应用中,我需要以独特的方式识别用户。我认为最好的解决方案是获取当前的Apple ID并将其存储在在线数据库中以用于我的目的。唯一的问题是用户可以更改它。因此,我认为Apple必须有另一个标识符来唯一区分实际帐户。

有什么方法可以得到那个吗?我错过了什么?有些班级?

提前致谢... 皮特

3 个答案:

答案 0 :(得分:12)

所有IOS设备都有唯一标识符UDID,可通过以下方式访问:

[[UIDevice currentDevice] uniqueIdentifier]

但Apple不鼓励这样做,有些应用程序因使用此功能而被拒绝,主要是因为苹果不希望您将设备跟踪或视为独特,因为您可以将其出售或与其他人交换。

你可以做的是创建一个UUID which is a unique identifier并将其存储在钥匙链中,这意味着即使应用程序被删除,这个唯一ID仍将保留在手机中,它只会在您执行此操作时消失工厂重置,这是苹果想要的。

另一个解决方案是使用外部库,它会在设备基础上生成uniqueID,例如openUDIDUIDevice-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];

UIDevice Class Reference