From 033f00c64fbaf9d4c4bf983c84a562276a44cf72 Mon Sep 17 00:00:00 2001 From: Jeff Kelley Date: Fri, 5 Jan 2018 11:50:12 -0500 Subject: [PATCH] Use the simulator identifier from NSProcessInfo on simulated OSes. --- SDVersion/SDiOSVersion/SDiOSVersion.m | 15 ++++++++++++--- SDVersion/SDtvOSVersion/SDtvOSVersion.m | 15 ++++++++++++--- SDVersion/SDwatchOSVersion/SDwatchOSVersion.m | 15 ++++++++++++--- 3 files changed, 36 insertions(+), 9 deletions(-) diff --git a/SDVersion/SDiOSVersion/SDiOSVersion.m b/SDVersion/SDiOSVersion/SDiOSVersion.m index fcf181c..5731094 100755 --- a/SDVersion/SDiOSVersion/SDiOSVersion.m +++ b/SDVersion/SDiOSVersion/SDiOSVersion.m @@ -105,9 +105,18 @@ + (NSDictionary*)deviceNamesByCode + (DeviceVersion)deviceVersion { - struct utsname systemInfo; - uname(&systemInfo); - NSString *code = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; + NSString *code = nil; + +#if TARGET_OS_SIMULATOR + code = NSProcessInfo.processInfo.environment[@"SIMULATOR_MODEL_IDENTIFIER"]; +#endif // TARGET_OS_SIMULATOR + + if (code == nil) { + struct utsname systemInfo; + uname(&systemInfo); + code = [NSString stringWithCString:systemInfo.machine + encoding:NSUTF8StringEncoding]; + } DeviceVersion version = (DeviceVersion)[[self.deviceNamesByCode objectForKey:code] integerValue]; diff --git a/SDVersion/SDtvOSVersion/SDtvOSVersion.m b/SDVersion/SDtvOSVersion/SDtvOSVersion.m index f3c4961..00d0daf 100755 --- a/SDVersion/SDtvOSVersion/SDtvOSVersion.m +++ b/SDVersion/SDtvOSVersion/SDtvOSVersion.m @@ -29,10 +29,19 @@ + (NSDictionary*)deviceNamesByCode + (DeviceVersion)deviceVersion { - struct utsname systemInfo; - uname(&systemInfo); - NSString *code = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; + NSString *code = nil; +#if TARGET_OS_SIMULATOR + code = NSProcessInfo.processInfo.environment[@"SIMULATOR_MODEL_IDENTIFIER"]; +#endif // TARGET_OS_SIMULATOR + + if (code == nil) { + struct utsname systemInfo; + uname(&systemInfo); + code = [NSString stringWithCString:systemInfo.machine + encoding:NSUTF8StringEncoding]; + } + DeviceVersion version = (DeviceVersion)[[self.deviceNamesByCode objectForKey:code] integerValue]; return version; diff --git a/SDVersion/SDwatchOSVersion/SDwatchOSVersion.m b/SDVersion/SDwatchOSVersion/SDwatchOSVersion.m index 5af019e..7599b5e 100644 --- a/SDVersion/SDwatchOSVersion/SDwatchOSVersion.m +++ b/SDVersion/SDwatchOSVersion/SDwatchOSVersion.m @@ -34,10 +34,19 @@ + (NSDictionary*)deviceNamesByCode + (DeviceVersion)deviceVersion { - struct utsname systemInfo; - uname(&systemInfo); - NSString *code = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; + NSString *code = nil; +#if TARGET_OS_SIMULATOR + code = NSProcessInfo.processInfo.environment[@"SIMULATOR_MODEL_IDENTIFIER"]; +#endif // TARGET_OS_SIMULATOR + + if (code == nil) { + struct utsname systemInfo; + uname(&systemInfo); + code = [NSString stringWithCString:systemInfo.machine + encoding:NSUTF8StringEncoding]; + } + DeviceVersion version = (DeviceVersion)[[self.deviceNamesByCode objectForKey:code] integerValue]; return version;