在iOS9中使用“hw.machine”标志调用“sysctlbyname(…)”

在WWDC 2015会话“703 Privacy and Your App”之后,使用sysctl更改。 现在我们将无法再调用kern.prockern.procargskern.procargs2并查看来自任何其他进程的数据。 这是一个非常合法的隐私硬化Apple。

任何人都可以确认在iOS9中允许使用hw.machine调用sysctlbyname(...)来获取确切的设备名称而不受上述限制的影响吗?

是的 ,我在iPhone5中测试了它使用Xcode7 beta5(安装了iOS9 beta5,而不是模拟器)。

 +(NSString *) getDeviceModel { size_t size; sysctlbyname("hw.machine", NULL, &size, NULL, 0); char *model = malloc(size); sysctlbyname("hw.machine", model, &size, NULL, 0); NSString *deviceModel = [NSString stringWithCString:model encoding:NSUTF8StringEncoding]; free(model); return deviceModel; } 

返回值是“iPhone5,2”。所以我认为设备名称不受“sysctl”function限制的影响。