我必须在客户端应用中向服务器提供设备的唯一标识符。
在StackOverflow周围,recommended commonly使用设备的mac地址,因为从iOS 5开始不推荐使用[[UIDevice currentDevice] uniqueIdentifier]
属性。
所以,当我按照SO的答案中提供的说明尝试检索设备的mac地址时,我得到了两个设备的相同地址,这显然是错误的: 02:00:00: 00:00:00 。
多次检查代码,但似乎是正确的。什么可能导致这种问题?
答案 0 :(得分:12)
对不起伙计们,我不够专心。 当我谈论设备时,我应该提到其中一个实际上是一个模拟器( iOS 7 ),另一个是 iOS 7 的设备。 所以现在我在Apple documentation找到了:
在iOS 7及更高版本中,如果您要求提供iOS设备的MAC地址,系统将返回值02:00:00:00:00:00。如果需要识别设备,请改用UIDevice的identifierForVendor属性。 (需要为自己的广告目的使用标识符的应用应考虑使用ASIdentifierManager的advertisingIdentifier属性。)
所以,identifierForVendor正是我想要的。遗憾的是,现在在代码中,开发人员应该为不同的iOS版本提供支持,即使对于那件事也是如此。
答案 1 :(得分:0)
根据这个
“ MAC地址是一种基于硬件的标识符,长期以来一直是广告客户为每个设备提供永久唯一标识符的一种方式,提供稳定的跟踪选项作为争议的替代方案 - 困扰着UDID,“Palli解释道。 “然而,同样关于UDID的隐私问题同样适用于MAC地址 - 它只是收到的宣传力度较低,”他补充道。现在,对于那些尚未切换到IDFA的人来说,迁移的窗口正在关闭。
根据移动应用营销公司Fiksu收集的数据,这可以帮助应用发布商进行用户获取工作,iOS 7设备 - 此时所有测试版测试人员始终返回的是02:00的MAC地址: 00:00:00:00 即可。例如,该“虚拟”地址相当于电话号码555-1212。 Fiksu的移动应用营销技术平台负责人Craig Palli表示,本周早些时候,它开始出现在Fiksu日志中的数以万计的独特iOS 7设备中。
答案 2 :(得分:-1)
请使用以下的UDID链接,因为不能在2013年5月之前直接使用 https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5/tree/master/UIDeviceAddition