     }()
 
     class func deviceModel() -> String {
-        var systemInfo = utsname()
-        uname(&systemInfo)
-        let size = MemoryLayout<CChar>.size
-        let modelCode = withUnsafePointer(to: &systemInfo.machine) {
-            $0.withMemoryRebound(to: CChar.self, capacity: size) {
-                String(cString: UnsafePointer<CChar>($0))
+        var modelCode : String
+        if AutomaticProperties.isiOSAppOnMac() {
+            var size = 0
+            sysctlbyname("hw.model", nil, &size, nil, 0)
+            var model = [CChar](repeating: 0,  count: size)
+            sysctlbyname("hw.model", &model, &size, nil, 0)
+            modelCode = String(cString: model)
+        } else {
+            var systemInfo = utsname()
+            uname(&systemInfo)
+            let size = MemoryLayout<CChar>.size
+            modelCode = withUnsafePointer(to: &systemInfo.machine) {
+                $0.withMemoryRebound(to: CChar.self, capacity: size) {
+                    String(cString: UnsafePointer<CChar>($0))
+                }
             }
         }
         if let model = String(validatingUTF8: modelCode) {

        }
    }
    #endif

    class func libVersion() -> String {
        return "3.1.5"

                p["$os"]                = "macOS"
                p["$os_version"]        = ProcessInfo.processInfo.operatingSystemVersionString
            #else
                // iOS App Running on M1 Mac
                if AutomaticProperties.isiOSAppOnMac() {
                    p["$os"]                = "macOS"
                    p["$os_version"]        = ProcessInfo.processInfo.operatingSystemVersionString
                } else {
                    p["$os"]                = UIDevice.current.systemName
                    p["$os_version"]        = UIDevice.current.systemVersion
                }
            #endif
        #elseif os(macOS)
            if let screenSize = NSScreen.main?.frame.size {
