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/ACKategories.xcodeproj/project.pbxproj b/ACKategories.xcodeproj/project.pbxproj index 78f25e2..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", @@ -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; }; diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e8fdc6..dba6307 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,11 @@ ## 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 +- 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 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"]), diff --git a/README.md b/README.md index c3a58ef..f486f97 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 omit the event to use the primary action (`.primaryActionTriggered`): `button.on { sender in ... }`. ### String - trim strings easily