Skip to content

Synced folders #1541

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Synced folders #1541

wants to merge 3 commits into from

Conversation

yonaskolb
Copy link
Owner

This adds support for Xcode 16's synchronized folders, which depending where you look have a few different names:

  • synchronized root groups
  • synchronized folders
  • folder references
  • buildable folders

For our purposes I've chosen the name syncedFolder, looking for feedback on this.

This initial push supports the following:

  • a new syncedFolder source type
  • a new defaultSourceDirectoryType project spec option of the same type that can be used to override the default directory type of group

At the moment only top level synced folders are supported. Xcode also includes a PBXFileSystemSynchronizedBuildFileExceptionSet which has not been added yet here either.
There is a load of complexity that has been added to XcodeGen over the years to sources around relative paths, custom parent groups, includes and excludes, mixed target phases, and various other options. In this first pass anything beyond the basics is unsupported for these special folders.

Please test this in your own projects and give feedback about what is broken and how this should be expanded

@esnssr
Copy link

esnssr commented Apr 15, 2025

thank you so much!
i will give this a try this week, hopefully😅, and come back with feedback :)

@esnssr
Copy link

esnssr commented Apr 15, 2025

for the very basic use case, which is just "make all of my project's groups -> buildable folders" it works as expected, whether by specifying syncedFolder for defaultSourceDirectoryType, or on the source's path type.

i just tried this on a very small project i have and it worked without any issues whatsoever.

i am yet to try to mix and match with other types and see how it goes...
but so far, it gets the job done ❤️🚀

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.

2 participants