個人でやってるとこれが限界なのはよく分かる。 とりあえず、XS,11,12シリーズ全部のIPSWでテストしてて、XRとSE2は多分大丈夫だろうから、オフセットをそこに追加で動くでしょうレベル・・・
public enum Device: Equatable, Hashable { | |
static func current() -> Device { | |
var info = utsname() | |
uname(&info) | |
switch String(cString: &info.machine.0) { | |
case "iPhone11,2": fallthrough | |
case "iPhone11,4": fallthrough | |
case "iPhone11,6": fallthrough | |
case "iPhone11,8": // iPhone XR should probably be treated like an XS | |
return .iPhoneXS | |
case "iPhone12,1": fallthrough | |
case "iPhone12,3": fallthrough | |
case "iPhone12,5": fallthrough | |
case "iPhone12,8": | |
return .iPhone11 | |
case "iPhone13,1": fallthrough | |
case "iPhone13,2": fallthrough | |
case "iPhone13,3": fallthrough | |
case "iPhone13,4": // iPhone SE 2 should probably be treated like an iPhone 11 | |
return .iPhone12 | |
default: | |
return .Unknown | |
} | |
} | |
case iPhoneXS | |
case iPhone11 | |
case iPhone12 | |
case Unknown | |
} |
この段階でテストするのはかなり勇気が要るので人柱さんに頑張ってもらおう;;