Fix membershipExceptions for localized files in synced folders#1616
Open
AlexNsbmr wants to merge 1 commit intoyonaskolb:masterfrom
Open
Fix membershipExceptions for localized files in synced folders#1616AlexNsbmr wants to merge 1 commit intoyonaskolb:masterfrom
AlexNsbmr wants to merge 1 commit intoyonaskolb:masterfrom
Conversation
e79938d to
a605d1d
Compare
Xcode uses a `/Localized:` prefix format for membership exceptions of localized files in synced folders (e.g., `/Localized: Resources/AppShortcuts.strings`), rather than individual per-language paths (e.g., `Resources/de.lproj/AppShortcuts.strings`). Previously, XcodeGen generated per-language `.lproj` paths as membership exceptions, which Xcode silently ignored. This caused localized resources (`.strings` files inside `.lproj` directories) to remain as members of targets that should have excluded them via `includes`/`excludes` filters. This fix detects paths containing `.lproj` directory components and transforms them into the `/Localized:` variant-group format that Xcode expects. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
a605d1d to
0fcbd8a
Compare
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.
Description
.stringsinside.lprojdirectories) in synced folders were not properly excluded viamembershipExceptionswhen usingincludesfilters/Localized:prefix format (e.g.,/Localized: Resources/AppShortcuts.strings) for variant-group membership exceptions, but XcodeGen was generating individual per-language paths (e.g.,Resources/de.lproj/AppShortcuts.strings)Fix
In
configureMembershipExceptions(), paths containing.lprojdirectory components are now transformed into the/Localized:variant-group format that Xcode expects.Before (ignored by Xcode):
After (honored by Xcode):
How to reproduce
defaultSourceDirectoryType: syncedFolderincludesfiltering only specific files.lprojdirectories with.stringsfiles.stringsfiles appear as members of the target despite not being inincludesAppShortcuts.stringsbeing processed by unrelated targets