From d8ff7eacfa41370d7b100416558e26ea644788d6 Mon Sep 17 00:00:00 2001 From: Marat Al Date: Fri, 15 Sep 2023 13:55:16 +0200 Subject: [PATCH 01/10] Added iOS17 CI job. --- .../workflows/integration-test-iOS17_0.yaml | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 .github/workflows/integration-test-iOS17_0.yaml diff --git a/.github/workflows/integration-test-iOS17_0.yaml b/.github/workflows/integration-test-iOS17_0.yaml new file mode 100644 index 000000000..4d42acee5 --- /dev/null +++ b/.github/workflows/integration-test-iOS17_0.yaml @@ -0,0 +1,123 @@ +name: "Integration Test: iOS 17.0" + +on: + pull_request: + push: + branches: + - main + +# IMPORTANT NOTES: +# - Changes made to this file needs to replicated across other integration-test-*.yaml files. +# - The Fastlane lane name is duplicated in more than one place within this workflow. + +jobs: + check: + runs-on: macos-13 + + env: + LC_CTYPE: en_US.UTF-8 + LANG: en_US.UTF-8 + ABLY_ENV: sandbox + + steps: + - name: Check out SDK repo + uses: actions/checkout@v2 + + - name: Select Specific Xcode Version (15.0) + run: | + sudo xcode-select -s /Applications/Xcode_15.0.app + echo "Selected Xcode version:" + xcodebuild -version + + - name: Log environment information + run: ./Scripts/log-environment-information.sh + + - name: Check out xcparse repo + uses: actions/checkout@v3 + with: + repository: ably-forks/xcparse + ref: emit-test-case-info + path: xcparse + + - id: get-xcparse-commit-sha + name: Get xcparse commit SHA + run: | + cd xcparse + echo "::set-output name=sha::$(git rev-parse HEAD)" + + - name: "actions/cache@v3 (xcparse binary)" + uses: actions/cache@v3 + with: + path: xcparse/.build/debug/xcparse + key: ${{ runner.os }}-xcparse-${{ steps.get-xcparse-commit-sha.outputs.sha }} + + - name: Reset Simulators + run: xcrun simctl erase all + + - name: Install Dependencies and Run Tests + run: | + brew install xcbeautify + make submodules + bundle install + make update_carthage_dependencies_ios + bundle exec fastlane test_iOS17_0 + + - name: Check Static Analyzer Output + id: analyzer-output + run: | + if [[ -z $(find ./derived_data -name "report-*.html") ]]; then + echo "Static Analyzer found no issues." + else + echo "Static Analyzer found some issues. HTML report will be available in Artifacts section. Failing build." + exit 1 + fi + + - name: Static Analyzer Reports Uploading + if: ${{ failure() && steps.analyzer-output.outcome == 'failure' }} + uses: actions/upload-artifact@v2 + with: + name: static-analyzer-reports-test_iOS17_0 + path: ./derived_data/**/report-*.html + + - name: Run Examples Tests + working-directory: ./Examples/Tests + run: | + pod repo update + pod install + bundle exec fastlane scan -s Tests --output-directory "fastlane/test_output/examples/test_iOS17_0" + + - name: Build APNS Example Project + working-directory: ./Examples/AblyPush + run: | + xcodebuild build -scheme "AblyPushExample" -destination "platform=iOS Simulator,name=iPhone 14" -configuration "Debug" + + - name: Xcodebuild Logs Artifact + if: always() + uses: actions/upload-artifact@v2 + with: + name: xcodebuild-logs + path: ~/Library/Developer/Xcode/DerivedData/*/Logs + + - name: Upload test output artifact + if: always() + uses: actions/upload-artifact@v2 + with: + name: test-output + path: fastlane/test_output + + - name: Upload test results to observability server + if: always() + env: + TEST_OBSERVABILITY_SERVER_AUTH_KEY: ${{ secrets.TEST_OBSERVABILITY_SERVER_AUTH_KEY }} + run: Scripts/upload_test_results.sh + + - name: Swift Package Manager - Installation Test + working-directory: ./ + run: | + echo 'Current Branch: ' $GITHUB_HEAD_REF + echo 'Current Revision (SHA):' $GITHUB_SHA + echo Current Path: $(pwd) + export PACKAGE_URL=file://$(pwd) + export PACKAGE_BRANCH_NAME=$GITHUB_HEAD_REF + export PACKAGE_REVISION=$GITHUB_SHA + swift test --package-path Examples/SPM -v From d7225a3b2b4cbfbf4caa2bdca0053e53f6e23b86 Mon Sep 17 00:00:00 2001 From: Marat Al Date: Fri, 15 Sep 2023 13:57:30 +0200 Subject: [PATCH 02/10] Added lane for iOS 17. --- fastlane/Fastfile | 1 + 1 file changed, 1 insertion(+) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index dd04241bb..63b0d6187 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -23,6 +23,7 @@ platform :ios do LANE_CONFIGS = [ LaneConfig.new(:test_iOS16_2, "Ably-iOS", ["iPhone 14 (16.2)"]), + LaneConfig.new(:test_iOS17_0, "Ably-iOS", ["iPhone 14 (17.0)"]), LaneConfig.new(:test_tvOS16_1, "Ably-tvOS", ["Apple TV 4K (2nd generation) (16.1)"]), LaneConfig.new(:test_macOS, "Ably-macOS") ] From 028cde0c0f1518fada4a0c81e5bb1b867ec04407 Mon Sep 17 00:00:00 2001 From: Marat Al Date: Fri, 15 Sep 2023 13:59:10 +0200 Subject: [PATCH 03/10] Xcode 15 now compares case sensitive (at least this test failed locally). --- Test/Tests/RestClientTests.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Test/Tests/RestClientTests.swift b/Test/Tests/RestClientTests.swift index 3ee351cd2..6d59c073c 100644 --- a/Test/Tests/RestClientTests.swift +++ b/Test/Tests/RestClientTests.swift @@ -1822,7 +1822,7 @@ class RestClientTests: XCTestCase { let url = try XCTUnwrap(request.url, "No request url found") let acceptHeaderValue = try XCTUnwrap(request.allHTTPHeaderFields?["Accept"], "Accept HTTP Header is missing") - XCTAssertEqual(request.httpMethod, "patch") + XCTAssertEqual(request.httpMethod, "PATCH") XCTAssertEqual(url.absoluteString, "https://rest.ably.io:443/feature?foo=1") XCTAssertEqual(acceptHeaderValue, "application/x-msgpack,application/json") } From f2942ec63017780e0d13273aa1617a411e213021 Mon Sep 17 00:00:00 2001 From: Marat Al Date: Fri, 15 Sep 2023 16:22:17 +0200 Subject: [PATCH 04/10] Now it fails on CI with 'XCTAssertEqual failed: ("Optional("patch")") is not equal to ("Optional("PATCH")")' vs failing locally before commit 028cde0 with 'XCTAssertEqual failed: ("Optional("PATCH")") is not equal to ("Optional("patch")")'. Just forcing uppercased then. --- Test/Tests/RestClientTests.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Test/Tests/RestClientTests.swift b/Test/Tests/RestClientTests.swift index 6d59c073c..11440728d 100644 --- a/Test/Tests/RestClientTests.swift +++ b/Test/Tests/RestClientTests.swift @@ -1822,7 +1822,7 @@ class RestClientTests: XCTestCase { let url = try XCTUnwrap(request.url, "No request url found") let acceptHeaderValue = try XCTUnwrap(request.allHTTPHeaderFields?["Accept"], "Accept HTTP Header is missing") - XCTAssertEqual(request.httpMethod, "PATCH") + XCTAssertEqual(request.httpMethod!.uppercased(), "PATCH") XCTAssertEqual(url.absoluteString, "https://rest.ably.io:443/feature?foo=1") XCTAssertEqual(acceptHeaderValue, "application/x-msgpack,application/json") } From 639bdba142a61bef5ad027f599d2765e6dba6c93 Mon Sep 17 00:00:00 2001 From: Marat Al Date: Wed, 20 Sep 2023 15:56:54 +0200 Subject: [PATCH 05/10] Revert "Added iOS17 CI job." This reverts commit d8ff7eacfa41370d7b100416558e26ea644788d6. --- .../workflows/integration-test-iOS17_0.yaml | 123 ------------------ 1 file changed, 123 deletions(-) delete mode 100644 .github/workflows/integration-test-iOS17_0.yaml diff --git a/.github/workflows/integration-test-iOS17_0.yaml b/.github/workflows/integration-test-iOS17_0.yaml deleted file mode 100644 index 4d42acee5..000000000 --- a/.github/workflows/integration-test-iOS17_0.yaml +++ /dev/null @@ -1,123 +0,0 @@ -name: "Integration Test: iOS 17.0" - -on: - pull_request: - push: - branches: - - main - -# IMPORTANT NOTES: -# - Changes made to this file needs to replicated across other integration-test-*.yaml files. -# - The Fastlane lane name is duplicated in more than one place within this workflow. - -jobs: - check: - runs-on: macos-13 - - env: - LC_CTYPE: en_US.UTF-8 - LANG: en_US.UTF-8 - ABLY_ENV: sandbox - - steps: - - name: Check out SDK repo - uses: actions/checkout@v2 - - - name: Select Specific Xcode Version (15.0) - run: | - sudo xcode-select -s /Applications/Xcode_15.0.app - echo "Selected Xcode version:" - xcodebuild -version - - - name: Log environment information - run: ./Scripts/log-environment-information.sh - - - name: Check out xcparse repo - uses: actions/checkout@v3 - with: - repository: ably-forks/xcparse - ref: emit-test-case-info - path: xcparse - - - id: get-xcparse-commit-sha - name: Get xcparse commit SHA - run: | - cd xcparse - echo "::set-output name=sha::$(git rev-parse HEAD)" - - - name: "actions/cache@v3 (xcparse binary)" - uses: actions/cache@v3 - with: - path: xcparse/.build/debug/xcparse - key: ${{ runner.os }}-xcparse-${{ steps.get-xcparse-commit-sha.outputs.sha }} - - - name: Reset Simulators - run: xcrun simctl erase all - - - name: Install Dependencies and Run Tests - run: | - brew install xcbeautify - make submodules - bundle install - make update_carthage_dependencies_ios - bundle exec fastlane test_iOS17_0 - - - name: Check Static Analyzer Output - id: analyzer-output - run: | - if [[ -z $(find ./derived_data -name "report-*.html") ]]; then - echo "Static Analyzer found no issues." - else - echo "Static Analyzer found some issues. HTML report will be available in Artifacts section. Failing build." - exit 1 - fi - - - name: Static Analyzer Reports Uploading - if: ${{ failure() && steps.analyzer-output.outcome == 'failure' }} - uses: actions/upload-artifact@v2 - with: - name: static-analyzer-reports-test_iOS17_0 - path: ./derived_data/**/report-*.html - - - name: Run Examples Tests - working-directory: ./Examples/Tests - run: | - pod repo update - pod install - bundle exec fastlane scan -s Tests --output-directory "fastlane/test_output/examples/test_iOS17_0" - - - name: Build APNS Example Project - working-directory: ./Examples/AblyPush - run: | - xcodebuild build -scheme "AblyPushExample" -destination "platform=iOS Simulator,name=iPhone 14" -configuration "Debug" - - - name: Xcodebuild Logs Artifact - if: always() - uses: actions/upload-artifact@v2 - with: - name: xcodebuild-logs - path: ~/Library/Developer/Xcode/DerivedData/*/Logs - - - name: Upload test output artifact - if: always() - uses: actions/upload-artifact@v2 - with: - name: test-output - path: fastlane/test_output - - - name: Upload test results to observability server - if: always() - env: - TEST_OBSERVABILITY_SERVER_AUTH_KEY: ${{ secrets.TEST_OBSERVABILITY_SERVER_AUTH_KEY }} - run: Scripts/upload_test_results.sh - - - name: Swift Package Manager - Installation Test - working-directory: ./ - run: | - echo 'Current Branch: ' $GITHUB_HEAD_REF - echo 'Current Revision (SHA):' $GITHUB_SHA - echo Current Path: $(pwd) - export PACKAGE_URL=file://$(pwd) - export PACKAGE_BRANCH_NAME=$GITHUB_HEAD_REF - export PACKAGE_REVISION=$GITHUB_SHA - swift test --package-path Examples/SPM -v From 5d54303ccf9cd448a74f123dd81bed6807568a1f Mon Sep 17 00:00:00 2001 From: Marat Al Date: Wed, 20 Sep 2023 15:59:42 +0200 Subject: [PATCH 06/10] Explicit switch to macOS-13 --- .github/workflows/integration-test-iOS16_2.yaml | 2 +- .github/workflows/integration-test-tvOS16_1.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/integration-test-iOS16_2.yaml b/.github/workflows/integration-test-iOS16_2.yaml index ef3f45e55..6429823fd 100644 --- a/.github/workflows/integration-test-iOS16_2.yaml +++ b/.github/workflows/integration-test-iOS16_2.yaml @@ -12,7 +12,7 @@ on: jobs: check: - runs-on: macos-latest + runs-on: macos-13 env: LC_CTYPE: en_US.UTF-8 diff --git a/.github/workflows/integration-test-tvOS16_1.yaml b/.github/workflows/integration-test-tvOS16_1.yaml index d259d0856..5d9d2f299 100644 --- a/.github/workflows/integration-test-tvOS16_1.yaml +++ b/.github/workflows/integration-test-tvOS16_1.yaml @@ -12,7 +12,7 @@ on: jobs: check: - runs-on: macos-latest + runs-on: macos-13 env: LC_CTYPE: en_US.UTF-8 From 8b4f1bf1805ab76fab8fd7f1a6cec8b095476a6e Mon Sep 17 00:00:00 2001 From: Marat Al Date: Wed, 20 Sep 2023 16:03:27 +0200 Subject: [PATCH 07/10] Switch to iOS / tvOS 17.0 --- ...on-test-iOS16_2.yaml => integration-test-iOS17_0.yaml} | 8 ++++---- ...-test-tvOS16_1.yaml => integration-test-tvOS17_0.yaml} | 8 ++++---- fastlane/Fastfile | 3 +-- 3 files changed, 9 insertions(+), 10 deletions(-) rename .github/workflows/{integration-test-iOS16_2.yaml => integration-test-iOS17_0.yaml} (95%) rename .github/workflows/{integration-test-tvOS16_1.yaml => integration-test-tvOS17_0.yaml} (95%) diff --git a/.github/workflows/integration-test-iOS16_2.yaml b/.github/workflows/integration-test-iOS17_0.yaml similarity index 95% rename from .github/workflows/integration-test-iOS16_2.yaml rename to .github/workflows/integration-test-iOS17_0.yaml index 6429823fd..24e662c6e 100644 --- a/.github/workflows/integration-test-iOS16_2.yaml +++ b/.github/workflows/integration-test-iOS17_0.yaml @@ -1,4 +1,4 @@ -name: "Integration Test: iOS 16.2" +name: "Integration Test: iOS 17.0" on: pull_request: @@ -60,7 +60,7 @@ jobs: make submodules bundle install make update_carthage_dependencies_ios - bundle exec fastlane test_iOS16_2 + bundle exec fastlane test_iOS17_0 - name: Check Static Analyzer Output id: analyzer-output @@ -76,7 +76,7 @@ jobs: if: ${{ failure() && steps.analyzer-output.outcome == 'failure' }} uses: actions/upload-artifact@v2 with: - name: static-analyzer-reports-test_iOS16_2 + name: static-analyzer-reports-test_iOS17_0 path: ./derived_data/**/report-*.html - name: Run Examples Tests @@ -84,7 +84,7 @@ jobs: run: | pod repo update pod install - bundle exec fastlane scan -s Tests --output-directory "fastlane/test_output/examples/test_iOS16_2" + bundle exec fastlane scan -s Tests --output-directory "fastlane/test_output/examples/test_iOS17_0" - name: Build APNS Example Project working-directory: ./Examples/AblyPush diff --git a/.github/workflows/integration-test-tvOS16_1.yaml b/.github/workflows/integration-test-tvOS17_0.yaml similarity index 95% rename from .github/workflows/integration-test-tvOS16_1.yaml rename to .github/workflows/integration-test-tvOS17_0.yaml index 5d9d2f299..e13511f8b 100644 --- a/.github/workflows/integration-test-tvOS16_1.yaml +++ b/.github/workflows/integration-test-tvOS17_0.yaml @@ -1,4 +1,4 @@ -name: "Integration Test: tvOS 16.1" +name: "Integration Test: tvOS 17.0" on: pull_request: @@ -60,7 +60,7 @@ jobs: make submodules bundle install make update_carthage_dependencies_tvos - bundle exec fastlane test_tvOS16_1 + bundle exec fastlane test_tvOS17_0 - name: Check Static Analyzer Output id: analyzer-output @@ -76,7 +76,7 @@ jobs: if: ${{ failure() && steps.analyzer-output.outcome == 'failure' }} uses: actions/upload-artifact@v2 with: - name: static-analyzer-reports-test_tvOS16_1 + name: static-analyzer-reports-test_tvOS17_0 path: ./derived_data/**/report-*.html - name: Run Examples Tests @@ -84,7 +84,7 @@ jobs: run: | pod repo update pod install - bundle exec fastlane scan -s Tests --output-directory "fastlane/test_output/examples/test_tvOS_16_1" + bundle exec fastlane scan -s Tests --output-directory "fastlane/test_output/examples/test_tvOS_17_0" - name: Xcodebuild Logs Artifact if: always() diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 63b0d6187..7eeaef0b6 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -22,9 +22,8 @@ end platform :ios do LANE_CONFIGS = [ - LaneConfig.new(:test_iOS16_2, "Ably-iOS", ["iPhone 14 (16.2)"]), LaneConfig.new(:test_iOS17_0, "Ably-iOS", ["iPhone 14 (17.0)"]), - LaneConfig.new(:test_tvOS16_1, "Ably-tvOS", ["Apple TV 4K (2nd generation) (16.1)"]), + LaneConfig.new(:test_tvOS17_0, "Ably-tvOS", ["Apple TV 4K (3rd generation) (17.0)"]), LaneConfig.new(:test_macOS, "Ably-macOS") ] From 20654796a76c751e20fee8df9e0e9713eaaa8cb3 Mon Sep 17 00:00:00 2001 From: Marat Al Date: Thu, 21 Sep 2023 01:38:58 +0200 Subject: [PATCH 08/10] Explicit selecting Xcode 14.3.1 --- .github/workflows/integration-test-iOS17_0.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/integration-test-iOS17_0.yaml b/.github/workflows/integration-test-iOS17_0.yaml index 24e662c6e..a1affe08a 100644 --- a/.github/workflows/integration-test-iOS17_0.yaml +++ b/.github/workflows/integration-test-iOS17_0.yaml @@ -23,9 +23,9 @@ jobs: - name: Check out SDK repo uses: actions/checkout@v2 - - name: Select Specific Xcode Version (14.2) + - name: Select Specific Xcode Version (14.3.1) run: | - sudo xcode-select -s /Applications/Xcode_14.2.app + sudo xcode-select -s /Applications/Xcode_14.3.1.app echo "Selected Xcode version:" xcodebuild -version From d8502e71d708aa484b9f45370e42ddc7d0f3f926 Mon Sep 17 00:00:00 2001 From: Marat Al Date: Fri, 17 Nov 2023 20:43:40 +0100 Subject: [PATCH 09/10] In a test suite this failure goes as "test__092__RestClient__request__method_signature_and_arguments__should_do_a_request_and_receive_a_valid_response", i.e. the test which is being executed at the moment when fail("Completion closure should not be called") is called within "test__090__RestClient__..." test (https://github.com/ably/ably-cocoa/blob/ca4ffa1f582714945b9f323a1dc86b1da57c974f/Test/Tests/RestClientTests.swift#L1916). Test passes frequently on CI because I assume tests failures after execution not always tracked by XCTest framework. Locally it crashes with this: *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Attempted to report a test failure to XCTest while no test case was running. The failure was: "Completion closure should not be called". The path "new feature" is not an invalid path, since it's being replaced with "new%20feature" in Foundation. So I'm removing this check. I've noticed that this test fails frequently when other well known set of tests (https://test-observability.herokuapp.com/repos/ably/ably-cocoa/uploads/554d09f1-71e2-4e79-b641-9f33a8382220) don't fail. So when I've fixed it in this experimental PR (https://github.com/ably/ably-cocoa/pull/1799), it finally could pass (after a few attemts). --- Test/Tests/RestClientTests.swift | 9 --------- 1 file changed, 9 deletions(-) diff --git a/Test/Tests/RestClientTests.swift b/Test/Tests/RestClientTests.swift index 83a3c2b01..14d0b151b 100644 --- a/Test/Tests/RestClientTests.swift +++ b/Test/Tests/RestClientTests.swift @@ -1911,15 +1911,6 @@ class RestClientTests: XCTestCase { let mockHTTPExecutor = MockHTTPExecutor() rest.internal.httpExecutor = mockHTTPExecutor - do { - try rest.request("get", path: "new feature", params: nil, body: nil, headers: nil) { _, _ in - fail("Completion closure should not be called") - } - } catch let error as NSError { - XCTAssertEqual(error.code, ARTCustomRequestError.invalidPath.rawValue) - expect(error.localizedDescription).to(contain("Path isn't valid")) - } - do { try rest.request("get", path: "", params: nil, body: nil, headers: nil) { _, _ in fail("Completion closure should not be called") From 1b1d213c8105fda2f6d8a178b688b6ec9f45982b Mon Sep 17 00:00:00 2001 From: Marat Al Date: Sun, 19 Nov 2023 16:07:23 +0100 Subject: [PATCH 10/10] Switch to Xcode 15. --- .github/workflows/carthage.yaml | 8 ++++---- .github/workflows/check-pod.yaml | 6 +++--- .github/workflows/docs.yml | 6 +++--- .github/workflows/integration-test-iOS17_0.yaml | 6 +++--- .github/workflows/integration-test-macOS.yaml | 6 +++--- .github/workflows/integration-test-tvOS17_0.yaml | 4 ++-- Scripts/carthage-with-workaround-for-issue-3019.sh | 7 +++---- fastlane/Fastfile | 2 +- 8 files changed, 22 insertions(+), 23 deletions(-) diff --git a/.github/workflows/carthage.yaml b/.github/workflows/carthage.yaml index c1cefb089..cc202eb00 100644 --- a/.github/workflows/carthage.yaml +++ b/.github/workflows/carthage.yaml @@ -8,7 +8,7 @@ on: jobs: check: - runs-on: macos-latest + runs-on: macos-13 env: LC_CTYPE: en_US.UTF-8 @@ -19,9 +19,9 @@ jobs: - name: Check out SDK repo uses: actions/checkout@v2 - - name: Select Specific Xcode Version (14.2) + - name: Select Specific Xcode Version (15.0.1) run: | - sudo xcode-select -s /Applications/Xcode_14.2.app + sudo xcode-select -s /Applications/Xcode_15.0.1.app echo "Selected Xcode version:" xcodebuild -version @@ -37,4 +37,4 @@ jobs: echo 'Installing Carthage dependencies...' carthage update --use-xcframeworks --platform iOS --no-use-binaries echo 'Building AblyCarthage example...' - xcodebuild build -scheme "AblyCarthage" -destination "platform=iOS Simulator,name=iPhone 14" -configuration "Debug" + xcodebuild build -scheme "AblyCarthage" -destination "platform=iOS Simulator,name=iPhone 15" -configuration "Debug" diff --git a/.github/workflows/check-pod.yaml b/.github/workflows/check-pod.yaml index 41666c435..9196106f8 100644 --- a/.github/workflows/check-pod.yaml +++ b/.github/workflows/check-pod.yaml @@ -8,13 +8,13 @@ on: jobs: check: - runs-on: macos-latest + runs-on: macos-13 steps: - uses: actions/checkout@v2 - - name: Select Specific Xcode Version (14.2) + - name: Select Specific Xcode Version (15.0.1) run: | - sudo xcode-select -s /Applications/Xcode_14.2.app + sudo xcode-select -s /Applications/Xcode_15.0.1.app echo "Selected Xcode version:" xcodebuild -version diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 59cdd0f05..9c7eee087 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -10,7 +10,7 @@ on: jobs: build: - runs-on: macos-latest + runs-on: macos-13 permissions: deployments: write @@ -19,9 +19,9 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Select Specific Xcode Version (14.2) + - name: Select Specific Xcode Version (15.0.1) run: | - sudo xcode-select -s /Applications/Xcode_14.2.app + sudo xcode-select -s /Applications/Xcode_15.0.1.app echo "Selected Xcode version:" xcodebuild -version diff --git a/.github/workflows/integration-test-iOS17_0.yaml b/.github/workflows/integration-test-iOS17_0.yaml index a1affe08a..88f6e20b7 100644 --- a/.github/workflows/integration-test-iOS17_0.yaml +++ b/.github/workflows/integration-test-iOS17_0.yaml @@ -23,9 +23,9 @@ jobs: - name: Check out SDK repo uses: actions/checkout@v2 - - name: Select Specific Xcode Version (14.3.1) + - name: Select Specific Xcode Version (15.0.1) run: | - sudo xcode-select -s /Applications/Xcode_14.3.1.app + sudo xcode-select -s /Applications/Xcode_15.0.1.app echo "Selected Xcode version:" xcodebuild -version @@ -89,7 +89,7 @@ jobs: - name: Build APNS Example Project working-directory: ./Examples/AblyPush run: | - xcodebuild build -scheme "AblyPushExample" -destination "platform=iOS Simulator,name=iPhone 14" -configuration "Debug" + xcodebuild build -scheme "AblyPushExample" -destination "platform=iOS Simulator,name=iPhone 15" -configuration "Debug" - name: Xcodebuild Logs Artifact if: always() diff --git a/.github/workflows/integration-test-macOS.yaml b/.github/workflows/integration-test-macOS.yaml index 2cf7ff101..e9b236fd4 100644 --- a/.github/workflows/integration-test-macOS.yaml +++ b/.github/workflows/integration-test-macOS.yaml @@ -12,7 +12,7 @@ on: jobs: check: - runs-on: macos-latest + runs-on: macos-13 env: LC_CTYPE: en_US.UTF-8 @@ -23,9 +23,9 @@ jobs: - name: Check out SDK repo uses: actions/checkout@v2 - - name: Select Specific Xcode Version (14.2) + - name: Select Specific Xcode Version (15.0.1) run: | - sudo xcode-select -s /Applications/Xcode_14.2.app + sudo xcode-select -s /Applications/Xcode_15.0.1.app echo "Selected Xcode version:" xcodebuild -version diff --git a/.github/workflows/integration-test-tvOS17_0.yaml b/.github/workflows/integration-test-tvOS17_0.yaml index e13511f8b..43807f9c6 100644 --- a/.github/workflows/integration-test-tvOS17_0.yaml +++ b/.github/workflows/integration-test-tvOS17_0.yaml @@ -23,9 +23,9 @@ jobs: - name: Check out SDK repo uses: actions/checkout@v2 - - name: Select Specific Xcode Version (14.2) + - name: Select Specific Xcode Version (15.0.1) run: | - sudo xcode-select -s /Applications/Xcode_14.2.app + sudo xcode-select -s /Applications/Xcode_15.0.1.app echo "Selected Xcode version:" xcodebuild -version diff --git a/Scripts/carthage-with-workaround-for-issue-3019.sh b/Scripts/carthage-with-workaround-for-issue-3019.sh index 3d883844f..a8e559651 100755 --- a/Scripts/carthage-with-workaround-for-issue-3019.sh +++ b/Scripts/carthage-with-workaround-for-issue-3019.sh @@ -8,10 +8,9 @@ set -euo pipefail xcconfig=$(mktemp /tmp/static.xcconfig.XXXXXX) trap 'rm -f "$xcconfig"' INT TERM HUP EXIT -# For Xcode 13 make sure EXCLUDED_ARCHS is set to arm architectures otherwise -# the build will fail on lipo due to duplicate architectures. -echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1400 = arm64 arm64e armv7 armv7s armv6 armv8' >> $xcconfig -echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_arm64__XCODE_1400 = arm64 arm64e armv7 armv7s armv6 armv8' >> $xcconfig +# Make sure EXCLUDED_ARCHS is set to arm architectures otherwise the xcodebuild will fail on lipo due to duplicate architectures. +echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1500 = arm64 arm64e armv7 armv7s armv6 armv8' >> $xcconfig +echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_arm64__XCODE_1500 = arm64 arm64e armv7 armv7s armv6 armv8' >> $xcconfig echo 'EXCLUDED_ARCHS = $(inherited) $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_$(EFFECTIVE_PLATFORM_SUFFIX)__NATIVE_ARCH_64_BIT_$(NATIVE_ARCH_64_BIT)__XCODE_$(XCODE_VERSION_MAJOR))' >> $xcconfig export XCODE_XCCONFIG_FILE="$xcconfig" diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 7eeaef0b6..e4b669a36 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -22,7 +22,7 @@ end platform :ios do LANE_CONFIGS = [ - LaneConfig.new(:test_iOS17_0, "Ably-iOS", ["iPhone 14 (17.0)"]), + LaneConfig.new(:test_iOS17_0, "Ably-iOS", ["iPhone 15"]), LaneConfig.new(:test_tvOS17_0, "Ably-tvOS", ["Apple TV 4K (3rd generation) (17.0)"]), LaneConfig.new(:test_macOS, "Ably-macOS") ]