Updated project format for Xcode 16
Xcode 16 has introduced a new version of the project format. I believe it's mainly to support folder references
From the Xcode 16 release notes https://developer.apple.com/documentation/xcode-release-notes/xcode-16-release-notes#Project-Management
Minimize project file changes, and avoid version control conflicts with buildable folder references.
Convert an existing group to a buildable folder with the “Convert to Folder” context menu item in the Project Navigator. Buildable folders only record the folder path into the project file without enumerating the contained files. This minimizes diffs to the project when files are added and removed, and avoids source control conflicts with your team.
To use a folder as an opaque copiable resource, the default behavior before Xcode 16, uncheck the “Build Folder Contents” option in the File Inspector. (123729918)
In theory this should allow for faster project generation when using folder references since xcodegen won't need to enumerate all the files in a source folder.
It appears like XcodeProj has already been updated to support the new types in the file format.
- https://github.com/tuist/XcodeProj/pull/827
🙏🏻 🙏🏻 🙏🏻
@yonaskolb
@yonaskolb
still no support for Xcode 16 folder format?
would like to have the Xcode 16 Buildable Folder support indeed, 🙏
Ok, I will try to find some time this week
@yonaskolb 🙏🏻 🙏🏻 🙏🏻
Ok, I will try to find some time this week
@yonaskolb thank you so much! ❤️🙏🏼
Ok, so basic support has been added in this PR https://github.com/yonaskolb/XcodeGen/pull/1541 Please give it a spin and report back there about any issues. This will need some more work to support anything but the most basic integration.
If you have mint then you can run mint run yonaskolb/xcodegen@synced_folder to test it out. Be aware this includes changes from master of which there are a couple of breaking fixes to relative paths in included files, so check the changelog. I'll do a release without this feature now
Thank you very much for this @yonaskolb ! I tried the branch, and it seems to be working well on my end.
Released in 2.44.0