OGeek|极客世界-中国程序员成长平台

标题: objective c - Find Mac OSX serial number [打印本页]

作者: 菜鸟教程小白    时间: 2022-6-22 20:04
标题: objective c - Find Mac OSX serial number

How to find the Mac OSX serial number.

Sometimes it is required to get serial number of a mac, and you validate on that.

I needed the same, few years back, when I developed a plugin for OsiriX. I was asked to release it in such a way, only few systems can use that plugin.

If we get any better solution than this, that will be quite helpful for all of us.



Best Answer-推荐答案


The following code is mainly copied from Technical Note TN1103, with small modifications to return an NSString and to make it compile with ARC:

#include <IOKit/IOKitLib.h>

- (NSString *)getSerialNumber
{
    NSString *serial = nil;
    io_service_t platformExpert = IOServiceGetMatchingService(kIOMasterPortDefault,
                                     IOServiceMatching("IOPlatformExpertDevice"));
    if (platformExpert) {
        CFTypeRef serialNumberAsCFString =
        IORegistryEntryCreateCFProperty(platformExpert,
                                        CFSTR(kIOPlatformSerialNumberKey),
                                        kCFAllocatorDefault, 0);
        if (serialNumberAsCFString) {
            serial = CFBridgingRelease(serialNumberAsCFString);
        }

        IOObjectRelease(platformExpert);
    }
    return serial;
}

You have to add the IOKit.framework to your build settings.






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) Powered by Discuz! X3.4