每个 iPhone / iPod Touch 是否有唯一的 ID,例如 mac 地址?
我是否必须要求用户授予传输此类唯一 ID 的权限?
是的,您可以使用 UIDevice 的 uniqueIdentifier 属性获取它:
唯一设备标识符是由各种硬件标识符(例如设备的序列号)组成的哈希值。它保证对每台设备都是唯一的,但不能公开绑定到用户帐户。例如,您可以使用它在中央服务器中存储游戏的高分或控制对注册产品的访问。唯一设备标识符有时通过其缩写 UDID 来表示。
编辑: uniqueIdentifier 属性在 iOS5 中已弃用,您现在不应该使用它。作为替代方案,您可以生成自己的唯一 ID(例如检查此问题)。
同样在 iOS6 中,Apple 添加了 2 个新方法来获取唯一标识符(作为NSUUID类的实例):
UIDevice -identifierForVendor:
对于来自同一供应商并在同一设备上运行的应用,此属性的值相同。对于来自不同供应商的同一设备上的应用程序以及不同设备上的应用程序(无论供应商)返回不同的值。
ASIdentifierManager -advertisingIdentifier:
与 UIDevice 的 identifierForVendor 属性不同,向所有供应商返回相同的值。这个标识符可能会改变——例如,如果用户擦除了设备——所以你不应该缓存它。