Add support for Xcode 27#8830
Merged
Merged
Conversation
@State is no longer a property wrapper in Xcode 27. It's a macro that generates code that does not work with `where`. This replaces the name with one that is not a reserved keyword of the Swift compiler. It also includes changes to Base.xcconfig and TestBase.xcconfig for Xcode 27. These values differ from previous ones because they are the minimum versions Xcode 27 supports.
There was a problem hiding this comment.
Pull request overview
This PR updates Realm Swift’s build/CI and compatibility settings in preparation for Xcode 27, including a SwiftUI workaround for a compiler/macro interaction and a realm-core bump.
Changes:
- Update CI/build scripts and GitHub workflows to use newer Xcode 26.x patch/minor versions (26.4.1, 26.5) and refresh the documentation build version.
- Adjust SwiftUI helper implementation of the backticked
whereproperty under newer compilers to avoid macro expansion issues. - Bump realm-core from 20.1.4 to 20.1.5 and update related dependency metadata.
Reviewed changes
Copilot reviewed 15 out of 16 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/pr-ci-matrix.rb | Updates the generated PR CI matrix Xcode versions and docs Xcode selection. |
| scripts/package_examples.rb | Updates the Xcode versions used when duplicating/packaging Swift examples. |
| RealmSwift/SwiftUI.swift | Adds compiler-gated implementation for where to work around macro/backtick issues. |
| RealmSwift.podspec | Updates CocoaPods deployment targets and Xcode-major deployment mappings. |
| Realm.podspec | Updates CocoaPods deployment targets and Xcode-major deployment mappings. |
| Package.swift | Bumps realm-core version pin. |
| Gemfile.lock | Adds a new Ruby platform entry. |
| examples/installation/Podfile | Updates example installation platform minimum versions. |
| dependencies.list | Bumps realm-core version reference. |
| Configuration/TestBase.xcconfig | Raises test deployment targets. |
| Configuration/Base.xcconfig | Adds Xcode 27 deployment target mappings and updates Swift version mapping. |
| CHANGELOG.md | Adds release notes entry for Xcode 27 compilation fix and realm-core bump. |
| .github/workflows/publish-release.yml | Updates release workflow Xcode version environment variables. |
| .github/workflows/master-push.yml | Updates release packaging workflow Xcode list and Xcode selection. |
| .github/workflows/build-pr.yml | Regenerates PR CI workflow jobs for updated Xcode versions. |
| .github/workflows/build-binaries.yml | Moves xcframework publish job to macos-26 runner. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.