Ios8 如何在iOS 8中获取设备序列号?
下面的方法使用IOKit获取设备序列号,但现在使用ios8它会使应用程序崩溃。有人知道这方面的工作吗?我有大量公司拥有的公共可用设备,这些设备带有企业应用程序,不打算提交app store,它们使用序列号来唯一标识设备Ios8 如何在iOS 8中获取设备序列号?,ios8,device,iokit,serial-number,Ios8,Device,Iokit,Serial Number,下面的方法使用IOKit获取设备序列号,但现在使用ios8它会使应用程序崩溃。有人知道这方面的工作吗?我有大量公司拥有的公共可用设备,这些设备带有企业应用程序,不打算提交app store,它们使用序列号来唯一标识设备 CFTypeRef platformSerialNumber = IORegistryEntryCreateCFProperty(platformExpertDevice, CFSTR("IOPlatformSerialNumber"), kCFAllocatorDefault,
CFTypeRef platformSerialNumber = IORegistryEntryCreateCFProperty(platformExpertDevice, CFSTR("IOPlatformSerialNumber"), kCFAllocatorDefault, 0);
if (CFGetTypeID(platformSerialNumber) == CFStringGetTypeID())
{
serialNumber = [NSString stringWithString:(__bridge NSString*)platformSerialNumber];
CFRelease(platformSerialNumber);
}
IOObjectRelease(platformExpertDevice);
它在具有EXC\u BAD\u访问权限的CFGetTypeID上崩溃
控制台日志::-[NSKeyedUnarchiver initForReadingWithData::]:数据为空它崩溃,因为platformSerialNumber为零
从iOS 8 Beta 5开始,IOPlatformSerialNumber属性被删除,检索其值的调用现在返回nil。可能希望显示正在崩溃的代码。粗略地用谷歌搜索似乎不太可能。苹果认为这是对隐私的侵犯,所以他们不支持这一功能。按用户标识可能会更好。请更正问题所在的IORegistryEntryCreateCFProperty