下面的方法使用IOKit来获取设备序列号,但现在使用iOS 8会使应用程序崩溃。有没有人知道这个工作?我拥有大量公用设备的公开可用设备,其中包含的企业应用程序不适用于应用商店提交,并且它们使用序列号来唯一标识设备。你如何获得iOS 8的设备序列号?
CFTypeRef platformSerialNumber = IORegistryEntryCreateCFProperty(platformExpertDevice, CFSTR("IOPlatformSerialNumber"), kCFAllocatorDefault, 0);
if (CFGetTypeID(platformSerialNumber) == CFStringGetTypeID())
{
serialNumber = [NSString stringWithString:(__bridge NSString*)platformSerialNumber];
CFRelease(platformSerialNumber);
}
IOObjectRelease(platformExpertDevice);
它使用EXC_BAD_ACCESS在CFGetTypeID上崩溃。
控制台日志:* - [NSKeyedUnarchiver initForReadingWithData:]:数据是NULL
可能想显示崩溃的代码。 – DrC 2014-09-19 19:54:32
谷歌搜索的尝试似乎并不乐观。苹果认为这是一种隐私侵扰,所以他们不支持它作为一种能力。用户可能会更好地识别。 – 2014-09-19 19:57:30