From f3232f9f20789763aea6039e9407d83b716f2467 Mon Sep 17 00:00:00 2001 From: Jindrich Dolezal Date: Mon, 7 Sep 2026 23:43:53 +0200 Subject: [PATCH 1/7] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20Bump=20SPM=20platforms?= =?UTF-8?q?=20to=20iOS=2015,=20macOS=2012,=20tvOS=2015,=20watchOS=209?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Package.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Package.swift b/Package.swift index e6f3765..d8211c7 100644 --- a/Package.swift +++ b/Package.swift @@ -4,10 +4,10 @@ import PackageDescription let package = Package( name: "ACKategories", platforms: [ - .iOS(.v12), - .macOS(.v10_13), - .watchOS(.v5), - .tvOS(.v12), + .iOS(.v15), + .macOS(.v12), + .watchOS(.v9), + .tvOS(.v15), ], products: [ .library(name: "ACKategories", targets: ["ACKategories"]), From 103f746f452ce4e6ac16c2969d2fc504aadc1a18 Mon Sep 17 00:00:00 2001 From: Jindrich Dolezal Date: Mon, 7 Sep 2026 23:45:17 +0200 Subject: [PATCH 2/7] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20Bump=20Xcode=20project?= =?UTF-8?q?=20deployment=20targets=20to=20match=20SPM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ACKategories.xcodeproj/project.pbxproj | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ACKategories.xcodeproj/project.pbxproj b/ACKategories.xcodeproj/project.pbxproj index 78f25e2..72b2c2f 100644 --- a/ACKategories.xcodeproj/project.pbxproj +++ b/ACKategories.xcodeproj/project.pbxproj @@ -2242,15 +2242,15 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MACOSX_DEPLOYMENT_TARGET = 10.13; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + MACOSX_DEPLOYMENT_TARGET = 12.0; MARKETING_VERSION = 6.16.0; ONLY_ACTIVE_ARCH = YES; SDKROOT = auto; SUPPORTED_PLATFORMS = "appletvos appletvsimulator iphoneos iphonesimulator macosx watchos watchsimulator"; SWIFT_VERSION = 5.0; - TVOS_DEPLOYMENT_TARGET = 12.0; - WATCHOS_DEPLOYMENT_TARGET = 5.0; + TVOS_DEPLOYMENT_TARGET = 15.0; + WATCHOS_DEPLOYMENT_TARGET = 9.0; }; name = Debug; }; @@ -2288,15 +2288,15 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MACOSX_DEPLOYMENT_TARGET = 10.13; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + MACOSX_DEPLOYMENT_TARGET = 12.0; MARKETING_VERSION = 6.16.0; SDKROOT = auto; SUPPORTED_PLATFORMS = "appletvos appletvsimulator iphoneos iphonesimulator macosx watchos watchsimulator"; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_VERSION = 5.0; - TVOS_DEPLOYMENT_TARGET = 12.0; - WATCHOS_DEPLOYMENT_TARGET = 5.0; + TVOS_DEPLOYMENT_TARGET = 15.0; + WATCHOS_DEPLOYMENT_TARGET = 9.0; }; name = Release; }; From b9c3ecf239e6fab124b81071b44e19580622b137 Mon Sep 17 00:00:00 2001 From: Jindrich Dolezal Date: Mon, 7 Sep 2026 23:45:33 +0200 Subject: [PATCH 3/7] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20Bump=20example=20app?= =?UTF-8?q?=20deployment=20target=20to=20iOS=2015?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ACKategories.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ACKategories.xcodeproj/project.pbxproj b/ACKategories.xcodeproj/project.pbxproj index 72b2c2f..fbb1d35 100644 --- a/ACKategories.xcodeproj/project.pbxproj +++ b/ACKategories.xcodeproj/project.pbxproj @@ -1745,7 +1745,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_FILE = ACKategoriesExample/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.2; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -1813,7 +1813,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_FILE = ACKategoriesExample/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.2; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", From 33eaf7f1e6bc912827799582c7f574de420f31bf Mon Sep 17 00:00:00 2001 From: Jindrich Dolezal Date: Mon, 7 Sep 2026 23:46:00 +0200 Subject: [PATCH 4/7] =?UTF-8?q?=F0=9F=93=9D=20Document=20supported=20platf?= =?UTF-8?q?orm=20minimums?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c3a58ef..d50d736 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,13 @@ A bunch of tools, cocoa subclasses and extensions we created and use at Ackee. +## Requirements + +- iOS 15+ +- macOS 12+ +- tvOS 15+ +- watchOS 9+ + ## Installation ### Carthage @@ -52,7 +59,7 @@ button.on(.touchUpInside) { sender in ... } ``` -If running on iOS 9 or later you can use implicit parameter `UIControl.primaryActionTriggered`. +You can also use implicit parameter `UIControl.primaryActionTriggered`. ### String - trim strings easily From 09259e173c470c4587ffe690ff4cf8059abdbda8 Mon Sep 17 00:00:00 2001 From: Jindrich Dolezal Date: Tue, 8 Sep 2026 00:00:33 +0200 Subject: [PATCH 5/7] =?UTF-8?q?=F0=9F=93=9D=20Add=20CHANGELOG=20entry=20fo?= =?UTF-8?q?r=20deployment=20target=20bump?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e8fdc6..6eb5c35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ ## Next +- Raise deployment targets to iOS 15, macOS 12, tvOS 15 and watchOS 9, required by Xcode 27 ([#158](https://github.com/AckeeCZ/ACKategories/pull/158), kudos to @Jidoml) + - Xcode 27 refuses to build below these versions; note the watchOS floor is 9.0, not 8.0 - Rename `Base.ViewController` to `BaseViewController` ([#155](https://github.com/AckeeCZ/ACKategories/pull/155), kudos to @komkovla) - Add Objective-C name annotation `@objc(ACKBaseViewController)` for better Objective-C interoperability - Add deprecated typealias `Base.ViewController` for backward compatibility From 65c11be941c2e348fbcb5646f4a6f3deac9c2e62 Mon Sep 17 00:00:00 2001 From: Jindrich Dolezal Date: Tue, 8 Sep 2026 10:55:02 +0200 Subject: [PATCH 6/7] =?UTF-8?q?=F0=9F=94=A7=20Repair=20CI=20after=20macos-?= =?UTF-8?q?latest=20runner=20image=20drift?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 2 +- .github/workflows/docbuild.yml | 2 +- .github/workflows/tests.yml | 10 ++++++---- CHANGELOG.md | 3 +++ 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9284bed..c6644fe 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,7 +7,7 @@ on: - main env: - DEVELOPER_DIR: /Applications/Xcode_26.1.1.app/Contents/Developer + DEVELOPER_DIR: /Applications/Xcode_26.6.app/Contents/Developer jobs: carthage: diff --git a/.github/workflows/docbuild.yml b/.github/workflows/docbuild.yml index f21bf9f..af9fdb9 100644 --- a/.github/workflows/docbuild.yml +++ b/.github/workflows/docbuild.yml @@ -15,7 +15,7 @@ concurrency: cancel-in-progress: true env: - DEVELOPER_DIR: /Applications/Xcode_26.1.1.app/Contents/Developer + DEVELOPER_DIR: /Applications/Xcode_26.6.app/Contents/Developer jobs: # Single deploy job since we're just deploying diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index fe4c6bc..4ef8fe8 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -3,14 +3,16 @@ name: Tests on: [workflow_call] env: - DEVELOPER_DIR: /Applications/Xcode_26.1.1.app/Contents/Developer + DEVELOPER_DIR: /Applications/Xcode_26.6.app/Contents/Developer jobs: xcodebuild: name: Xcodebuild runs-on: macos-latest env: - IOS_DEVICE: iPhone 16 Pro + IOS_DEVICE: iPhone 17 Pro + WATCHOS_DEVICE: Apple Watch Ultra 3 (49mm) + TVOS_DEVICE: Apple TV 4K (3rd generation) steps: - uses: actions/checkout@v4 - name: iOS tests @@ -35,14 +37,14 @@ jobs: name: Tests-macOS.xcresult path: Tests-macOS.xcresult - name: watchOS tests - run: set -o pipefail && xcodebuild test -scheme ACKategories -resultBundlePath Tests-watchOS.xcresult -sdk watchsimulator -destination "platform=watchOS Simulator,name=Apple Watch Ultra 2 (49mm),OS=latest" ONLY_ACTIVE_ARCH=YES | xcpretty + run: set -o pipefail && xcodebuild test -scheme ACKategories -resultBundlePath Tests-watchOS.xcresult -sdk watchsimulator -destination "platform=watchOS Simulator,name=$WATCHOS_DEVICE,OS=latest" ONLY_ACTIVE_ARCH=YES | xcpretty - uses: actions/upload-artifact@v4 if: failure() with: name: Tests-watchOS.xcresult path: Tests-watchOS.xcresult - name: tvOS tests - run: set -o pipefail && xcodebuild test -scheme ACKategories -resultBundlePath Tests-tvOS.xcresult -sdk appletvsimulator -destination "platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest" ONLY_ACTIVE_ARCH=YES | xcpretty + run: set -o pipefail && xcodebuild test -scheme ACKategories -resultBundlePath Tests-tvOS.xcresult -sdk appletvsimulator -destination "platform=tvOS Simulator,name=$TVOS_DEVICE,OS=latest" ONLY_ACTIVE_ARCH=YES | xcpretty - uses: actions/upload-artifact@v4 if: failure() with: diff --git a/CHANGELOG.md b/CHANGELOG.md index 6eb5c35..dba6307 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,9 @@ - Raise deployment targets to iOS 15, macOS 12, tvOS 15 and watchOS 9, required by Xcode 27 ([#158](https://github.com/AckeeCZ/ACKategories/pull/158), kudos to @Jidoml) - Xcode 27 refuses to build below these versions; note the watchOS floor is 9.0, not 8.0 +- Repair CI after `macos-latest` runner image drift ([#158](https://github.com/AckeeCZ/ACKategories/pull/158), kudos to @Jidoml) + - Bump the pinned Xcode to 26.6 — the image no longer ships the iOS/tvOS/watchOS 26.1 simulator runtimes that 26.1.1 needs + - Refresh simulator destinations to devices that still exist (`iPhone 17 Pro`, `Apple Watch Ultra 3 (49mm)`) - Rename `Base.ViewController` to `BaseViewController` ([#155](https://github.com/AckeeCZ/ACKategories/pull/155), kudos to @komkovla) - Add Objective-C name annotation `@objc(ACKBaseViewController)` for better Objective-C interoperability - Add deprecated typealias `Base.ViewController` for backward compatibility From 8a8b237d37ffb7dfee0ffd26484a2f0dedf5a185 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Olejn=C3=ADk?= Date: Tue, 8 Sep 2026 15:03:27 +0200 Subject: [PATCH 7/7] Update README with usage examples for UIControl Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d50d736..f486f97 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ button.on(.touchUpInside) { sender in ... } ``` -You can also use implicit parameter `UIControl.primaryActionTriggered`. +You can also omit the event to use the primary action (`.primaryActionTriggered`): `button.on { sender in ... }`. ### String - trim strings easily