Skip to content

Commit 8bb5d4b

Browse files
Zandor300Copilot
andauthored
Add support for iPhone 17 series and Apple Watch Ultra 3/Series 11 with version 5.7.0 release (#452)
* Initial plan * Add iPhone 17 series and Apple Watch Ultra 3/Series 11 to Device.swift.gyb template * Fix Apple Watch Ultra 3 and Series 11 to use S10 chip instead of S11 * Add changelog entry for 5.7.0 and update version numbers - Add changelog entry for version 5.7.0 with September 12th release date - Include table of new iPhone 17 series and Apple Watch devices - Update version to 5.7.0 in README.md, DeviceKit.podspec, and project.pbxproj - Follow pattern from previous version releases * Fix changelog. * Build generated file after copilot gyb implementation. * Make iPhone Air plus sized. * More device attribute fixes. * Update tests after adding new devices. * Add changelog entry for Series 9 fix. --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Zandor300 <6069593+Zandor300@users.noreply.github.com>
1 parent 85cd996 commit 8bb5d4b

File tree

7 files changed

+179
-22
lines changed

7 files changed

+179
-22
lines changed

CHANGELOG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,35 @@
11
# Changelog
22

3+
## Version 5.7.0
4+
5+
Releasedate: 2025-09-12
6+
7+
```ruby
8+
pod 'DeviceKit', '~> 5.7'
9+
```
10+
11+
### New September 2025 devices
12+
13+
This version adds support for the iPhone 17 series, Apple Watch Ultra 3 and Apple Watch Series 11:
14+
15+
| Device | Case value |
16+
| --- | --- |
17+
| iPhone 17 | `Device.iPhone17` |
18+
| iPhone 17 Pro | `Device.iPhone17Pro` |
19+
| iPhone 17 Pro Max | `Device.iPhone17ProMax` |
20+
| iPhone Air | `Device.iPhoneAir` |
21+
| Apple Watch Ultra 3 | `Device.appleWatchUltra3` |
22+
| Apple Watch Series 11 42mm | `Device.appleWatchSeries11_42mm` |
23+
| Apple Watch Series 11 46mm | `Device.appleWatchSeries11_46mm` |
24+
25+
### Bug fixes
26+
27+
- Missing device identifiers for Apple Watch Series 9 were added.
28+
- Docs for Apple Watch Series 9 was updated to include specs links
29+
30+
Thanks to all the contributers of this release!
31+
- [Jager-yoo](https://github.com/Jager-yoo)
32+
333
## Version 5.6.0
434

535
Releasedate: 2025-03-27

DeviceKit.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = 'DeviceKit'
3-
s.version = '5.6.0'
3+
s.version = '5.7.0'
44
s.summary = 'DeviceKit is a µ-framework that provides a value-type replacement of UIDevice.'
55

66
s.description = <<-DESC

DeviceKit.xcodeproj/project.pbxproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,7 @@
384384
"@executable_path/Frameworks",
385385
"@loader_path/Frameworks",
386386
);
387-
MARKETING_VERSION = 5.6.0;
387+
MARKETING_VERSION = 5.7.0;
388388
MERGEABLE_LIBRARY = YES;
389389
MTL_ENABLE_DEBUG_INFO = YES;
390390
PRODUCT_BUNDLE_IDENTIFIER = me.dennisweissmann.DeviceKit;
@@ -444,7 +444,7 @@
444444
"@executable_path/Frameworks",
445445
"@loader_path/Frameworks",
446446
);
447-
MARKETING_VERSION = 5.6.0;
447+
MARKETING_VERSION = 5.7.0;
448448
MERGEABLE_LIBRARY = YES;
449449
MTL_ENABLE_DEBUG_INFO = NO;
450450
PRODUCT_BUNDLE_IDENTIFIER = me.dennisweissmann.DeviceKit;

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
`DeviceKit` is a value-type replacement of [`UIDevice`](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDevice_Class/).
2020

21-
## Current version 5.6.0
21+
## Current version 5.7.0
2222
See our detailed [changelog](CHANGELOG.md) for the latest features, improvements and bug fixes.
2323

2424
## Features

Source/Device.generated.swift

Lines changed: 103 additions & 18 deletions
Large diffs are not rendered by default.

Source/Device.swift.gyb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,10 @@ iPhones = [
9191
Device("iPhone16Pro", "Device is an [iPhone 16 Pro]()", "", ["iPhone17,1"], 6.3, (9, 19.5), "iPhone 16 Pro", "iPhone 16 Pro", 460, False, False, True, True, False, True, True, True, True, True, 0, False, 123, True, "a18Pro", True, True),
9292
Device("iPhone16ProMax", "Device is an [iPhone 16 Pro Max]()", "", ["iPhone17,2"], 6.9, (9, 19.5), "iPhone 16 Pro Max", "iPhone 16 Pro Max", 460, True, False, True, True, False, True, True, True, True, True, 0, False, 123, True, "a18Pro", True, True),
9393
Device("iPhone16e", "Device is an [iPhone 16e](https://support.apple.com/en-us/122208)", "https://cdsassets.apple.com/live/7WUAS350/images/tech-specs/122208-iphone-16e.png", ["iPhone17,5"], 6.1, (9, 19.5), "iPhone 16e", "iPhone 16e", 460, False, False, False, True, False, True, True, True, True, False, 0, False, 1, False, "a18", True, True),
94+
Device("iPhone17", "Device is an [iPhone 17]()", "", ["iPhone18,3"], 6.3, (9, 19.5), "iPhone 17", "iPhone 17", 460, False, False, False, True, False, True, True, True, True, True, 0, False, 13, False, "a19", True, True),
95+
Device("iPhone17Pro", "Device is an [iPhone 17 Pro]()", "", ["iPhone18,1"], 6.3, (9, 19.5), "iPhone 17 Pro", "iPhone 17 Pro", 460, False, False, True, True, False, True, True, True, True, True, 0, False, 123, True, "a19Pro", True, True),
96+
Device("iPhone17ProMax", "Device is an [iPhone 17 Pro Max]()", "", ["iPhone18,2"], 6.9, (9, 19.5), "iPhone 17 Pro Max", "iPhone 17 Pro Max", 460, True, False, True, True, False, True, True, True, True, True, 0, False, 123, True, "a19Pro", True, True),
97+
Device("iPhoneAir", "Device is an [iPhone Air]()", "", ["iPhone18,4"], 6.5, (9, 19.5), "iPhone Air", "iPhone Air", 460, True, False, False, True, False, True, True, True, True, True, 0, False, 13, False, "a19Pro", True, True),
9498
]
9599

