Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

## Unreleased

### Bug fixes

- Correct portrait screen ratios, marketing names, and support links for later iPad Air and iPad Pro models. ([#457](https://github.com/devicekit/DeviceKit/issues/457))

## Version 5.9.0

Releasedate: 2026-09-22
Expand Down
68 changes: 34 additions & 34 deletions Source/Device.generated.swift
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,7 @@ public enum Device {
///
/// ![Image](https://km.support.apple.com/resources/sites/APPLE/content/live/IMAGES/1000/IM1097/en_US/ipad-mini-6gen-240.png)
case iPadMini6
/// Device is an [iPad mini (A17 Pro)](https://support.apple.com/en-us/121456)
/// Device is an [iPad mini (A17 Pro)](https://support.apple.com/121456)
///
/// ![Image](https://cdsassets.apple.com/live/7WUAS350/images/tech-specs/iPad_mini_A17_Pro_Wi-Fi_Lineup_Print__USEN.png)
case iPadMiniA17Pro
Expand Down Expand Up @@ -390,19 +390,19 @@ public enum Device {
///
/// ![Image](https://support.apple.com/library/APPLE/APPLECARE_ALLGEOS/SP882/ipad-pro-4gen-mainimage_2x.png)
case iPadPro12Inch6
/// Device is an [iPad Pro 11-inch (M4)](https://support.apple.com/en-us/119892)
/// Device is an [iPad Pro 11-inch (M4)](https://support.apple.com/119892)
///
/// ![Image](https://cdsassets.apple.com/content/services/pub/image?productid=301031&size=240x240)
case iPadPro11M4
/// Device is an [iPad Pro 13-inch (M4)](https://support.apple.com/en-us/119891)
/// Device is an [iPad Pro 13-inch (M4)](https://support.apple.com/119891)
///
/// ![Image](https://cdsassets.apple.com/content/services/pub/image?productid=301033&size=240x240)
case iPadPro13M4
/// Device is an [iPad Pro 11-inch (M5)](https://support.apple.com/en-us/125406)
/// Device is an [iPad Pro 11-inch (M5)](https://support.apple.com/125406)
///
/// ![Image](https://cdsassets.apple.com/content/services/pub/image?productid=301271&size=240x240)
case iPadPro11M5
/// Device is an [iPad Pro 13-inch (M5)](https://support.apple.com/en-us/125406)
/// Device is an [iPad Pro 13-inch (M5)](https://support.apple.com/125406)
///
/// ![Image](https://cdsassets.apple.com/content/services/pub/image?productid=301273&size=240x240)
case iPadPro13M5
Expand Down Expand Up @@ -985,11 +985,11 @@ public enum Device {
case .iPadAir4: return (width: 41, height: 59)
case .iPadAir5: return (width: 41, height: 59)
case .iPadAir11M2: return (width: 41, height: 59)
case .iPadAir13M2: return (width: 683, height: 512)
case .iPadAir11M3: return (width: 59, height: 41)
case .iPadAir13M3: return (width: 683, height: 512)
case .iPadAir11M4: return (width: 59, height: 41)
case .iPadAir13M4: return (width: 683, height: 512)
case .iPadAir13M2: return (width: 512, height: 683)
case .iPadAir11M3: return (width: 41, height: 59)
case .iPadAir13M3: return (width: 512, height: 683)
case .iPadAir11M4: return (width: 41, height: 59)
case .iPadAir13M4: return (width: 512, height: 683)
case .iPadMini: return (width: 3, height: 4)
case .iPadMini2: return (width: 3, height: 4)
case .iPadMini3: return (width: 3, height: 4)
Expand All @@ -1009,10 +1009,10 @@ public enum Device {
case .iPadPro12Inch5: return (width: 512, height: 683)
case .iPadPro11Inch4: return (width: 139, height: 199)
case .iPadPro12Inch6: return (width: 512, height: 683)
case .iPadPro11M4: return (width: 605, height: 417)
case .iPadPro13M4: return (width: 4, height: 3)
case .iPadPro11M5: return (width: 605, height: 417)
case .iPadPro13M5: return (width: 4, height: 3)
case .iPadPro11M4: return (width: 417, height: 605)
case .iPadPro13M4: return (width: 3, height: 4)
case .iPadPro11M5: return (width: 417, height: 605)
case .iPadPro13M5: return (width: 3, height: 4)
case .homePod: return (width: 4, height: 5)
case .simulator(let model): return model.screenRatio
case .unknown: return (width: -1, height: -1)
Expand Down Expand Up @@ -1749,12 +1749,12 @@ extension Device: CustomStringConvertible {
case .iPadA16: return "iPad (A16)"
case .iPadAir4: return "iPad Air (4th generation)"
case .iPadAir5: return "iPad Air (5th generation)"
case .iPadAir11M2: return "iPad Air (11-inch) (M2)"
case .iPadAir13M2: return "iPad Air (13-inch) (M2)"
case .iPadAir11M3: return "iPad Air (11-inch) (M3)"
case .iPadAir13M3: return "iPad Air (13-inch) (M3)"
case .iPadAir11M4: return "iPad Air (11-inch) (M4)"
case .iPadAir13M4: return "iPad Air (13-inch) (M4)"
case .iPadAir11M2: return "iPad Air 11-inch (M2)"
case .iPadAir13M2: return "iPad Air 13-inch (M2)"
case .iPadAir11M3: return "iPad Air 11-inch (M3)"
case .iPadAir13M3: return "iPad Air 13-inch (M3)"
case .iPadAir11M4: return "iPad Air 11-inch (M4)"
case .iPadAir13M4: return "iPad Air 13-inch (M4)"
case .iPadMini: return "iPad mini"
case .iPadMini2: return "iPad mini 2"
case .iPadMini3: return "iPad mini 3"
Expand All @@ -1774,10 +1774,10 @@ extension Device: CustomStringConvertible {
case .iPadPro12Inch5: return "iPad Pro (12.9-inch) (5th generation)"
case .iPadPro11Inch4: return "iPad Pro (11-inch) (4th generation)"
case .iPadPro12Inch6: return "iPad Pro (12.9-inch) (6th generation)"
case .iPadPro11M4: return "iPad Pro (11-inch) (M4)"
case .iPadPro13M4: return "iPad Pro (13-inch) (M4)"
case .iPadPro11M5: return "iPad Pro (11-inch) (M5)"
case .iPadPro13M5: return "iPad Pro (13-inch) (M5)"
case .iPadPro11M4: return "iPad Pro 11-inch (M4)"
case .iPadPro13M4: return "iPad Pro 13-inch (M4)"
case .iPadPro11M5: return "iPad Pro 11-inch (M5)"
case .iPadPro13M5: return "iPad Pro 13-inch (M5)"
case .homePod: return "HomePod"
case .simulator(let model): return "Simulator (\(model.description))"
case .unknown(let identifier): return identifier
Expand Down Expand Up @@ -1919,12 +1919,12 @@ extension Device: CustomStringConvertible {
case .iPadA16: return "iPad (A16)"
case .iPadAir4: return "iPad Air (4th generation)"
case .iPadAir5: return "iPad Air (5th generation)"
case .iPadAir11M2: return "iPad Air (11-inch) (M2)"
case .iPadAir13M2: return "iPad Air (13-inch) (M2)"
case .iPadAir11M3: return "iPad Air (11-inch) (M3)"
case .iPadAir13M3: return "iPad Air (13-inch) (M3)"
case .iPadAir11M4: return "iPad Air (11-inch) (M4)"
case .iPadAir13M4: return "iPad Air (13-inch) (M4)"
case .iPadAir11M2: return "iPad Air 11-inch (M2)"
case .iPadAir13M2: return "iPad Air 13-inch (M2)"
case .iPadAir11M3: return "iPad Air 11-inch (M3)"
case .iPadAir13M3: return "iPad Air 13-inch (M3)"
case .iPadAir11M4: return "iPad Air 11-inch (M4)"
case .iPadAir13M4: return "iPad Air 13-inch (M4)"
case .iPadMini: return "iPad mini"
case .iPadMini2: return "iPad mini 2"
case .iPadMini3: return "iPad mini 3"
Expand All @@ -1944,10 +1944,10 @@ extension Device: CustomStringConvertible {
case .iPadPro12Inch5: return "iPad Pro (12.9-inch) (5th generation)"
case .iPadPro11Inch4: return "iPad Pro (11-inch) (4th generation)"
case .iPadPro12Inch6: return "iPad Pro (12.9-inch) (6th generation)"
case .iPadPro11M4: return "iPad Pro (11-inch) (M4)"
case .iPadPro13M4: return "iPad Pro (13-inch) (M4)"
case .iPadPro11M5: return "iPad Pro (11-inch) (M5)"
case .iPadPro13M5: return "iPad Pro (13-inch) (M5)"
case .iPadPro11M4: return "iPad Pro 11-inch (M4)"
case .iPadPro13M4: return "iPad Pro 13-inch (M4)"
case .iPadPro11M5: return "iPad Pro 11-inch (M5)"
case .iPadPro13M5: return "iPad Pro 13-inch (M5)"
case .homePod: return "HomePod"
case .simulator(let model): return "Simulator (\(model.safeDescription))"
case .unknown(let identifier): return identifier
Expand Down
22 changes: 11 additions & 11 deletions Source/Device.swift.gyb
Original file line number Diff line number Diff line change
Expand Up @@ -329,27 +329,27 @@ iPads = [
cpu="m1", hasTouchID=True, hasRoundedDisplayCorners=True, applePencilSupport=23, cameras=1,
hasUSBCConnectivity=True, has5gSupport=True,
hasEsimSupport=True),
Device("iPadAir11M2", "Device is an [iPad Air 11-inch (M2)](https://support.apple.com/119894)", "https://cdsassets.apple.com/content/services/pub/image?productid=301027&size=240x240", ["iPad14,8", "iPad14,9"], 10.9, (41, 59), "iPad Air (11-inch) (M2)", "iPad Air (11-inch) (M2)", 264,
Device("iPadAir11M2", "Device is an [iPad Air 11-inch (M2)](https://support.apple.com/119894)", "https://cdsassets.apple.com/content/services/pub/image?productid=301027&size=240x240", ["iPad14,8", "iPad14,9"], 10.9, (41, 59), "iPad Air 11-inch (M2)", "iPad Air 11-inch (M2)", 264,
cpu="m2", hasTouchID=True, hasRoundedDisplayCorners=True, applePencilSupport=34, cameras=1,
hasUSBCConnectivity=True, has5gSupport=True,
hasEsimSupport=True),
Device("iPadAir13M2", "Device is an [iPad Air 13-inch (M2)](https://support.apple.com/119893)", "https://cdsassets.apple.com/content/services/pub/image?productid=301029&size=240x240", ["iPad14,10", "iPad14,11"], 12.9, (683, 512), "iPad Air (13-inch) (M2)", "iPad Air (13-inch) (M2)", 264,
Device("iPadAir13M2", "Device is an [iPad Air 13-inch (M2)](https://support.apple.com/119893)", "https://cdsassets.apple.com/content/services/pub/image?productid=301029&size=240x240", ["iPad14,10", "iPad14,11"], 12.9, (512, 683), "iPad Air 13-inch (M2)", "iPad Air 13-inch (M2)", 264,
cpu="m2", hasTouchID=True, hasRoundedDisplayCorners=True, applePencilSupport=34, cameras=1,
hasUSBCConnectivity=True, has5gSupport=True,
hasEsimSupport=True),
Device("iPadAir11M3", "Device is an [iPad Air 11-inch (M3)](https://support.apple.com/122241)", "https://cdsassets.apple.com/content/services/pub/image?productid=301027&size=240x240", ["iPad15,3", "iPad15,4"], 10.9, (59, 41), "iPad Air (11-inch) (M3)", "iPad Air (11-inch) (M3)", 264,
Device("iPadAir11M3", "Device is an [iPad Air 11-inch (M3)](https://support.apple.com/122241)", "https://cdsassets.apple.com/content/services/pub/image?productid=301027&size=240x240", ["iPad15,3", "iPad15,4"], 10.9, (41, 59), "iPad Air 11-inch (M3)", "iPad Air 11-inch (M3)", 264,
cpu="m3", hasTouchID=True, hasRoundedDisplayCorners=True, applePencilSupport=34, cameras=1,
hasUSBCConnectivity=True, has5gSupport=True,
hasEsimSupport=True),
Device("iPadAir13M3", "Device is an [iPad Air 13-inch (M3)](https://support.apple.com/122242)", "https://cdsassets.apple.com/content/services/pub/image?productid=301029&size=240x240", ["iPad15,5", "iPad15,6"], 12.9, (683, 512), "iPad Air (13-inch) (M3)", "iPad Air (13-inch) (M3)", 264,
Device("iPadAir13M3", "Device is an [iPad Air 13-inch (M3)](https://support.apple.com/122242)", "https://cdsassets.apple.com/content/services/pub/image?productid=301029&size=240x240", ["iPad15,5", "iPad15,6"], 12.9, (512, 683), "iPad Air 13-inch (M3)", "iPad Air 13-inch (M3)", 264,
cpu="m3", hasTouchID=True, hasRoundedDisplayCorners=True, applePencilSupport=34, cameras=1,
hasUSBCConnectivity=True, has5gSupport=True,
hasEsimSupport=True),
Device("iPadAir11M4", "Device is an [iPad Air 11-inch (M4)](https://support.apple.com/126471)", "", ["iPad16,8", "iPad16,9"], 10.9, (59, 41), "iPad Air (11-inch) (M4)", "iPad Air (11-inch) (M4)", 264,
Device("iPadAir11M4", "Device is an [iPad Air 11-inch (M4)](https://support.apple.com/126471)", "", ["iPad16,8", "iPad16,9"], 10.9, (41, 59), "iPad Air 11-inch (M4)", "iPad Air 11-inch (M4)", 264,
cpu="m4", hasTouchID=True, hasRoundedDisplayCorners=True, applePencilSupport=34, cameras=1,
hasUSBCConnectivity=True, has5gSupport=True,
hasEsimSupport=True),
Device("iPadAir13M4", "Device is an [iPad Air 13-inch (M4)](https://support.apple.com/126472)", "", ["iPad16,10", "iPad16,11"], 12.9, (683, 512), "iPad Air (13-inch) (M4)", "iPad Air (13-inch) (M4)", 264,
Device("iPadAir13M4", "Device is an [iPad Air 13-inch (M4)](https://support.apple.com/126472)", "", ["iPad16,10", "iPad16,11"], 12.9, (512, 683), "iPad Air 13-inch (M4)", "iPad Air 13-inch (M4)", 264,
cpu="m4", hasTouchID=True, hasRoundedDisplayCorners=True, applePencilSupport=34, cameras=1,
hasUSBCConnectivity=True, has5gSupport=True,
hasEsimSupport=True),
Expand All @@ -368,7 +368,7 @@ iPads = [
cpu="a15Bionic", isPadMiniFormFactor=True, hasTouchID=True, hasRoundedDisplayCorners=True,
applePencilSupport=23, cameras=1, hasUSBCConnectivity=True, has5gSupport=True,
hasEsimSupport=True),
Device("iPadMiniA17Pro", "Device is an [iPad mini (A17 Pro)](https://support.apple.com/en-us/121456)", "https://cdsassets.apple.com/live/7WUAS350/images/tech-specs/iPad_mini_A17_Pro_Wi-Fi_Lineup_Print__USEN.png", ["iPad16,1", "iPad16,2"], 8.3, (744, 1133), "iPad mini (A17 Pro)", "iPad mini (A17 Pro)", 326,
Device("iPadMiniA17Pro", "Device is an [iPad mini (A17 Pro)](https://support.apple.com/121456)", "https://cdsassets.apple.com/live/7WUAS350/images/tech-specs/iPad_mini_A17_Pro_Wi-Fi_Lineup_Print__USEN.png", ["iPad16,1", "iPad16,2"], 8.3, (744, 1133), "iPad mini (A17 Pro)", "iPad mini (A17 Pro)", 326,
cpu="a17Pro", isPadMiniFormFactor=True, hasTouchID=True, hasRoundedDisplayCorners=True,
applePencilSupport=34, cameras=1, hasUSBCConnectivity=True, has5gSupport=True,
hasEsimSupport=True),
Expand Down Expand Up @@ -412,19 +412,19 @@ iPads = [
cpu="m2", isPro=True, hasFaceID=True, hasRoundedDisplayCorners=True, applePencilSupport=23,
cameras=13, hasLidarSensor=True, hasUSBCConnectivity=True, has5gSupport=True,
hasEsimSupport=True),
Device("iPadPro11M4", "Device is an [iPad Pro 11-inch (M4)](https://support.apple.com/en-us/119892)", "https://cdsassets.apple.com/content/services/pub/image?productid=301031&size=240x240", ["iPad16,3", "iPad16,4"], 11.0, (605, 417), "iPad Pro (11-inch) (M4)", "iPad Pro (11-inch) (M4)", 264,
Device("iPadPro11M4", "Device is an [iPad Pro 11-inch (M4)](https://support.apple.com/119892)", "https://cdsassets.apple.com/content/services/pub/image?productid=301031&size=240x240", ["iPad16,3", "iPad16,4"], 11.0, (417, 605), "iPad Pro 11-inch (M4)", "iPad Pro 11-inch (M4)", 264,
cpu="m4", isPro=True, hasFaceID=True, hasRoundedDisplayCorners=True, applePencilSupport=34,
cameras=1, hasLidarSensor=True, hasUSBCConnectivity=True, has5gSupport=True,
hasEsimSupport=True),
Device("iPadPro13M4", "Device is an [iPad Pro 13-inch (M4)](https://support.apple.com/en-us/119891)", "https://cdsassets.apple.com/content/services/pub/image?productid=301033&size=240x240", ["iPad16,5", "iPad16,6"], 13.0, (4, 3), "iPad Pro (13-inch) (M4)", "iPad Pro (13-inch) (M4)", 264,
Device("iPadPro13M4", "Device is an [iPad Pro 13-inch (M4)](https://support.apple.com/119891)", "https://cdsassets.apple.com/content/services/pub/image?productid=301033&size=240x240", ["iPad16,5", "iPad16,6"], 13.0, (3, 4), "iPad Pro 13-inch (M4)", "iPad Pro 13-inch (M4)", 264,
cpu="m4", isPro=True, hasFaceID=True, hasRoundedDisplayCorners=True, applePencilSupport=34,
cameras=1, hasLidarSensor=True, hasUSBCConnectivity=True, has5gSupport=True,
hasEsimSupport=True),
Device("iPadPro11M5", "Device is an [iPad Pro 11-inch (M5)](https://support.apple.com/en-us/125406)", "https://cdsassets.apple.com/content/services/pub/image?productid=301271&size=240x240", ["iPad17,1", "iPad17,2"], 11.0, (605, 417), "iPad Pro (11-inch) (M5)", "iPad Pro (11-inch) (M5)", 264,
Device("iPadPro11M5", "Device is an [iPad Pro 11-inch (M5)](https://support.apple.com/125406)", "https://cdsassets.apple.com/content/services/pub/image?productid=301271&size=240x240", ["iPad17,1", "iPad17,2"], 11.0, (417, 605), "iPad Pro 11-inch (M5)", "iPad Pro 11-inch (M5)", 264,
cpu="m5", isPro=True, hasFaceID=True, hasRoundedDisplayCorners=True, applePencilSupport=234,
cameras=1, hasLidarSensor=True, hasUSBCConnectivity=True, has5gSupport=True,
hasEsimSupport=True),
Device("iPadPro13M5", "Device is an [iPad Pro 13-inch (M5)](https://support.apple.com/en-us/125406)", "https://cdsassets.apple.com/content/services/pub/image?productid=301273&size=240x240", ["iPad17,3", "iPad17,4"], 13.0, (4, 3), "iPad Pro (13-inch) (M5)", "iPad Pro (13-inch) (M5)", 264,
Device("iPadPro13M5", "Device is an [iPad Pro 13-inch (M5)](https://support.apple.com/125406)", "https://cdsassets.apple.com/content/services/pub/image?productid=301273&size=240x240", ["iPad17,3", "iPad17,4"], 13.0, (3, 4), "iPad Pro 13-inch (M5)", "iPad Pro 13-inch (M5)", 264,
cpu="m5", isPro=True, hasFaceID=True, hasRoundedDisplayCorners=True, applePencilSupport=234,
cameras=1, hasLidarSensor=True, hasUSBCConnectivity=True, has5gSupport=True,
hasEsimSupport=True),
Expand Down
Loading