有没有办法使用 sysctl 获取 iPhone 型号?

Lui*_*iza 1 iphone cpu model objective-c ios

我需要获取型号,例如:对于 iPhone 6,我想要获取的型号是 N61AP 而不是 iPhone 7,2。我在 Objective-c 中需要这个。我已经尝试了一些方法,但我得到的只是“iPhone 7,2”:(如果没有办法收集这个,有没有办法找到CPU供应商?谢谢!

ful*_*els 5

尝试添加这个(任何地方都可以,应用程序委托也许):

+ (NSString *)model
{
    size_t size;
    sysctlbyname("hw.model", NULL, &size, NULL, 0);
    char *model = malloc(size);
    sysctlbyname("hw.model", model, &size, NULL, 0);
    NSString *modelString = [NSString stringWithUTF8String:model]; // could also use shorthand wrapper: '@(model)'
    free(model);
    return modelString;
}
Run Code Online (Sandbox Code Playgroud)

对于我的 iPad Air 设备,这给我“J71AP”。

如果您确实想要类似实际设备名称的内容(即“iPhone7,2”,或者在我的例子中为“iPad4,1”),请将“hw.model”替换为“hw.machine”即可。