2014-03-29 75 views
2

使用iOS设备IOKit扩展功能,我可以获取设备的序列号。在iOS 7中,IOKit二进制文件不在IOKit文件夹中。有没有其他方法可以获得序列号?我想在越狱设备上使用它,如果我们打开它,Cydia可以显示序列号,但是我没有找到比IOKit更多的其他方式。在iOS 7上获取设备序列号

回答

2

则可以使用MobileGestalt库在你的makefile

xxx_LIBRARIES = MobileGestalt

然后声明得到:

OBJC_EXTERN CFStringRef MGCopyAnswer(CFStringRef key) WEAK_IMPORT_ATTRIBUTE; 
在你的头文件

然后获取您必须拥有的序列号SE:

CFStringRef SNumber = MGCopyAnswer(CFSTR("SerialNumber")); 
NSLog (@"Serial Number : %@", SNumber); 

如果你的意思是UDID,你必须使用:

CFStringRef UDNumber = MGCopyAnswer(CFSTR("UniqueDeviceID")); 
NSLog (@"UniqueDeviceID : %@", UDNumber); 
+0

比你!我现在使用MobileGestalt.h,易于使用,非常简单的解决方案!谢谢! – Cydie

3

Cydia是开源的http://gitweb.saurik.com/cydia.git。下面是它是如何在做了

static NSString *UniqueIdentifier(UIDevice *device = nil) { 
    if (kCFCoreFoundationVersionNumber < 800) // iOS 7.x 
     return [device ?: [UIDevice currentDevice] uniqueIdentifier]; 
    else 
     return [(id)$MGCopyAnswer(CFSTR("UniqueDeviceID")) autorelease]; 
}