参考:http://www.cnblogs.com/qingjoin/p/3549325.html和html
http://zhidao.baidu.com/link?url=qa-f3H1jPenujahPoQGPCuGni4rtwmOsOkr46zrcB85S73b3g8OKwGfnzymIhTkfJPc5ZlRH5Fww2Xi7XttypySVXzKoAMcvUsreUjVGr7m网络
MAC地址不能再用来设别设备 还有一个生成iOS设备惟一标示符的方法是使用iOS设备的Media Access Control(MAC)地址。一个MAC地址是一个惟一的号码,它是物理网络层级方面分配给网络适配器的。这个地址苹果还有其余的名字,好比说是硬件地址(Hardware Address)或是Wifi地址,都是指一样的东西。 有不少工程和框架都使用这个方法来生成惟一的设备ID。好比说ODIN。然而,苹果并不但愿有人经过MAC地址来分辨用户,因此若是你在iOS7系统上查询MAC地址,它如今只会返回02:00:00:00:00:00。 如今苹果明确的代表你应该使用-[UIDevice identifierForVendor]或是-[ASIdentifierManager advertisingIdentifier]来做为你框架和应用的惟一标示符。坦白的来讲,应对这些变化也不是那么的难,见如下代码片断: NSString *identifierForVendor = [[UIDevice currentDevice].identifierForVendor UUIDString]; NSString *identifierForAdvertising = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString]; 每种方法都适配一种特别的用法: identifierForVendor对供应商来讲是惟一的一个值,也就是说,由同一个公司发行的的app在相同的设备上运行的时候都会有这个相同的标识符。然而,若是用户删除了这个供应商的app而后再从新安装的话,这个标识符就会不一致。 advertisingIdentifier会返回给在这个设备上全部软件供应商相同的 一个值,因此只能在广告的时候使用。这个值会由于不少状况而有所变化,好比说用户初始化设备的时候便会改变。