Skip to content

fix: update Xcode requirement from 26.2 to 26.3#649

Merged
PureWeen merged 1 commit intomainfrom
fix/xcode-26.3
Apr 20, 2026
Merged

fix: update Xcode requirement from 26.2 to 26.3#649
PureWeen merged 1 commit intomainfrom
fix/xcode-26.3

Conversation

@PureWeen
Copy link
Copy Markdown
Owner

Problem

All Mac Catalyst CI builds fail with:

This version of .NET for MacCatalyst (26.2.10233) requires Xcode 26.3.
The current version of Xcode is 26.2.

Root Cause

The .NET MacCatalyst SDK was updated to 26.2.10233 which requires Xcode 26.3. The macos-26 runner has Xcode 26.3 installed at /Applications/Xcode_26.3.app, but our workflows explicitly selected 26.2.

Fix

  • release-apps.yml: Both Mac Catalyst jobs updated from xcode-version: '26.2' to '26.3'
  • build.yml: Xcode selection fallback updated from 26.2 to 26.3

.NET MacCatalyst SDK 26.2.10233 requires Xcode 26.3, which is
available on the macos-26 runner but wasn't selected. This caused
all Mac Catalyst builds to fail with:
  'This version of .NET for MacCatalyst (26.2.10233) requires Xcode 26.3'

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown
Contributor

🔴 Missed Xcode Version Update — publish-maccatalyst job

Flagged by: 3/3 reviewers | Severity: 🔴 CRITICAL

The PR correctly updates Xcode 26.2 → 26.3 in three places, but misses a fourth — the publish-maccatalyst job in build.yml (lines 78–81) still hardcodes Xcode_26.2:

# .github/workflows/build.yml lines 75-84 (NOT updated by this PR)
      - name: Select Xcode
        run: |
          ls -d /Applications/Xcode*.app 2>/dev/null
          if [ -d "/Applications/Xcode_26.2.app" ]; then        # ← still 26.2
            XCODE_PATH="/Applications/Xcode_26.2.app"           # ← still 26.2
          elif [ -d "/Applications/Xcode_26.2.0.app" ]; then    # ← still 26.2
            XCODE_PATH="/Applications/Xcode_26.2.0.app"         # ← still 26.2

Failing scenario

On push to main or tag push:

  1. build-test passes (correctly uses Xcode 26.3)
  2. publish-maccatalyst runs, selects Xcode 26.2 (if present on runner), and fails with the exact same .NET for MacCatalyst requires Xcode 26.3 error this PR is fixing

Even if 26.2 isn’t installed, the fix is incomplete — the if/elif checks fall through to the glob fallback, which happens to work but isn’t deterministic.

Suggested fix

Update lines 78–81 to match the build-test job:

          if [ -d "/Applications/Xcode_26.3.app" ]; then
            XCODE_PATH="/Applications/Xcode_26.3.app"
          elif [ -d "/Applications/Xcode_26.3.0.app" ]; then
            XCODE_PATH="/Applications/Xcode_26.3.0.app"

Generated by Expert Code Review (auto) for issue #649 ·

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Expert Review Summary

Findings

# Severity File Location Finding Consensus
1 🔴 CRITICAL .github/workflows/build.yml Lines 78–81 (outside diff) publish-maccatalyst job still selects Xcode 26.2 — will fail on merge with the same error this PR fixes 3/3 reviewers

Details

The PR updates Xcode 26.2 → 26.3 in the build-test job and both release-apps.yml jobs, but the publish-maccatalyst job in build.yml (lines 78–81) was missed. This job runs on push to main and workflow_dispatch — it will fail with the same .NET for MacCatalyst requires Xcode 26.3 error once merged. See inline comment for the specific fix.

Discarded Findings

  • MD_APPLE_SDK_ROOT env var inconsistency (1/3 → cross-examined → discarded): pre-existing difference between jobs, not introduced by this PR, and the build-test job targets net10.0 (not maccatalyst) so the env var is not needed.
  • Fallback sort -rV risk (1/3 → cross-examined → discarded): subsumed by Finding 1; fixing lines 78–81 makes this moot.

CI & Test Assessment

  • The build-test job (tests) should pass with this PR since the Xcode selection was updated there.
  • The publish-maccatalyst job will remain broken until lines 78–81 are also updated.
  • No application code changes; no test coverage impact.

Methodology: 3 independent reviewers with adversarial consensus. Findings confirmed by ≥2/3 reviewers are included. Single-reviewer findings undergo cross-examination by the other 2 before inclusion or discard.

Generated by Expert Code Review (auto) for issue #649

@PureWeen PureWeen merged commit e3ba376 into main Apr 20, 2026
5 checks passed
@PureWeen PureWeen deleted the fix/xcode-26.3 branch April 20, 2026 23:54
PureWeen added a commit that referenced this pull request Apr 21, 2026
PR #649 updated the Build & Test job to Xcode 26.3, but missed the
**Publish Mac Catalyst App** job which still hardcoded Xcode 26.2. The
.NET MacCatalyst SDK 26.2.10233 requires Xcode 26.3, causing all Mac
Catalyst publish builds to fail since #649 landed.

This is a one-line fix — 26.2 → 26.3 in the publish job's Xcode
selection block.

**Fixes:** Mac Catalyst artifact missing from v1.0.20 release.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant