diff --git a/packages/device_info_plus/device_info_plus/example/lib/main.dart b/packages/device_info_plus/device_info_plus/example/lib/main.dart index b69bc04ab5..adcff431ed 100644 --- a/packages/device_info_plus/device_info_plus/example/lib/main.dart +++ b/packages/device_info_plus/device_info_plus/example/lib/main.dart @@ -172,6 +172,9 @@ class _MyAppState extends State { 'arch': data.arch, 'model': data.model, 'kernelVersion': data.kernelVersion, + 'majorVersion': data.majorVersion, + 'minorVersion': data.minorVersion, + 'patchVersion': data.patchVersion, 'osRelease': data.osRelease, 'activeCPUs': data.activeCPUs, 'memorySize': data.memorySize, diff --git a/packages/device_info_plus/device_info_plus/lib/src/model/macos_device_info.dart b/packages/device_info_plus/device_info_plus/lib/src/model/macos_device_info.dart index cf7035f996..40d3d75e10 100644 --- a/packages/device_info_plus/device_info_plus/lib/src/model/macos_device_info.dart +++ b/packages/device_info_plus/device_info_plus/lib/src/model/macos_device_info.dart @@ -15,6 +15,9 @@ class MacOsDeviceInfo extends BaseDeviceInfo { required this.model, required this.kernelVersion, required this.osRelease, + required this.majorVersion, + required this.minorVersion, + required this.patchVersion, required this.activeCPUs, required this.memorySize, required this.cpuFrequency, @@ -43,6 +46,15 @@ class MacOsDeviceInfo extends BaseDeviceInfo { /// Operating system release number final String osRelease; + /// The major release number, such as 10 in version 10.9.3. + final int majorVersion; + + /// The minor release number, such as 9 in version 10.9.3. + final int minorVersion; + + /// The update release number, such as 3 in version 10.9.3. + final int patchVersion; + /// Number of active CPUs final int activeCPUs; @@ -65,6 +77,9 @@ class MacOsDeviceInfo extends BaseDeviceInfo { model: map['model'], kernelVersion: map['kernelVersion'], osRelease: map['osRelease'], + majorVersion: map['majorVersion'], + minorVersion: map['minorVersion'], + patchVersion: map['patchVersion'], activeCPUs: map['activeCPUs'], memorySize: map['memorySize'], cpuFrequency: map['cpuFrequency'], diff --git a/packages/device_info_plus/device_info_plus/macos/Classes/DeviceInfoPlusMacosPlugin.swift b/packages/device_info_plus/device_info_plus/macos/Classes/DeviceInfoPlusMacosPlugin.swift index e2a0e0c275..8dbeb74203 100644 --- a/packages/device_info_plus/device_info_plus/macos/Classes/DeviceInfoPlusMacosPlugin.swift +++ b/packages/device_info_plus/device_info_plus/macos/Classes/DeviceInfoPlusMacosPlugin.swift @@ -24,6 +24,10 @@ public class DeviceInfoPlusMacosPlugin: NSObject, FlutterPlugin { let model = Sysctl.model let kernelVersion = Sysctl.version let osRelease = ProcessInfo.processInfo.operatingSystemVersionString + let osVersion = ProcessInfo.processInfo.operatingSystemVersion; + let majorVersion = osVersion.majorVersion + let minorVersion = osVersion.minorVersion + let patchVersion = osVersion.patchVersion let activeCPUs = Sysctl.activeCPUs let memorySize = Sysctl.memSize let cpuFrequency = Sysctl.cpuFreq @@ -36,6 +40,9 @@ public class DeviceInfoPlusMacosPlugin: NSObject, FlutterPlugin { "model": model, "kernelVersion": kernelVersion, "osRelease": osRelease, + "majorVersion": majorVersion, + "minorVersion": minorVersion, + "patchVersion": patchVersion, "activeCPUs": activeCPUs, "memorySize": memorySize, "cpuFrequency": cpuFrequency, diff --git a/packages/device_info_plus/device_info_plus/test/model/macos_device_info_test.dart b/packages/device_info_plus/device_info_plus/test/model/macos_device_info_test.dart index 3969da3181..0f466608e5 100644 --- a/packages/device_info_plus/device_info_plus/test/model/macos_device_info_test.dart +++ b/packages/device_info_plus/device_info_plus/test/model/macos_device_info_test.dart @@ -14,6 +14,9 @@ void main() { 'cpuFrequency': 2, 'hostName': 'hostName', 'osRelease': 'osRelease', + 'majorVersion': 10, + 'minorVersion': 9, + 'patchVersion': 3, 'computerName': 'computerName', 'kernelVersion': 'kernelVersion', 'systemGUID': null, @@ -29,6 +32,9 @@ void main() { expect(macosDeviceInfo.cpuFrequency, 2); expect(macosDeviceInfo.hostName, 'hostName'); expect(macosDeviceInfo.osRelease, 'osRelease'); + expect(macosDeviceInfo.majorVersion, 10); + expect(macosDeviceInfo.minorVersion, 9); + expect(macosDeviceInfo.patchVersion, 3); expect(macosDeviceInfo.systemGUID, isNull); });