Skip to content

feat(ios): let App_Resources/Catalyst/build.xcconfig override the iOS one - #7

Merged
farfromrefug merged 1 commit into
mainfrom
feat/catalyst-deployment-target
Oct 2, 2026
Merged

farfromrefug merged 1 commit into
mainfrom
feat/catalyst-deployment-target

Conversation

@farfromrefug

Copy link
Copy Markdown
Collaborator

PR Checklist

  • The PR title follows our guidelines
  • There is an issue for the bug/feature this PR is for.
  • You have signed the CLA.
  • All existing tests are passing: 17 failures in ios-project-service tests, identical with and without this change (DI setup); 54 pass.
  • Tests for the changes are included.

What is the current behavior?

A Mac Catalyst build only reads App_Resources/iOS/build.xcconfig (normalizedPlatformName is iOS for catalyst). The deployment target is also passed on the xcodebuild command line, which beats any xcconfig. So an app cannot give Catalyst a different deployment target than iOS (or any other Catalyst-only setting). Hit in alpimaps: the SimulatorCamera SPM package needs Catalyst 14 while iOS stays 12.

What is the new behavior?

  • a catalyst build merges App_Resources/Catalyst/build.xcconfig into the plugins xcconfig before the iOS one, so its values win
  • settings passed on the command line (IPHONEOS_DEPLOYMENT_TARGET, DEVELOPMENT_TEAM, NS_SWIFTUI_BOOT, SWIFT_ENABLE_EXPLICIT_MODULES) read the Catalyst file first, then the platform one (unchanged for iOS/visionOS)
  • editing the Catalyst xcconfig marks the config as changed

Verified with ns prepare catalyst in alpimaps: merged xcconfig has IPHONEOS_DEPLOYMENT_TARGET = 14.0, and the app builds and runs on Mac.

Note: the merge prints Ignoring IPHONEOS_DEPLOYMENT_TARGET = 12.0 from App_Resources/iOS/build.xcconfig, which is expected (Catalyst value wins).

🤖 Generated with Claude Code

… one

A Catalyst build only read App_Resources/iOS/build.xcconfig, and passes the deployment target on
the xcodebuild command line, so no xcconfig could give Catalyst a different one. The Catalyst
file is now merged first, and the settings passed on the command line read it before the iOS one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@farfromrefug
farfromrefug marked this pull request as ready for review October 2, 2026 14:06
@farfromrefug
farfromrefug merged commit 77bb3d2 into main Oct 2, 2026
7 of 11 checks passed
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