Stefan Oltmann
08/22/2023, 11:16 AMimport IOKit
import SwiftUI
func getModelIdentifier() -> String? {
let service = IOServiceGetMatchingService(
kIOMainPortDefault,
IOServiceMatching("IOPlatformExpertDevice")
)
var modelIdentifier: String?
if let modelData = IORegistryEntryCreateCFProperty(
service,
"model" as CFString,
kCFAllocatorDefault,
0
).takeRetainedValue() as? Data {
modelIdentifier = String(
data: modelData,
encoding: .utf8
)?.trimmingCharacters(in: .controlCharacters)
}
IOObjectRelease(service)
return modelIdentifier
}
I struggle to translate the calls.Stefan Oltmann
08/22/2023, 11:58 AMimport SwiftUI
extension UIDevice {
var modelName: 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)))
}
return identifier
}
}