使用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
祝你好运。