Skip to content

Commit 07194ec

Browse files
authored
Upgrade to Xcode 26 (#153)
1 parent 1ca7865 commit 07194ec

File tree

9 files changed

+37
-26
lines changed

9 files changed

+37
-26
lines changed

.github/workflows/ci.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ env:
1818
EXAMPLE_PROJECT: Example/ExampleApp.xcodeproj
1919
EXAMPLE_SCHEME: ExampleApp
2020

21-
DEVELOPER_DIR: /Applications/Xcode_16.4.app/Contents/Developer
21+
DEVELOPER_DIR: /Applications/Xcode_26.1.app/Contents/Developer
2222

23-
IOS_DEST: "platform=iOS Simulator,name=iPhone 16,OS=latest"
23+
IOS_DEST: "platform=iOS Simulator,name=iPhone 17,OS=latest"
2424

2525
jobs:
2626
env-details:
2727
name: Environment details
28-
runs-on: macos-15
28+
runs-on: macos-latest
2929
steps:
3030
- name: xcode version
3131
run: xcodebuild -version -sdk
@@ -37,7 +37,7 @@ jobs:
3737
3838
test-iOS:
3939
name: iOS unit test
40-
runs-on: macos-15
40+
runs-on: macos-latest
4141
steps:
4242
- name: git checkout
4343
uses: actions/checkout@v6
@@ -53,7 +53,7 @@ jobs:
5353
5454
ui-test-iOS:
5555
name: iOS UI tests
56-
runs-on: macos-15
56+
runs-on: macos-latest
5757
steps:
5858
- name: git checkout
5959
uses: actions/checkout@v6

.github/workflows/spm-ios.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@ on:
1212
- main
1313

1414
env:
15-
DEVELOPER_DIR: /Applications/Xcode_16.4.app/Contents/Developer
16-
IOS_DEST: "platform=iOS Simulator,name=iPhone 16,OS=latest"
15+
DEVELOPER_DIR: /Applications/Xcode_26.1.app/Contents/Developer
16+
IOS_DEST: "platform=iOS Simulator,name=iPhone 17,OS=latest"
1717
SCHEME: ReactiveCollectionsKit
1818

1919
jobs:
2020
main:
2121
name: SwiftPM Build
22-
runs-on: macos-15
22+
runs-on: macos-latest
2323
steps:
2424
- name: git checkout
2525
uses: actions/checkout@v6

.swiftlint.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ excluded:
66
- Pods
77
- docs
88
- build
9+
- .build
910
- scripts
1011
- swiftpm
1112
- .bundle

CHANGELOG.md

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

88
- Improve debug descriptions (i.e., `CustomDebugStringConvertible`) for various types. ([@nuomi1](https://github.com/nuomi1), [#139](https://github.com/jessesquires/ReactiveCollectionsKit/pull/139))
99
- Implement (optional) debug logging for view model updates. You can now provide a logger for debugging purposes by setting `CollectionViewDriver.logger`. The library provides a default implementation via `RCKLogger.shared`. ([@nuomi1](https://github.com/nuomi1), [#141](https://github.com/jessesquires/ReactiveCollectionsKit/pull/141))
10-
- TBA
10+
- Upgrade to Xcode 26. ([@jessesquires](https://github.com/jessesquires), [#153](https://github.com/jessesquires/ReactiveCollectionsKit/pull/153))
1111

1212
0.1.8
1313
-----

Example/Tests/UITests/GridUITests.swift

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ final class GridUITests: XCTestCase, @unchecked Sendable {
2525

2626
@MainActor
2727
func test_grid_shuffle() {
28-
let shuffleButton = self.app.navigationBars["Grid"].buttons["repeat"]
28+
let shuffleButton = self.app.buttons["shuffle"].firstMatch
2929
XCTAssertTrue(shuffleButton.waitForExistence(timeout: 3))
3030

3131
for _ in 1...20 {
@@ -35,18 +35,19 @@ final class GridUITests: XCTestCase, @unchecked Sendable {
3535

3636
@MainActor
3737
func test_grid_remove_reset() {
38-
let shuffleButton = self.app.navigationBars["Grid"].buttons["repeat"]
38+
let shuffleButton = self.app.buttons["shuffle"].firstMatch
3939
XCTAssertTrue(shuffleButton.waitForExistence(timeout: 3))
4040
shuffleButton.tap()
4141

42-
let resetButton = self.app.navigationBars["Grid"].buttons["Refresh"]
42+
let resetButton = self.app.buttons["Refresh"].firstMatch
4343
XCTAssertTrue(resetButton.waitForExistence(timeout: 3))
4444
resetButton.tap()
4545

46-
let collectionViewsQuery = self.app.collectionViews
47-
collectionViewsQuery.buttons["Remove All"].tap()
46+
let removeAllButton = self.app.buttons["Remove All"].firstMatch
47+
XCTAssertTrue(removeAllButton.waitForExistence(timeout: 3))
48+
removeAllButton.tap()
4849

50+
XCTAssertTrue(resetButton.waitForExistence(timeout: 3))
4951
resetButton.tap()
50-
collectionViewsQuery.buttons["Reset"].tap()
5152
}
5253
}

Example/Tests/UITests/ListUITests.swift

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,13 @@ final class ListUITests: XCTestCase, @unchecked Sendable {
2525

2626
@MainActor
2727
func test_list_shuffle() {
28-
self.app.tabBars["Tab Bar"].buttons["List"].tap()
28+
let listTab = self.app.images["list.dash"].firstMatch
29+
listTab.tap()
2930

30-
let shuffleButton = self.app.navigationBars["List"].buttons["repeat"]
31+
let listView = self.app.staticTexts["List"].firstMatch
32+
XCTAssertTrue(listView.waitForExistence(timeout: 3))
33+
34+
let shuffleButton = self.app.buttons["shuffle"].firstMatch
3135
XCTAssertTrue(shuffleButton.waitForExistence(timeout: 3))
3236

3337
for _ in 1...20 {
@@ -37,20 +41,25 @@ final class ListUITests: XCTestCase, @unchecked Sendable {
3741

3842
@MainActor
3943
func test_list_remove_reset() {
40-
self.app.tabBars["Tab Bar"].buttons["List"].tap()
44+
let listTab = self.app.images["list.dash"].firstMatch
45+
listTab.tap()
46+
47+
let listView = self.app.staticTexts["List"].firstMatch
48+
XCTAssertTrue(listView.waitForExistence(timeout: 3))
4149

42-
let shuffleButton = self.app.navigationBars["List"].buttons["repeat"]
50+
let shuffleButton = self.app.buttons["shuffle"].firstMatch
4351
XCTAssertTrue(shuffleButton.waitForExistence(timeout: 3))
4452
shuffleButton.tap()
4553

46-
let resetButton = self.app.navigationBars["List"].buttons["Refresh"]
54+
let resetButton = self.app.buttons["Refresh"].firstMatch
4755
XCTAssertTrue(resetButton.waitForExistence(timeout: 3))
4856
resetButton.tap()
4957

50-
let collectionViewsQuery = self.app.collectionViews
51-
collectionViewsQuery.buttons["Remove All"].tap()
58+
let removeAllButton = self.app.buttons["Remove All"].firstMatch
59+
XCTAssertTrue(removeAllButton.waitForExistence(timeout: 3))
60+
removeAllButton.tap()
5261

62+
XCTAssertTrue(resetButton.waitForExistence(timeout: 3))
5363
resetButton.tap()
54-
collectionViewsQuery.buttons["Reset"].tap()
5564
}
5665
}

Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// swift-tools-version:6.0
1+
// swift-tools-version:6.2
22
// The swift-tools-version declares the minimum version
33
// of Swift required to build this package.
44
// ----------------------------------------------------

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ driver.update(viewModel: updated)
9292

9393
- iOS 15.0+
9494
- Swift 5.10+
95-
- Xcode 16.0+
95+
- Xcode 26.0+
9696
- [SwiftLint](https://github.com/realm/SwiftLint)
9797

9898
## Installation

scripts/lint.zsh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ fi
3333
PROJECT="ReactiveCollectionsKit.xcodeproj"
3434
SCHEME="ReactiveCollectionsKit"
3535

36-
VERSION="0.57.0"
36+
VERSION="0.62.2"
3737
FOUND=$(swiftlint version)
3838
CONFIG="./.swiftlint.yml"
3939

0 commit comments

Comments
 (0)