使用Objective-C查找IMEI号码
我需要find一种方法来获得iPhone设备的IMEI号码。 这个问题不是重复的。 
我经历了几个论坛,包括SO,没有find答案。
 有人说苹果不允许开发者看到IMEI号码( SO post ),有人说用UDID ( SO post )。 有人说UDID已被弃用(在iOS 7中)。 
我需要知道以下几点:
  1.) Apple是否允许开发者检索设备的IMEI号码? 
2.)我怎样才能以编程方式做到这一点?
  3.)如果苹果不允许开发者收集IMEI号码,他们是否提供设备的其他唯一号码? 
  4.)一些build议使用Telephony framework 。 如果我这样做,苹果是否会拒绝我的申请? 
苹果不允许你再识别一个设备。
  UDID , MAC地址和所有其他设备标识符不再被Apple访问或允许。 
 苹果build议您使用UUID(您将需要存储您的自己), identifierForVendor 或 。 advertisingIdentifier
  苹果现在也拒绝使用advertisingIdentifier应用程序,并没有显示任何广告应用程序。 
任何获取IMEI号码的方法都是使用私有方法,这也是Apple不允许的。 而你的移动应用程序可能会因此而被拒绝。
不幸的是,没有办法得到一个永远保持不变的设备的唯一标识符。 Apple不再允许您访问UDID。 而在iOS 7中,所有设备的MAC地址都返回相同的值,因此不再有用。
但是,iOS现在可以访问两种标识符来识别设备。 他们是:
- 
供应商ID – [UIDevice identifierForVendor]。 这是来自同一供应商或公司的所有应用程序的唯一标识符。 只要用户至less有一个安装在其设备上的应用程序的应用程序,它将保持不变。 因此,如果您有3个应用程序,供应商ID将保持不变,除非用户卸载所有三个应用程序,然后重新安装。 如果你只有一个应用程序,这不是很有用 – 如果用户删除它,然后重新安装,它将会改变。
- 
广告商ID – [UIDevice advertisingIdentifier]。 这是用于广告目的的唯一标识符。 但是,如果您将其用于非广告目的,则大多数情况下,他们不会在乎。 在大多数情况下,即使用户删除并重新安装应用程序,广告标识符也不会改变。 但是,iOS设置中有一个选项可以重置广告标识符,这将改变它。 这是为了使用户可以select与自己收集的任何广告信息分离。 但是,这是一个非常先进的设置,我怀疑许多用户会这样做,这往往会成为一个问题。
你可以使用私人框架获得IMEI – 看到这个问题,但可能你的应用程序将被拒绝从应用程序商店。
如果你想获得一些在你的应用程序中使用的设备标识符,你必须使用UIDevice类中定义的uniqueIdentifier属性
(适用于iOS 6.0及更高版本):
 NSString *UDID = [[[UIDevice currentDevice] identifierForVendor] UUIDString]; 
如果你想获得IMEI,那么没有办法(在非越狱设备上)。 如果你想确定用户看看这个答案 。 请注意iOS7之前编写的所有文档/答案,因为事情已经改变。
你不能得到IMEI码,但可以使用uuid。 这是独一无二的
在迅速2
  let DeviceID = UIDevice.currentDevice().identifierForVendor!.UUIDString 
并迅速3
  let DeviceID = UIDevice.current.identifierForVendor!.uuidString 
goog运气。