如何检测设备的iOS版本的内部版本号(例如13A452)
问题描述:
有没有办法以编程方式检测iOS版本的内部版本号 例如iOS版本9.0.2(13A452)。 我知道如何检测iOS版本,例如:9.0.2。如何检测设备的iOS版本的内部版本号(例如13A452)
是否有任何API来检测13A452?
在此先感谢。
答
我已经想通了。在函数sysctl上使用KERN_OSVERSION返回iOS内部版本号。
答
想象我会把代码放在任何需要它的地方(运行时工作),因为处理起来有点棘手!
请确认您#include <sys/sysctl.h>
//make sure you `#include <sys/sysctl.h>`
NSString *ctlKey = @"kern.osversion";
BOOL buildValueFound;
NSString *buildValue;
size_t size = 0;
if (sysctlbyname([ctlKey UTF8String], NULL, &size, NULL, 0) == -1) {
buildValueFound = NO;
} else {
char *machine = calloc(1, size);
sysctlbyname([ctlKey UTF8String], machine, &size, NULL, 0);
NSString *ctlValue = [NSString stringWithCString:machine encoding:[NSString defaultCStringEncoding]];
free(machine);
buildValue = ctlValue;
buildValueFound = YES;
}
if (buildValueFound) {
NSLog(@"%@", buildValue);
} else {
NSLog(@"No build value found");
}
+0
感谢张贴代码。 – user1150393
的可能的复制[如何检查IOS版本?(http://stackoverflow.com/questions/3339722/how-to-check-ios-version) –
此问题特定于识别构建版本而不是iOS版本。我遇到过很多关于如何检测iOS版本的帖子,例如9.0.2。 但找不到任何信息来获取构建版本,即像13A452。 – user1150393
我很好奇什么样的角落案件迫使你检查操作系统的特定版本号。苹果通常建议检查可用的功能(而不是硬编码的操作系统版本号),但我相信你一定有你的理由。 –