155 lines
5.5 KiB
Swift
155 lines
5.5 KiB
Swift
//
|
|
// getIphone.swift
|
|
// playbtest
|
|
//
|
|
// Created by 忆海16 on 2024/12/31.
|
|
//
|
|
|
|
import Foundation
|
|
import UIKit
|
|
|
|
class getIpne {
|
|
static var shard = getIpne()
|
|
private init() {}
|
|
|
|
func getIPhoneModel() -> iPhoneModel {
|
|
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)))
|
|
}
|
|
|
|
switch identifier {
|
|
case "iPhone5,1", "iPhone5,2": return .iPhone5
|
|
case "iPhone5,3", "iPhone5,4": return .iPhone5C
|
|
case "iPhone6,1", "iPhone6,2": return .iPhone5S
|
|
case "iPhone7.2": return .iPhone6
|
|
case "iPhone7,1": return .iPhone6Plus
|
|
case "iPhone8,1": return .iPhone6s
|
|
case "iPhone8,2": return .iPhone6Plus
|
|
case "iPhone8,4": return .iPhoneSE1
|
|
case "iPhone9,1", "iPhone9,3": return .iPhone7
|
|
case "iPhone9,2", "iPhone9,4": return .iPhone7Plus
|
|
case "iPhone10,1", "iPhone10,4": return .iPhone8
|
|
case "iPhone10,2", "iPhone10,5": return .iPhone8Plus
|
|
case "iPhone10,3", "iPhone10,6": return .iPhoneX
|
|
case "iPhone11,8": return .iPhoneXR
|
|
case "iPhone11,2": return .iPhoneXS
|
|
case "iPhone11,6", "iPhone11,4": return .iPhoneXSMax
|
|
case "iPhone12,1": return .iPhone11
|
|
case "iPhone12,3": return .iPhone11Pro
|
|
case "iPhone12,5": return .iPhone11ProMax
|
|
case "iPhone12,8": return .iPhoneSE2
|
|
case "iPhone13,1": return .iPhone12Mini
|
|
case "iPhone13,2": return .iPhone12
|
|
case "iPhone13,3": return .iPhone12Pro
|
|
case "iPhone13,4": return .iPhone12ProMax
|
|
case "iPhone14,4": return .iPhone13Mini
|
|
case "iPhone14,5": return .iPhone13
|
|
case "iPhone14,2": return .iPhone13Pro
|
|
case "iPhone14,3": return .iPhone13ProMax
|
|
case "iPhone14,6": return .iPhoneSE3
|
|
case "iPhone14,7": return .iPhone14
|
|
case "iPhone14,8": return .iPhone14Plus
|
|
case "iPhone15,2": return .iPhone14Pro
|
|
case "iPhone15,3": return .iPhone14ProMax
|
|
case "iPhone15,4": return .iPhone15
|
|
case "iPhone15,5": return .iPhone15Plus
|
|
case "iPhone16,1": return .iPhone15Pro
|
|
case "iPhone16,2": return .iPhone15ProMax
|
|
case "i386": return .simulator
|
|
case "x86_64": return .simulator
|
|
default: return .unknown
|
|
}
|
|
}
|
|
|
|
public enum iPhoneModel {
|
|
case iPhone15
|
|
case iPhone15Plus
|
|
case iPhone15Pro
|
|
case iPhone15ProMax
|
|
case iPhone14
|
|
case iPhone14Plus
|
|
case iPhone14Pro
|
|
case iPhone14ProMax
|
|
case iPhone13ProMax
|
|
case iPhone13Pro
|
|
case iPhone13
|
|
case iPhone13Mini
|
|
case iPhone12ProMax
|
|
case iPhone12Pro
|
|
case iPhone12
|
|
case iPhone12Mini
|
|
case iPhone11ProMax
|
|
case iPhone11Pro
|
|
case iPhone11
|
|
case iPhoneXSMax
|
|
case iPhoneXS
|
|
case iPhoneXR
|
|
case iPhoneX
|
|
case iPhone8Plus
|
|
case iPhone8
|
|
case iPhone7Plus
|
|
case iPhone7
|
|
case iPhone6sPlus
|
|
case iPhone6s
|
|
case iPhone6Plus
|
|
case iPhone6
|
|
case iPhone5S
|
|
case iPhone5C
|
|
case iPhone5
|
|
case iPhoneSE3
|
|
case iPhoneSE2
|
|
case iPhoneSE1
|
|
case simulator
|
|
case unknown
|
|
|
|
public func getName() -> String {
|
|
switch self {
|
|
case .iPhone5: return "iPhone 5"
|
|
case .iPhone5C: return "iPhone 5C"
|
|
case .iPhone5S: return "iPhone 5S"
|
|
case .iPhone6: return "iPhone 6"
|
|
case .iPhone6Plus: return "iPhone 6 Plus"
|
|
case .iPhone6s: return "iPhone 6s"
|
|
case .iPhone6sPlus: return "iPhone 6s Plus"
|
|
case .iPhoneSE1: return "iPhone SE1"
|
|
case .iPhone7: return "iPhone 7"
|
|
case .iPhone7Plus: return "iPhone 7 Plus"
|
|
case .iPhone8: return "iPhone 8"
|
|
case .iPhone8Plus: return "iPhone 8 Plus"
|
|
case .iPhoneX: return "iPhone X"
|
|
case .iPhoneXR: return "iPhone XR"
|
|
case .iPhoneXS: return "iPhone XS"
|
|
case .iPhoneXSMax: return "iPhone XS Max"
|
|
case .iPhone11: return "iPhone 11"
|
|
case .iPhone11Pro: return "iPhone 11 Pro"
|
|
case .iPhone11ProMax: return "iPhone 11 Pro Max"
|
|
case .iPhoneSE2: return "iPhone SE2"
|
|
case .iPhone12Mini: return "iPhone 12 mini"
|
|
case .iPhone12: return "iPhone 12"
|
|
case .iPhone12Pro: return "iPhone 12 Pro"
|
|
case .iPhone12ProMax: return "iPhone 12 Pro Max"
|
|
case .iPhone13Mini: return "iPhone 13 mini"
|
|
case .iPhone13: return "iPhone 13"
|
|
case .iPhone13Pro: return "iPhone 13 Pro"
|
|
case .iPhone13ProMax: return "iPhone 13 Pro Max"
|
|
case .simulator: return "Simulator"
|
|
case .unknown: return "unknown"
|
|
case .iPhone14: return "iPhone 14"
|
|
case .iPhone14Plus: return "iPhone 14 Plus"
|
|
case .iPhone14Pro: return "iPhone 14 Pro"
|
|
case .iPhone14ProMax: return "iPhone 14 Pro Max"
|
|
case .iPhoneSE3: return "iPhone SE3"
|
|
case .iPhone15: return "iPhone 15"
|
|
case .iPhone15Plus: return "iPhone 15 Plus"
|
|
case .iPhone15Pro: return "iPhone 15 Pro"
|
|
case .iPhone15ProMax: return "iPhone 15 Pro Max"
|
|
}
|
|
}
|
|
}
|
|
}
|