96100
iPads = [
@@ -317,6 +321,24 @@ watches = [
317321
"",
318322
["Watch7,9", "Watch7,11"], 2.0, (416,496), "Apple Watch Series 10 46mm", "Apple Watch Series 10 46mm", 326, False, False, False, False, False, False, False, True, False, False, 0, False, 0, False, "s10", False, False),
319323

324+
Device(
325+
"appleWatchUltra3",
326+
"Device is an [Apple Watch Ultra 3]()",
327+
"",
328+
["Watch7,12"], 2.2, (4,5), "Apple Watch Ultra 3", "Apple Watch Ultra 3", 338, False, False, False, False, False, False, False, True, False, False, 0, False, 0, False, "s10", False, False),
329+
330+
Device(
331+
"appleWatchSeries11_42mm",
332+
"Device is an [Apple Watch Series 11]()",
333+
"",
334+
["Watch7,17", "Watch7,19"], 1.9, (374,446), "Apple Watch Series 11 42mm", "Apple Watch Series 11 42mm", 326, False, False, False, False, False, False, False, True, False, False, 0, False, 0, False, "s10", False, False),
335+
336+
Device(
337+
"appleWatchSeries11_46mm",
338+
"Device is an [Apple Watch Series 11]()",
339+
"",
340+
["Watch7,18", "Watch7,20"], 2.0, (416,496), "Apple Watch Series 11 46mm", "Apple Watch Series 11 46mm", 326, False, False, False, False, False, False, False, True, False, False, 0, False, 0, False, "s10", False, False),
341+
320342
]
321343

322344
iOSDevices = iPods + iPhones + iPads + homePods
@@ -1499,6 +1521,8 @@ iOS_cpus = [
14991521
CPU("a17Pro" , "A17 Pro"),
15001522
CPU("a18" , "A18"),
15011523
CPU("a18Pro" , "A18 Pro"),
1524+
CPU("a19" , "A19"),
1525+
CPU("a19Pro" , "A19 Pro"),
15021526
CPU("m1", "M1"),
15031527
CPU("m2", "M2"),
15041528
CPU("m3", "M3"),

Tests/Tests.swift

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -459,6 +459,8 @@ class DeviceKitTests: XCTestCase {
459459
.iPhone15ProMax,
460460
.iPhone16Plus,
461461
.iPhone16ProMax,
462+
.iPhone17ProMax,
463+
.iPhoneAir,
462464
])
463465
}
464466

@@ -476,6 +478,8 @@ class DeviceKitTests: XCTestCase {
476478
.iPhone15ProMax,
477479
.iPhone16Pro,
478480
.iPhone16ProMax,
481+
.iPhone17Pro,
482+
.iPhone17ProMax,
479483
.iPadPro9Inch,
480484
.iPadPro12Inch,
481485
.iPadPro12Inch2,
@@ -521,6 +525,10 @@ class DeviceKitTests: XCTestCase {
521525
.iPhone16Plus,
522526
.iPhone16Pro,
523527
.iPhone16ProMax,
528+
.iPhone17,
529+
.iPhone17Pro,
530+
.iPhone17ProMax,
531+
.iPhoneAir,
524532
]
525533
for device in Device.allRealDevices {
526534
XCTAssertTrue(device.hasDynamicIsland == device.isOneOf(dynamicIslandDevices), "testHasDynamicIsland failed for \(device.description)")
@@ -551,6 +559,10 @@ class DeviceKitTests: XCTestCase {
551559
.iPhone16Pro,
552560
.iPhone16ProMax,
553561
.iPhone16e,
562+
.iPhone17,
563+
.iPhone17Pro,
564+
.iPhone17ProMax,
565+
.iPhoneAir,
554566
.iPad10,
555567
.iPadA16,
556568
.iPadAir5,
@@ -644,6 +656,8 @@ class DeviceKitTests: XCTestCase {
644656
.iPhone15ProMax,
645657
.iPhone16Pro,
646658
.iPhone16ProMax,
659+
.iPhone17Pro,
660+
.iPhone17ProMax,
647661
.iPadPro11Inch2,
648662
.iPadPro12Inch4,
649663
.iPadPro11Inch3,
@@ -669,6 +683,10 @@ class DeviceKitTests: XCTestCase {
669683
.iPhone16Pro,
670684
.iPhone16ProMax,
671685
.iPhone16e,
686+
.iPhone17,
687+
.iPhone17Pro,
688+
.iPhone17ProMax,
689+
.iPhoneAir,
672690
.iPad10,
673691
.iPadA16,
674692
.iPadAir4,

0 commit comments

Comments
 (0)