From 18fa79be28551c6e90fd689920a793d3d19682ae Mon Sep 17 00:00:00 2001 From: richherrera Date: Tue, 14 Jan 2025 15:09:20 -0600 Subject: [PATCH 01/16] Bump Braintree.podspec and Package.swift to 5.10 --- Braintree.podspec | 2 +- Package.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Braintree.podspec b/Braintree.podspec index 839bf1b0f..05ec46c58 100644 --- a/Braintree.podspec +++ b/Braintree.podspec @@ -17,7 +17,7 @@ Pod::Spec.new do |s| s.platform = :ios, "16.0" s.compiler_flags = "-Wall -Werror -Wextra" - s.swift_version = "5.9" + s.swift_version = "5.10" s.default_subspecs = %w[Core Card PayPal] diff --git a/Package.swift b/Package.swift index e12efe461..4e1dde529 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version:5.9 +// swift-tools-version:5.10 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription From ad62b81a3d23610c10168266f7c9b9a375649243 Mon Sep 17 00:00:00 2001 From: richherrera Date: Tue, 14 Jan 2025 15:14:02 -0600 Subject: [PATCH 02/16] Update workflows to use Xcode 16 --- .github/workflows/build.yml | 18 +++++++++--------- .github/workflows/release.yml | 4 ++-- .github/workflows/tests.yml | 12 ++++++------ 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2f92182de..13b48a5f0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,7 +5,7 @@ concurrency: cancel-in-progress: true jobs: cocoapods: - name: CocoaPods (Xcode 15.0.1) + name: CocoaPods (Xcode 16.0) runs-on: macOS-14-xlarge steps: - name: Check out repository @@ -13,14 +13,14 @@ jobs: with: ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - - name: Use Xcode 15.0.1 - run: sudo xcode-select -switch /Applications/Xcode_15.0.1.app + - name: Use Xcode 16.0 + run: sudo xcode-select -switch /Applications/Xcode_16.0.app - name: Install CocoaPod dependencies run: pod install - name: Run pod lib lint run: pod lib lint carthage: - name: Carthage (Xcode 15.0.1) + name: Carthage (Xcode 16.0) runs-on: macOS-14-xlarge steps: - name: Check out repository @@ -29,8 +29,8 @@ jobs: fetch-depth: 0 ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - - name: Use Xcode 15.0.1 - run: sudo xcode-select -switch /Applications/Xcode_15.0.1.app + - name: Use Xcode 16.0 + run: sudo xcode-select -switch /Applications/Xcode_16.0.app - name: Remove SPMTest run: | git checkout $GITHUB_HEAD_REF @@ -47,7 +47,7 @@ jobs: - name: Build CarthageTest run: xcodebuild -project 'SampleApps/CarthageTest/CarthageTest.xcodeproj' -scheme 'CarthageTest' clean build CODE_SIGNING_ALLOWED=NO spm: - name: SPM (Xcode 15.0.1) + name: SPM (Xcode 16.0) runs-on: macOS-14-xlarge steps: - name: Check out repository @@ -55,8 +55,8 @@ jobs: with: ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - - name: Use Xcode 15.0.1 - run: sudo xcode-select -switch /Applications/Xcode_15.0.1.app + - name: Use Xcode 16.0 + run: sudo xcode-select -switch /Applications/Xcode_16.0.app - name: Use current branch run: sed -i '' 's/branch = .*/branch = \"'"${GITHUB_HEAD_REF//\//\/}"'\";/' SampleApps/SPMTest/SPMTest.xcodeproj/project.pbxproj - name: Run swift package resolve diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0a8ee1477..fe181637f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,8 +15,8 @@ jobs: with: fetch-depth: 0 - - name: Use Xcode 15.0.1 - run: sudo xcode-select -switch /Applications/Xcode_15.0.1.app + - name: Use Xcode 16.0 + run: sudo xcode-select -switch /Applications/Xcode_16.0.app - name: Check for unreleased section in changelog run: grep "## unreleased" CHANGELOG.md || (echo "::error::No unreleased section found in CHANGELOG"; exit 1) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index e4c82b9c0..6b14694cd 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -13,8 +13,8 @@ jobs: with: ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - - name: Use Xcode 15.0.1 - run: sudo xcode-select -switch /Applications/Xcode_15.0.1.app + - name: Use Xcode 16.0 + run: sudo xcode-select -switch /Applications/Xcode_16.0.app - name: Install Package dependencies run: swift package resolve - name: Install CocoaPod dependencies @@ -30,8 +30,8 @@ jobs: with: ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - - name: Use Xcode 15.0.1 - run: sudo xcode-select -switch /Applications/Xcode_15.0.1.app + - name: Use Xcode 16.0 + run: sudo xcode-select -switch /Applications/Xcode_16.0.app - name: Install CocoaPod dependencies run: pod install - name: Run UI Tests @@ -45,8 +45,8 @@ jobs: with: ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - - name: Use Xcode 15.0.1 - run: sudo xcode-select -switch /Applications/Xcode_15.0.1.app + - name: Use Xcode 16.0 + run: sudo xcode-select -switch /Applications/Xcode_16.0.app - name: Install Package dependencies run: swift package resolve - name: Install CocoaPod dependencies From 9e70bac5a3b3191c21b05f68f2392503a448f2a6 Mon Sep 17 00:00:00 2001 From: richherrera Date: Tue, 14 Jan 2025 15:54:25 -0600 Subject: [PATCH 03/16] Update workflows to use xcode 16.2.0 --- .github/workflows/build.yml | 18 +++++++++--------- .github/workflows/release.yml | 4 ++-- .github/workflows/tests.yml | 12 ++++++------ 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 13b48a5f0..fa601b7cf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,7 +5,7 @@ concurrency: cancel-in-progress: true jobs: cocoapods: - name: CocoaPods (Xcode 16.0) + name: CocoaPods (Xcode 16.2.0) runs-on: macOS-14-xlarge steps: - name: Check out repository @@ -13,14 +13,14 @@ jobs: with: ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - - name: Use Xcode 16.0 - run: sudo xcode-select -switch /Applications/Xcode_16.0.app + - name: Use Xcode 16.2.0 + run: sudo xcode-select -switch /Applications/Xcode_16.2.0.app - name: Install CocoaPod dependencies run: pod install - name: Run pod lib lint run: pod lib lint carthage: - name: Carthage (Xcode 16.0) + name: Carthage (Xcode 16.2.0) runs-on: macOS-14-xlarge steps: - name: Check out repository @@ -29,8 +29,8 @@ jobs: fetch-depth: 0 ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - - name: Use Xcode 16.0 - run: sudo xcode-select -switch /Applications/Xcode_16.0.app + - name: Use Xcode 16.2.0 + run: sudo xcode-select -switch /Applications/Xcode_16.2.0.app - name: Remove SPMTest run: | git checkout $GITHUB_HEAD_REF @@ -47,7 +47,7 @@ jobs: - name: Build CarthageTest run: xcodebuild -project 'SampleApps/CarthageTest/CarthageTest.xcodeproj' -scheme 'CarthageTest' clean build CODE_SIGNING_ALLOWED=NO spm: - name: SPM (Xcode 16.0) + name: SPM (Xcode 16.2.0) runs-on: macOS-14-xlarge steps: - name: Check out repository @@ -55,8 +55,8 @@ jobs: with: ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - - name: Use Xcode 16.0 - run: sudo xcode-select -switch /Applications/Xcode_16.0.app + - name: Use Xcode 16.2.0 + run: sudo xcode-select -switch /Applications/Xcode_16.2.0.app - name: Use current branch run: sed -i '' 's/branch = .*/branch = \"'"${GITHUB_HEAD_REF//\//\/}"'\";/' SampleApps/SPMTest/SPMTest.xcodeproj/project.pbxproj - name: Run swift package resolve diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fe181637f..f00849bd9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,8 +15,8 @@ jobs: with: fetch-depth: 0 - - name: Use Xcode 16.0 - run: sudo xcode-select -switch /Applications/Xcode_16.0.app + - name: Use Xcode 16.2.0 + run: sudo xcode-select -switch /Applications/Xcode_16.2.0.app - name: Check for unreleased section in changelog run: grep "## unreleased" CHANGELOG.md || (echo "::error::No unreleased section found in CHANGELOG"; exit 1) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 6b14694cd..140c28a93 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -13,8 +13,8 @@ jobs: with: ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - - name: Use Xcode 16.0 - run: sudo xcode-select -switch /Applications/Xcode_16.0.app + - name: Use Xcode 16.2.0 + run: sudo xcode-select -switch /Applications/Xcode_16.2.0.app - name: Install Package dependencies run: swift package resolve - name: Install CocoaPod dependencies @@ -30,8 +30,8 @@ jobs: with: ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - - name: Use Xcode 16.0 - run: sudo xcode-select -switch /Applications/Xcode_16.0.app + - name: Use Xcode 16.2.0 + run: sudo xcode-select -switch /Applications/Xcode_16.2.0.app - name: Install CocoaPod dependencies run: pod install - name: Run UI Tests @@ -45,8 +45,8 @@ jobs: with: ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - - name: Use Xcode 16.0 - run: sudo xcode-select -switch /Applications/Xcode_16.0.app + - name: Use Xcode 16.2.0 + run: sudo xcode-select -switch /Applications/Xcode_16.2.0.app - name: Install Package dependencies run: swift package resolve - name: Install CocoaPod dependencies From 9176d0c0ee9eb2586d39f9a8bd2fd20e74ccdc65 Mon Sep 17 00:00:00 2001 From: richherrera Date: Wed, 15 Jan 2025 09:34:26 -0600 Subject: [PATCH 04/16] Update test workflow os version --- .github/workflows/tests.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 140c28a93..a512d685b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -20,7 +20,7 @@ jobs: - name: Install CocoaPod dependencies run: pod install - name: Run Unit Tests - run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Debug' -scheme 'UnitTests' -destination 'name=iPhone 15,OS=17.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify + run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Debug' -scheme 'UnitTests' -destination 'name=iPhone 15,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify ui_test_job: name: UI runs-on: macOS-14-xlarge @@ -35,7 +35,7 @@ jobs: - name: Install CocoaPod dependencies run: pod install - name: Run UI Tests - run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'UITests' -destination 'name=iPhone 15,OS=17.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify + run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'UITests' -destination 'name=iPhone 15,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify integration_test_job: name: Integration runs-on: macOS-14-xlarge @@ -52,4 +52,4 @@ jobs: - name: Install CocoaPod dependencies run: pod install - name: Run Integration Tests - run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'IntegrationTests' -destination 'name=iPhone 15,OS=17.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify + run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'IntegrationTests' -destination 'name=iPhone 15,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify From da39a7022d43520533b04b25c40139623c1567d5 Mon Sep 17 00:00:00 2001 From: richherrera Date: Wed, 15 Jan 2025 12:55:35 -0600 Subject: [PATCH 05/16] Test sdk name --- .github/workflows/tests.yml | 6 +++--- .../xcshareddata/xcschemes/UnitTests.xcscheme | 11 ----------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a512d685b..69c4dae2f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -20,7 +20,7 @@ jobs: - name: Install CocoaPod dependencies run: pod install - name: Run Unit Tests - run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Debug' -scheme 'UnitTests' -destination 'name=iPhone 15,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify + run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator18.2' -configuration 'Debug' -scheme 'UnitTests' -destination 'name=iPhone 15,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify ui_test_job: name: UI runs-on: macOS-14-xlarge @@ -35,7 +35,7 @@ jobs: - name: Install CocoaPod dependencies run: pod install - name: Run UI Tests - run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'UITests' -destination 'name=iPhone 15,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify + run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator18.2' -configuration 'Release' -scheme 'UITests' -destination 'name=iPhone 15,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify integration_test_job: name: Integration runs-on: macOS-14-xlarge @@ -52,4 +52,4 @@ jobs: - name: Install CocoaPod dependencies run: pod install - name: Run Integration Tests - run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'IntegrationTests' -destination 'name=iPhone 15,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify + run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator18.2' -configuration 'Release' -scheme 'IntegrationTests' -destination 'name=iPhone 15,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify diff --git a/Braintree.xcodeproj/xcshareddata/xcschemes/UnitTests.xcscheme b/Braintree.xcodeproj/xcshareddata/xcschemes/UnitTests.xcscheme index cf93ea140..cbd00f549 100644 --- a/Braintree.xcodeproj/xcshareddata/xcschemes/UnitTests.xcscheme +++ b/Braintree.xcodeproj/xcshareddata/xcschemes/UnitTests.xcscheme @@ -141,17 +141,6 @@ ReferencedContainer = "container:Braintree.xcodeproj"> - - - - From 983444e12f7eb649a349036d866c83455a65fe08 Mon Sep 17 00:00:00 2001 From: richherrera Date: Wed, 15 Jan 2025 12:58:25 -0600 Subject: [PATCH 06/16] Test path instead of symlink --- .github/workflows/tests.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 69c4dae2f..4dd70b337 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -13,14 +13,14 @@ jobs: with: ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - - name: Use Xcode 16.2.0 - run: sudo xcode-select -switch /Applications/Xcode_16.2.0.app + - name: Use Xcode 16.2 + run: sudo xcode-select -switch /Applications/Xcode_16.2.app - name: Install Package dependencies run: swift package resolve - name: Install CocoaPod dependencies run: pod install - name: Run Unit Tests - run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator18.2' -configuration 'Debug' -scheme 'UnitTests' -destination 'name=iPhone 15,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify + run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Debug' -scheme 'UnitTests' -destination 'name=iPhone 15,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify ui_test_job: name: UI runs-on: macOS-14-xlarge @@ -30,12 +30,12 @@ jobs: with: ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - - name: Use Xcode 16.2.0 - run: sudo xcode-select -switch /Applications/Xcode_16.2.0.app + - name: Use Xcode 16.2 + run: sudo xcode-select -switch /Applications/Xcode_16.2.app - name: Install CocoaPod dependencies run: pod install - name: Run UI Tests - run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator18.2' -configuration 'Release' -scheme 'UITests' -destination 'name=iPhone 15,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify + run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'UITests' -destination 'name=iPhone 15,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify integration_test_job: name: Integration runs-on: macOS-14-xlarge @@ -45,11 +45,11 @@ jobs: with: ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - - name: Use Xcode 16.2.0 - run: sudo xcode-select -switch /Applications/Xcode_16.2.0.app + - name: Use Xcode 16.2 + run: sudo xcode-select -switch /Applications/Xcode_16.2.app - name: Install Package dependencies run: swift package resolve - name: Install CocoaPod dependencies run: pod install - name: Run Integration Tests - run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator18.2' -configuration 'Release' -scheme 'IntegrationTests' -destination 'name=iPhone 15,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify + run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'IntegrationTests' -destination 'name=iPhone 15,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify From d4e4a92a98a9cbdce0458ec4e7f7ec7504421734 Mon Sep 17 00:00:00 2001 From: richherrera Date: Wed, 15 Jan 2025 13:01:52 -0600 Subject: [PATCH 07/16] Test name iphone 18.1 --- .github/workflows/tests.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 4dd70b337..6d9e125b2 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -20,7 +20,7 @@ jobs: - name: Install CocoaPod dependencies run: pod install - name: Run Unit Tests - run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Debug' -scheme 'UnitTests' -destination 'name=iPhone 15,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify + run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Debug' -scheme 'UnitTests' -destination 'name=iPhone 15,OS=18.1,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify ui_test_job: name: UI runs-on: macOS-14-xlarge @@ -35,7 +35,7 @@ jobs: - name: Install CocoaPod dependencies run: pod install - name: Run UI Tests - run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'UITests' -destination 'name=iPhone 15,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify + run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'UITests' -destination 'name=iPhone 15,OS=18.1,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify integration_test_job: name: Integration runs-on: macOS-14-xlarge @@ -52,4 +52,4 @@ jobs: - name: Install CocoaPod dependencies run: pod install - name: Run Integration Tests - run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'IntegrationTests' -destination 'name=iPhone 15,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify + run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'IntegrationTests' -destination 'name=iPhone 15,OS=18.1,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify From 2dccc7ba812ec3182ce431ea2f3554474434de5b Mon Sep 17 00:00:00 2001 From: richherrera Date: Wed, 15 Jan 2025 13:07:45 -0600 Subject: [PATCH 08/16] Test sdk iphonesimulator18.1 --- .github/workflows/tests.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 6d9e125b2..f84af4ef6 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -20,7 +20,7 @@ jobs: - name: Install CocoaPod dependencies run: pod install - name: Run Unit Tests - run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Debug' -scheme 'UnitTests' -destination 'name=iPhone 15,OS=18.1,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify + run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator18.1' -configuration 'Debug' -scheme 'UnitTests' -destination 'name=iPhone 15,OS=18.1,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify ui_test_job: name: UI runs-on: macOS-14-xlarge @@ -35,7 +35,7 @@ jobs: - name: Install CocoaPod dependencies run: pod install - name: Run UI Tests - run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'UITests' -destination 'name=iPhone 15,OS=18.1,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify + run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator18.1' -configuration 'Release' -scheme 'UITests' -destination 'name=iPhone 15,OS=18.1,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify integration_test_job: name: Integration runs-on: macOS-14-xlarge @@ -52,4 +52,4 @@ jobs: - name: Install CocoaPod dependencies run: pod install - name: Run Integration Tests - run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'IntegrationTests' -destination 'name=iPhone 15,OS=18.1,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify + run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator18.1' -configuration 'Release' -scheme 'IntegrationTests' -destination 'name=iPhone 15,OS=18.1,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify From f09a64040da8419f1fb14511300b94d382da8cd7 Mon Sep 17 00:00:00 2001 From: richherrera Date: Wed, 15 Jan 2025 13:15:11 -0600 Subject: [PATCH 09/16] Revert sdk config and use macos-15-xlarge --- .github/workflows/tests.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f84af4ef6..472761e1b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -6,21 +6,21 @@ concurrency: jobs: unit_test_job: name: Unit - runs-on: macOS-14-xlarge + runs-on: macOS-15-xlarge steps: - name: Checkout repository uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - - name: Use Xcode 16.2 - run: sudo xcode-select -switch /Applications/Xcode_16.2.app + - name: Use Xcode 16.2.0 + run: sudo xcode-select -switch /Applications/Xcode_16.2.0.app - name: Install Package dependencies run: swift package resolve - name: Install CocoaPod dependencies run: pod install - name: Run Unit Tests - run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator18.1' -configuration 'Debug' -scheme 'UnitTests' -destination 'name=iPhone 15,OS=18.1,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify + run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Debug' -scheme 'UnitTests' -destination 'name=iPhone 15,OS=17.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify ui_test_job: name: UI runs-on: macOS-14-xlarge @@ -30,12 +30,12 @@ jobs: with: ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - - name: Use Xcode 16.2 - run: sudo xcode-select -switch /Applications/Xcode_16.2.app + - name: Use Xcode 16.2.0 + run: sudo xcode-select -switch /Applications/Xcode_16.2.0.app - name: Install CocoaPod dependencies run: pod install - name: Run UI Tests - run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator18.1' -configuration 'Release' -scheme 'UITests' -destination 'name=iPhone 15,OS=18.1,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify + run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'UITests' -destination 'name=iPhone 15,OS=17.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify integration_test_job: name: Integration runs-on: macOS-14-xlarge @@ -45,11 +45,11 @@ jobs: with: ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - - name: Use Xcode 16.2 - run: sudo xcode-select -switch /Applications/Xcode_16.2.app + - name: Use Xcode 16.2.0 + run: sudo xcode-select -switch /Applications/Xcode_16.2.0.app - name: Install Package dependencies run: swift package resolve - name: Install CocoaPod dependencies run: pod install - name: Run Integration Tests - run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator18.1' -configuration 'Release' -scheme 'IntegrationTests' -destination 'name=iPhone 15,OS=18.1,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify + run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'IntegrationTests' -destination 'name=iPhone 15,OS=17.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify From 0f612f075bf8edd0fa8f0d3e1dfa133abb49d208 Mon Sep 17 00:00:00 2001 From: richherrera Date: Wed, 15 Jan 2025 13:24:31 -0600 Subject: [PATCH 10/16] Test iphone 16 name and 18.2 os --- .github/workflows/tests.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 472761e1b..56d640cdd 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -20,7 +20,7 @@ jobs: - name: Install CocoaPod dependencies run: pod install - name: Run Unit Tests - run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Debug' -scheme 'UnitTests' -destination 'name=iPhone 15,OS=17.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify + run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Debug' -scheme 'UnitTests' -destination 'name=iPhone 16,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify ui_test_job: name: UI runs-on: macOS-14-xlarge @@ -35,7 +35,7 @@ jobs: - name: Install CocoaPod dependencies run: pod install - name: Run UI Tests - run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'UITests' -destination 'name=iPhone 15,OS=17.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify + run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'UITests' -destination 'name=iPhone 16,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify integration_test_job: name: Integration runs-on: macOS-14-xlarge @@ -52,4 +52,4 @@ jobs: - name: Install CocoaPod dependencies run: pod install - name: Run Integration Tests - run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'IntegrationTests' -destination 'name=iPhone 15,OS=17.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify + run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'IntegrationTests' -destination 'name=iPhone 16,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify From ce77e5c8e6e2b02ee933abf11d95a05ad398e243 Mon Sep 17 00:00:00 2001 From: richherrera Date: Wed, 15 Jan 2025 13:33:01 -0600 Subject: [PATCH 11/16] Update all tests to use macos-15-xlarge --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 56d640cdd..05b7928ca 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,7 +23,7 @@ jobs: run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Debug' -scheme 'UnitTests' -destination 'name=iPhone 16,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify ui_test_job: name: UI - runs-on: macOS-14-xlarge + runs-on: macOS-15-xlarge steps: - name: Checkout repository uses: actions/checkout@v4 @@ -38,7 +38,7 @@ jobs: run: set -o pipefail && xcodebuild -workspace 'Braintree.xcworkspace' -sdk 'iphonesimulator' -configuration 'Release' -scheme 'UITests' -destination 'name=iPhone 16,OS=18.2,platform=iOS Simulator' test | ./Pods/xcbeautify/xcbeautify integration_test_job: name: Integration - runs-on: macOS-14-xlarge + runs-on: macOS-15-xlarge steps: - name: Checkout repository uses: actions/checkout@v4 From 493adf68e6216b1a57b07053b04874f169ac6033 Mon Sep 17 00:00:00 2001 From: richherrera Date: Wed, 15 Jan 2025 13:34:37 -0600 Subject: [PATCH 12/16] Update release.yml to use macos-15-xlarge --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f00849bd9..bacbf4ec3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,7 +8,7 @@ on: jobs: release: name: Release - runs-on: macOS-14-xlarge + runs-on: macOS-15-xlarge steps: - name: Check out repository uses: actions/checkout@v4 From 63ffa3db2b801fd7f80b30e14895de0c85d37f52 Mon Sep 17 00:00:00 2001 From: richherrera Date: Wed, 15 Jan 2025 13:36:42 -0600 Subject: [PATCH 13/16] Update build.yml to use macos-15-xlarge --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fa601b7cf..d674cda2b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,7 +6,7 @@ concurrency: jobs: cocoapods: name: CocoaPods (Xcode 16.2.0) - runs-on: macOS-14-xlarge + runs-on: macOS-15-xlarge steps: - name: Check out repository uses: actions/checkout@v4 @@ -21,7 +21,7 @@ jobs: run: pod lib lint carthage: name: Carthage (Xcode 16.2.0) - runs-on: macOS-14-xlarge + runs-on: macOS-15-xlarge steps: - name: Check out repository uses: actions/checkout@v4 @@ -48,7 +48,7 @@ jobs: run: xcodebuild -project 'SampleApps/CarthageTest/CarthageTest.xcodeproj' -scheme 'CarthageTest' clean build CODE_SIGNING_ALLOWED=NO spm: name: SPM (Xcode 16.2.0) - runs-on: macOS-14-xlarge + runs-on: macOS-15-xlarge steps: - name: Check out repository uses: actions/checkout@v4 From 1c836b15ab6a1ed7225f109d79357d5fbb3a7da1 Mon Sep 17 00:00:00 2001 From: richherrera Date: Tue, 21 Jan 2025 13:18:25 -0600 Subject: [PATCH 14/16] Update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 500281cd4..15370e439 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # Braintree iOS SDK Release Notes ## unreleased (v7) +* Require Xcode 16.2+ and Swift 5.10+ * Breaking Changes * Bump minimum supported deployment target to iOS 16+ * `countryCodeAlpha2` now returns a 2 character country code instead of a 3 character country code From 43a9a3ab29d0cf40fb5e9add31c3386899e1f9f6 Mon Sep 17 00:00:00 2001 From: richherrera Date: Tue, 21 Jan 2025 13:51:17 -0600 Subject: [PATCH 15/16] Update migration guide --- V7_MIGRATION.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/V7_MIGRATION.md b/V7_MIGRATION.md index c08403eb1..6a3e21213 100644 --- a/V7_MIGRATION.md +++ b/V7_MIGRATION.md @@ -17,7 +17,7 @@ _Documentation for v7 will be published to https://developer.paypal.com/braintre ## Supported Versions -v7 bumps to a minimum deployment target of iOS 16+. +v7 supports a minimum deployment target of iOS 16+. It requires the use of Xcode 16.2+ and Swift 5.10+. ## Card v7 updates `BTCard` to require setting all properties through the initializer, removing support for dot syntax. To construct a `BTCard`, pass the properties directly in the initializer. From 08b637e83e8c44f9f52172b6f052e0d138771ce7 Mon Sep 17 00:00:00 2001 From: richherrera Date: Tue, 21 Jan 2025 14:31:32 -0600 Subject: [PATCH 16/16] Update README --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b7a34103b..45d516413 100644 --- a/README.md +++ b/README.md @@ -8,14 +8,14 @@ Welcome to Braintree's iOS SDK. This library will help you accept card and alternative payments in your iOS app. +**The Braintree iOS SDK permits a deployment target of iOS 16.0 or higher**. It requires Xcode 16.2+ and Swift 5.10+. + ## 📣 Announcements - **Upgrade your integration to continue accepting Braintree payments** 📣 The SSL certificates for current iOS SDK versions (v5 and v6) are set to expire by June 31, 2025. Upgrade to v5.26.0+ and v6.17.0+, respectively, to continue using the Braintree SDK. [Click here for more details](https://github.com/braintree/braintree_ios/issues/1277) - v6 is the latest major version of Braintree iOS. To update from v5, see the [v6 migration guide](https://github.com/braintree/braintree_ios/blob/main/V6_MIGRATION.md). If you have not yet migrated to v5, see the [v5 migration guide](https://github.com/braintree/braintree_ios/blob/5.x/V5_MIGRATION.md) -**The Braintree iOS SDK permits a deployment target of iOS 16.0 or higher**. It requires Xcode 15.0+ and Swift 5.9+. - ## Supported Payment Methods - [Credit Cards](https://developer.paypal.com/braintree/docs/guides/credit-cards/overview)