From a40d141185372e780f03f283175cef960bf8d116 Mon Sep 17 00:00:00 2001 From: astenvall Date: Thu, 26 Sep 2024 13:19:41 +0200 Subject: [PATCH] Xcode 16 (#199) * CircleCI - Run tests on `Xcode 16` * CircleCI - Update job reference * CircleCI - Update `Xcode 15` simulator * Increase waiting time in tests * Use `iOS 18.0` to run CI tests with `Xcode 16` * Update `PackageDescription` for `spm` to `5.7` * Use `iOS 18.0` and `iPhone 16` to run tests * Update `README` and `CHANGELOG` with `Xcode 16` details * Use `Flow` version `1.12.1` * Update `spm` files * Update `README` with new `Xcode` requirments --------- Co-authored-by: bartszczepaniak --- .circleci/config.yml | 32 +++++++++---------- CHANGELOG.md | 5 ++- Form.xcodeproj/project.pbxproj | 4 +-- .../xcshareddata/swiftpm/Package.resolved | 25 +++++++-------- FormTests/ValueFieldTests.swift | 2 +- Package.resolved | 24 +++++++------- Package.swift | 9 ++++-- README.md | 6 ++-- 8 files changed, 55 insertions(+), 52 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 86e3994..ed7e85f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -4,13 +4,13 @@ version: 2.1 anchors: - - &test_device "iPhone 15" - - &test_device_os "17.2" + - &test_device "iPhone 16" + - &test_device_os "18.0" - &clean_before_build true - &test_output_folder test_output - &default_executor macos: - xcode: "15.1.0" + xcode: "16.0.0" resource_class: macos.m1.large.gen1 env: @@ -56,8 +56,8 @@ commands: scheme: "Example" path: <> test_output_folder: *test_output_folder - simulator: "iPhone 15" - os_version: "17.2" + simulator: *test_device + os_version: *test_device_os # We introduced two separate commands for projects and workspaces because we didnt find a generic and non-confusing way to introduce # a condition to only pass either the project or the workspace environment argument to the fxcodebuild @@ -144,25 +144,25 @@ jobs: - store_test_results: path: swiftlint.html - test-xcode14-ios16: - macos: - xcode: "14.0.0" + test-xcode16-ios18: + <<: *default_executor steps: - - test_main_project: - simulator: "iPhone 14" - os_version: "16.0" + - test_main_project test-xcode15-ios17: - <<: *default_executor + macos: + xcode: "15.4.0" steps: - - test_main_project + - test_main_project: + simulator: "iPhone 15" + os_version: "17.5" test-example-messages: # can not use xcode > 14 since we have this error. # deprecate to_default_s: :to_s, deprecator: ActiveSupport.deprecator # to solve it we need to update the podspec. macos: - xcode: "15.1.0" + xcode: "16.0.0" steps: - test_example_project: path: Examples/Messages @@ -172,7 +172,7 @@ jobs: # deprecate to_default_s: :to_s, deprecator: ActiveSupport.deprecator # to solve it we need to update the podspec. macos: - xcode: "15.1.0" + xcode: "16.0.0" steps: - test_example_project: path: Examples/Demo @@ -183,8 +183,8 @@ workflows: jobs: - swiftlint: version: 0.49.1 - - test-xcode14-ios16 # Disable untill we fix test for Xcode 15 + - test-xcode16-ios18 - test-xcode15-ios17 - test-example-messages - test-example-demo diff --git a/CHANGELOG.md b/CHANGELOG.md index f11f132..6eac730 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ +# 4.1.0 +- Support `Xcode 16` + # 4.0.3 -- Support Xcode 15 +- Support `Xcode 15` # 4.0.0 - Replaced `Carthage` with `SPM` diff --git a/Form.xcodeproj/project.pbxproj b/Form.xcodeproj/project.pbxproj index 009daa1..54e7254 100644 --- a/Form.xcodeproj/project.pbxproj +++ b/Form.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 52; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -938,7 +938,7 @@ repositoryURL = "https://github.com/iZettle/Flow.git"; requirement = { kind = upToNextMajorVersion; - minimumVersion = 1.10.1; + minimumVersion = 1.12.1; }; }; /* End XCRemoteSwiftPackageReference section */ diff --git a/Form.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Form.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index d0e0a81..ce692ac 100644 --- a/Form.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Form.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,16 +1,15 @@ { - "object": { - "pins": [ - { - "package": "Flow", - "repositoryURL": "https://github.com/iZettle/Flow.git", - "state": { - "branch": null, - "revision": "ad38c734f16a404de8895236424bc4acc5355a3d", - "version": "1.10.1" - } + "originHash" : "af8820cba803a4990a87c58fd7afcb8f3aaf40249a6881c2c5b1e0a7921389a5", + "pins" : [ + { + "identity" : "flow", + "kind" : "remoteSourceControl", + "location" : "https://github.com/iZettle/Flow.git", + "state" : { + "revision" : "c3e69f924f046207487948dcad55826343a122d5", + "version" : "1.12.1" } - ] - }, - "version": 1 + } + ], + "version" : 3 } diff --git a/FormTests/ValueFieldTests.swift b/FormTests/ValueFieldTests.swift index 74ab0fe..647a385 100644 --- a/FormTests/ValueFieldTests.swift +++ b/FormTests/ValueFieldTests.swift @@ -121,7 +121,7 @@ class ValueFieldTests: XCTestCase { } ) - wait(for: [fieldBecameFirstResponder, fieldResignedFirstResponder], timeout: 2) + wait(for: [fieldBecameFirstResponder, fieldResignedFirstResponder], timeout: 10) } // Since iOS 16 a permission dialog pops up when the pasteboard is used so this results with diff --git a/Package.resolved b/Package.resolved index dfe0701..ae0d028 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,16 +1,14 @@ { - "object": { - "pins": [ - { - "package": "Flow", - "repositoryURL": "https://github.com/izettle/Flow.git", - "state": { - "branch": null, - "revision": "3bc56e13c29cfbcc77cdae6193bbad697ee95799", - "version": "1.10.0" - } + "pins" : [ + { + "identity" : "flow", + "kind" : "remoteSourceControl", + "location" : "https://github.com/iZettle/Flow.git", + "state" : { + "revision" : "c3e69f924f046207487948dcad55826343a122d5", + "version" : "1.12.1" } - ] - }, - "version": 1 + } + ], + "version" : 2 } diff --git a/Package.swift b/Package.swift index 92b0275..f10c7da 100644 --- a/Package.swift +++ b/Package.swift @@ -1,11 +1,11 @@ -// swift-tools-version:5.1 +// swift-tools-version:5.7 import PackageDescription let package = Package( name: "Form", platforms: [ - .iOS(.v10) + .iOS(.v12) ], products: [ .library( @@ -13,7 +13,10 @@ let package = Package( targets: ["Form"]), ], dependencies: [ - .package(url: "https://github.com/izettle/Flow.git", .upToNextMajor(from: "1.10.0")) + .package( + url: "https://github.com/iZettle/Flow.git", + .upToNextMajor(from: "1.12.1") + ) ], targets: [ .target( diff --git a/README.md b/README.md index 0337744..6fd9848 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![Build Status](https://travis-ci.org/iZettle/Form.svg?branch=master)](https://travis-ci.org/iZettle/Form) [![Platforms](https://img.shields.io/badge/platform-%20iOS-gray.svg)](https://img.shields.io/badge/platform-%20iOS-gray.svg) [![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) -![Xcode version](https://img.shields.io/badge/Xcode-13.2.0-green) +![Xcode version](https://img.shields.io/badge/Xcode-16.0.0-green) Form is an iOS Swift library for building and styling UIs. A toolbox of highly composable utilities for solving common UI related problems, such as: @@ -125,9 +125,9 @@ Both forms and tables are using the same styling allowing you to seamlessly inte ## Requirements -- Xcode `9.3+` +- Xcode `10.0+` - Swift 5 -- iOS `9.0+` +- iOS `12.0+` ## Installation