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;