| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import SwiftUI
- extension UIDevice {
- var getDeviceId: String {
- var systemInfo = utsname()
- uname(&systemInfo)
- let machineMirror = Mirror(reflecting: systemInfo.machine)
- let identifier = machineMirror.children.reduce("") { identifier, element in
- guard let value = element.value as? Int8, value != 0 else { return identifier }
- return identifier + String(UnicodeScalar(UInt8(value)))
- }
- func mapToDevice(identifier: String) -> String {
- switch identifier {
- case "iPhone10,4":
- return "iPhone 8"
- case "iPhone10,5":
- return "iPhone 8 Plus"
- case "iPhone10,6":
- return "iPhone X"
- case "iPhone11,2":
- return "iPhone Xs"
- case "iPhone11,8":
- return "iPhone XR"
- case "iPhone12,1":
- return "iPhone 11"
- case "iPhone12,5":
- return "iPhone 11 Pro Max"
- case "iPhone12,8":
- return "iPhone SE (2nd Gen)"
- case "iPhone13,1":
- return "iPhone 12 mini"
- case "iPhone13,2":
- return "iPhone 12"
- case "iPhone13,3":
- return "iPhone 12 Pro"
- case "iPhone13,4":
- return "iPhone 12 Pro Max"
- case "iPhone14,2":
- return "iPhone 13 Pro"
- case "iPhone14,3":
- return "iPhone 13 Pro Max"
- case "iPhone14,4":
- return "iPhone 13 mini"
- case "iPhone14,5":
- return "iPhone 13"
- case "iPhone14,6":
- return "iPhone SE (3rd Gen)"
- case "iPhone14,7":
- return "iPhone 14"
- case "iPhone14,8":
- return "iPhone 14 Plus"
- case "iPhone15,2":
- return "iPhone 14 Pro"
- case "iPhone15,3":
- return "iPhone 14 Pro Max"
- default:
- return identifier
- }
- }
- return mapToDevice(identifier: identifier)
- }
- var getOSInfo: String {
- let os = ProcessInfo.processInfo.operatingSystemVersion
- return String(os.majorVersion) + "." + String(os.minorVersion) + "." + String(os.patchVersion)
- }
- }
|