From d1ffe0b1c7a3585f80406826a70156a7d54b3410 Mon Sep 17 00:00:00 2001 From: Adrian Schoenig Date: Mon, 2 Feb 2026 20:09:21 +1100 Subject: [PATCH 1/5] macCatalyst compile fix --- Package@swift-5.9.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package@swift-5.9.swift b/Package@swift-5.9.swift index a3b96a5e2..2fdee21c8 100644 --- a/Package@swift-5.9.swift +++ b/Package@swift-5.9.swift @@ -63,7 +63,7 @@ extension Target { dependencies: [ "RxSwift", "RxRelay", - .target(name: "RxCocoaRuntime", condition: .when(platforms: [.iOS, .macOS, .tvOS, .watchOS, .visionOS])) + .target(name: "RxCocoaRuntime", condition: .when(platforms: [.iOS, .macCatalyst, .macOS, .tvOS, .watchOS, .visionOS])) ], resources: [.copy("PrivacyInfo.xcprivacy")] ) From 414de58c610be87914f7372bf6e5088f8b7dc813 Mon Sep 17 00:00:00 2001 From: Shai Mishali Date: Mon, 2 Mar 2026 20:56:41 +0200 Subject: [PATCH 2/5] Fix CI simulator versions for Xcode 26.2, add macCatalyst build --- .github/workflows/tests.yml | 2 +- scripts/all-tests.sh | 22 ++++++++++++++++++++++ scripts/common.sh | 10 ++++++---- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1062bff16..a8dd08c7c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -15,7 +15,7 @@ jobs: strategy: fail-fast: false matrix: - environment: [iOS, iOS-Example, Unix, watchOS, tvOS, SPM] + environment: [iOS, iOS-Example, Unix, watchOS, tvOS, macCatalyst, SPM] steps: - uses: actions/checkout@v3 diff --git a/scripts/all-tests.sh b/scripts/all-tests.sh index ce636de39..a2cfc0613 100755 --- a/scripts/all-tests.sh +++ b/scripts/all-tests.sh @@ -7,6 +7,7 @@ VALIDATE_UNIX=1 VALIDATE_IOS=1 VALIDATE_TVOS=1 VALIDATE_WATCHOS=1 +VALIDATE_MACCATALYST=0 TEST_SPM=1 UNIX_NAME=`uname` @@ -61,6 +62,14 @@ elif [ "$1" == "watchOS" ]; then VALIDATE_TVOS=0 VALIDATE_WATCHOS=1 TEST_SPM=0 +elif [ "$1" == "macCatalyst" ]; then + VALIDATE_IOS_EXAMPLE=0 + VALIDATE_UNIX=0 + VALIDATE_IOS=0 + VALIDATE_TVOS=0 + VALIDATE_WATCHOS=0 + TEST_SPM=0 + VALIDATE_MACCATALYST=1 elif [ "$1" == "SPM" ]; then VALIDATE_IOS_EXAMPLE=0 VALIDATE_UNIX=0 @@ -244,6 +253,19 @@ else printf "${RED}Skipping watchOS tests ...${RESET}\n" fi +if [ "${VALIDATE_MACCATALYST}" -eq 1 ]; then + if [[ "${UNIX_NAME}" == "${DARWIN}" ]]; then + for configuration in ${CONFIGURATIONS[@]} + do + rx "AllTests-iOS" ${configuration} "macCatalyst" build + done + else + unsupported_os + fi +else + printf "${RED}Skipping macCatalyst tests ...${RESET}\n" +fi + if [ "${TEST_SPM}" -eq 1 ]; then rm -rf .build || true swift build -c release --disable-sandbox # until compiler is fixed diff --git a/scripts/common.sh b/scripts/common.sh index 8359ec999..fd0350705 100755 --- a/scripts/common.sh +++ b/scripts/common.sh @@ -27,9 +27,9 @@ if [[ `uname` == "Darwin" ]]; then if [ "$XCODE_MAJOR" -ge 26 ]; then echo "Running Xcode $XCODE_VERSION (iOS 26 / watchOS 26 / tvOS 26)" - DEFAULT_IOS_SIMULATOR=RxSwiftTest/iPhone-17/iOS/26.0 - DEFAULT_WATCHOS_SIMULATOR=RxSwiftTest/Apple-Watch-Series-11-46mm/watchOS/26.0 - DEFAULT_TVOS_SIMULATOR=RxSwiftTest/Apple-TV-1080p/tvOS/26.0 + DEFAULT_IOS_SIMULATOR=RxSwiftTest/iPhone-17/iOS/26.2 + DEFAULT_WATCHOS_SIMULATOR=RxSwiftTest/Apple-Watch-Series-11-46mm/watchOS/26.2 + DEFAULT_TVOS_SIMULATOR=RxSwiftTest/Apple-TV-1080p/tvOS/26.2 elif [ "$XCODE_MAJOR" -ge 16 ]; then echo "Running Xcode $XCODE_VERSION (iOS 18.5 / watchOS 11.5 / tvOS 18.5)" DEFAULT_IOS_SIMULATOR=RxSwiftTest/iPhone-16/iOS/18.5 @@ -138,7 +138,9 @@ function action() { echo DESTINATION="" - if [ "${SIMULATOR}" != "" ]; then + if [ "${SIMULATOR}" == "macCatalyst" ]; then + DESTINATION='platform=macOS,variant=Mac Catalyst' + elif [ "${SIMULATOR}" != "" ]; then #if it's a real device if is_real_device "${SIMULATOR}"; then DESTINATION='name='${SIMULATOR} From 09367eedec88e489d8c9a24dbd17c280e474e980 Mon Sep 17 00:00:00 2001 From: Shai Mishali Date: Mon, 2 Mar 2026 21:14:20 +0200 Subject: [PATCH 3/5] Fix macCatalyst CI: build individual targets instead of AllTests-iOS --- scripts/all-tests.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/all-tests.sh b/scripts/all-tests.sh index a2cfc0613..be4180321 100755 --- a/scripts/all-tests.sh +++ b/scripts/all-tests.sh @@ -255,9 +255,13 @@ fi if [ "${VALIDATE_MACCATALYST}" -eq 1 ]; then if [[ "${UNIX_NAME}" == "${DARWIN}" ]]; then - for configuration in ${CONFIGURATIONS[@]} + MAC_CATALYST_BUILD_TARGETS=(RxSwift RxCocoa RxRelay RxBlocking) + for scheme in ${MAC_CATALYST_BUILD_TARGETS[@]} do - rx "AllTests-iOS" ${configuration} "macCatalyst" build + for configuration in ${CONFIGURATIONS[@]} + do + rx "${scheme}" "${configuration}" "macCatalyst" build + done done else unsupported_os From 98e3e70171e026861bee600ac8b5d02294fbc687 Mon Sep 17 00:00:00 2001 From: Shai Mishali Date: Mon, 2 Mar 2026 21:15:16 +0200 Subject: [PATCH 4/5] Temporarily isolate macCatalyst CI job for testing --- .github/workflows/tests.yml | 46 ++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a8dd08c7c..afa84b63e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -15,7 +15,7 @@ jobs: strategy: fail-fast: false matrix: - environment: [iOS, iOS-Example, Unix, watchOS, tvOS, macCatalyst, SPM] + environment: [macCatalyst] steps: - uses: actions/checkout@v3 @@ -24,31 +24,31 @@ jobs: - name: Run Tests run: CI=1 ./scripts/all-tests.sh "${{ matrix.environment }}" - xcode16: - name: "Xcode 16" - runs-on: macos-15 + # xcode16: + # name: "Xcode 16" + # runs-on: macos-15 - strategy: - fail-fast: false - matrix: - environment: [iOS, iOS-Example, Unix, watchOS, tvOS, SPM] + # strategy: + # fail-fast: false + # matrix: + # environment: [iOS, iOS-Example, Unix, watchOS, tvOS, SPM] - steps: - - uses: actions/checkout@v3 - - name: Select Xcode 16 - run: sudo xcode-select -s /Applications/Xcode_16.4.app - - name: Run Tests - run: CI=1 ./scripts/all-tests.sh "${{ matrix.environment }}" + # steps: + # - uses: actions/checkout@v3 + # - name: Select Xcode 16 + # run: sudo xcode-select -s /Applications/Xcode_16.4.app + # - name: Run Tests + # run: CI=1 ./scripts/all-tests.sh "${{ matrix.environment }}" - linux: - name: "Build (Android)" - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: "Build Swift Package on Android" - uses: skiptools/swift-android-action@v2 - with: - run-tests: false + # linux: + # name: "Build (Android)" + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - name: "Build Swift Package on Android" + # uses: skiptools/swift-android-action@v2 + # with: + # run-tests: false # We're having some issues with the Linux tests, so we're disabling them for now. # Hopefully we'll be able to fix and re-enable them soon. From 2f5f71e77a278d978742584f8d1e565682c8517d Mon Sep 17 00:00:00 2001 From: Shai Mishali Date: Mon, 2 Mar 2026 21:30:35 +0200 Subject: [PATCH 5/5] Re-enable all CI jobs after confirming macCatalyst passes --- .github/workflows/tests.yml | 46 ++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index afa84b63e..a8dd08c7c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -15,7 +15,7 @@ jobs: strategy: fail-fast: false matrix: - environment: [macCatalyst] + environment: [iOS, iOS-Example, Unix, watchOS, tvOS, macCatalyst, SPM] steps: - uses: actions/checkout@v3 @@ -24,31 +24,31 @@ jobs: - name: Run Tests run: CI=1 ./scripts/all-tests.sh "${{ matrix.environment }}" - # xcode16: - # name: "Xcode 16" - # runs-on: macos-15 + xcode16: + name: "Xcode 16" + runs-on: macos-15 - # strategy: - # fail-fast: false - # matrix: - # environment: [iOS, iOS-Example, Unix, watchOS, tvOS, SPM] + strategy: + fail-fast: false + matrix: + environment: [iOS, iOS-Example, Unix, watchOS, tvOS, SPM] - # steps: - # - uses: actions/checkout@v3 - # - name: Select Xcode 16 - # run: sudo xcode-select -s /Applications/Xcode_16.4.app - # - name: Run Tests - # run: CI=1 ./scripts/all-tests.sh "${{ matrix.environment }}" + steps: + - uses: actions/checkout@v3 + - name: Select Xcode 16 + run: sudo xcode-select -s /Applications/Xcode_16.4.app + - name: Run Tests + run: CI=1 ./scripts/all-tests.sh "${{ matrix.environment }}" - # linux: - # name: "Build (Android)" - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v4 - # - name: "Build Swift Package on Android" - # uses: skiptools/swift-android-action@v2 - # with: - # run-tests: false + linux: + name: "Build (Android)" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: "Build Swift Package on Android" + uses: skiptools/swift-android-action@v2 + with: + run-tests: false # We're having some issues with the Linux tests, so we're disabling them for now. # Hopefully we'll be able to fix and re-enable them soon.