我想通过代码唯一地识别我的mac系统。我在关于这台Mac上找到了硬件UUID。 那么如何以编程方式从MAc OS X访问唯一的uuid。
如果对我的问题有任何其他建议,请提供给我。
答案 0 :(得分:19)
所以,如果您不关心新的AppStore规则等......请转到:
- (NSString *)getSystemUUID {
io_service_t platformExpert = IOServiceGetMatchingService(kIOMasterPortDefault,IOServiceMatching("IOPlatformExpertDevice"));
if (!platformExpert)
return nil;
CFTypeRef serialNumberAsCFString = IORegistryEntryCreateCFProperty(platformExpert,CFSTR(kIOPlatformUUIDKey),kCFAllocatorDefault, 0);
IOObjectRelease(platformExpert);
if (!serialNumberAsCFString)
return nil;
return (__bridge NSString *)(serialNumberAsCFString);;
}
请注意:
IOKit.framework
添加到项目中才能实现此目的
上班。 nil
NSString
; 答案 1 :(得分:3)
从这里开始:https://stackoverflow.com/a/2754563/610351
void get_platform_uuid(char * buf, int bufSize) {
io_registry_entry_t ioRegistryRoot = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/");
CFStringRef uuidCf = (CFStringRef) IORegistryEntryCreateCFProperty(ioRegistryRoot, CFSTR(kIOPlatformUUIDKey), kCFAllocatorDefault, 0);
IOObjectRelease(ioRegistryRoot);
CFStringGetCString(uuidCf, buf, bufSize, kCFStringEncodingMacRoman);
CFRelease(uuidCf);
}
您可以使用简单的NSString *转换来替换CFStringGetCString。