如何从Objective-C获取当前Macbook的UUID?

时间:2012-12-24 07:36:52

标签: macos uuid

SDK是否提供用于检索当前Macbook的UUID的API?

1 个答案:

答案 0 :(得分:1)

所以,如果您不关心新的AppStore规则等......请转到:

- (NSString *)getSystemUUID {
    io_service_t platformExpert = IOServiceGetMatchingService(kIOMasterPortDefault,IOServiceMatching("IOPlatformExpertDevice"));
    if (!platformExpert)
        return nil;

    CFTypeRef serialNumberAsCFString = IORegistryEntryCreateCFProperty(platformExpert,CFSTR(kIOPlatformUUIDKey),kCFAllocatorDefault, 0);
    if (!serialNumberAsCFString)
        return nil;

    IOObjectRelease(platformExpert);
    return (__bridge NSString *)(serialNumberAsCFString);;
}

请注意:

  • 您需要将IOKit.framework添加到项目中才能实现此目的 上班。
  • 此代码符合ARC标准;
  • 此代码是安全的,如果出现问题,它将返回nil NSString;
  • Apple不保证所有未来的系统都具有软件可读的序列号。
  • 开发人员不应该对此做出任何假设 序列号的格式,例如它的长度或字符 可能包含。