每个iPhone/iPod Touch都有唯一的ID吗?

jan*_*mon 2 iphone cocoa-touch privacy

是否有像每个iPhone/iPod Touch的mac地址一样的唯一ID?

我是否必须要求用户传输此类唯一ID?

Vla*_*mir 7

是的,您可以使用UIDevice的uniqueIdentifier属性获取它:

唯一设备标识符是由各种硬件标识符(例如设备的序列号)组成的散列值.它保证对每个设备都是唯一的,但不能公开地绑定到用户帐户.例如,您可以使用它在中央服务器中存储游戏的高分或控制对已注册产品的访问.唯一设备标识符有时由其缩写UDID引用.

编辑:在iOS5中不推荐使用uniqueIdentifier属性,您现在不应该使用它.作为替代方案,您可以生成自己的唯一ID(例如,检查此问题).

同样在iOS6中,Apple添加了两种新方法来获取唯一标识符(作为NSUUID类的实例):

UIDevice -identifierForVendor:

对于来自同一设备上运行的同一供应商的应用,此属性的值相同.对于来自不同供应商的同一设备上的应用程序以及供应商的不同设备上的应用程序,将返回不同的值.

ASIdentifierManager -advertisingIdentifier:

与UIDevice的identifierForVendor属性不同,向所有供应商返回相同的值.此标识符可能会更改 - 例如,如果用户删除了设备 - 因此您不应对其进行缓存.

  • 这已被弃用.[见相关问题](http://stackoverflow.com/questions/9396187/method-uidevice-currentdevice-uniqueidentifier-is-not-allowed-any-more-i-ne) (2认同)