5

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

4

1 回答 1

4

所以,如果你不关心新的 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 不保证所有未来的系统都将具有软件可读的序列号。
  • 开发人员不应对序列号的格式做出任何假设,例如序列号的长度或可能包含的字符。
于 2013-06-25T16:43:04.797 回答