我想知道如何使用获取设备的序列号IOKit
在iOS8中?我用了UIDevice+serialNumber
我可以在 iOS 6 和 7 中获取序列号。在 iOS 8 中,值为platformSerialNumber
来了nil
在下面一行中:
CFTypeRef platformSerialNumber = IORegistryEntryCreateCFProperty(platformExpertDevice,CFSTR("IOPlatformSerialNumber"), kCFAllocatorDefault, 0);
我在用 :https://gist.github.com/0xced/566994
注意:我的应用程序不会进入应用程序商店,它是内部的。所以我正在寻找更具体的永远不会改变的东西,无论是字符串还是整数
从 iOS 8 开始,硬件信息(例如序列号)受到保护。如果您想检索此值,则必须使用私有权利签署您的应用程序。我不确定是否可以在企业应用程序中使用私有权利,它们当然不能用于App Store应用程序,但这个问题带有越狱标签,所以我将提供一个解决方案。
如果您希望使用序列号来跟踪您公司拥有的设备,我建议您利用 Apple 移动设备管理 (MDM) 等服务。这使您可以访问有关设备的大量信息,并允许您远程管理它们。
如果您只是寻找一个永远不会因其他目的而改变的标识符,我建议您使用设备的 UDID。我能够在没有权限的情况下在我的设备上获取此内容,但这可能是由于我的手机已越狱。其他人告诉我,事实上,权利是必需的。有关这方面的更多信息可以在iPhone开发维基.
Code:
- (NSString *)udid
{
void *gestalt = dlopen("/usr/lib/libMobileGestalt.dylib", RTLD_GLOBAL | RTLD_LAZY);
CFStringRef (*MGCopyAnswer)(CFStringRef) = (CFStringRef (*)(CFStringRef))(dlsym(gestalt, "MGCopyAnswer"));
return CFBridgingRelease(MGCopyAnswer(CFSTR("UniqueDeviceID")));
}
权利:
<key>com.apple.private.MobileGestalt.AllowedProtectedKeys</key>
<array>
<string>UniqueDeviceID</string>
</array>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)