Skip to content

Conversation

@mirkokg
Copy link

@mirkokg mirkokg commented Nov 21, 2025

Generate permanent references for PBXFileSystemSynchronizedExceptionSet objects, including build file and build phase exception sets. Updates tests to verify that references for exception sets are correctly converted to permanent values.

Resolves #934

Short description 📝

When creating projects with PBXFileSystemSynchronizedRootGroup objects that contain exception sets (PBXFileSystemSynchronizedBuildFileExceptionSet or PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet), the exception set IDs were being written with TEMP_ prefixes instead of proper deterministic IDs.

Solution 📦

Extended the ReferenceGenerator to process exception sets when generating references for synchronized root groups. Added a new generateExceptionSetReferences method that:

  1. Iterates through all exceptions in a PBXFileSystemSynchronizedRootGroup
  2. Generates deterministic IDs based on the exception type:
  • For PBXFileSystemSynchronizedBuildFileExceptionSet: uses the target reference as part of the identifier
  • For PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet: uses the build phase reference as part of the identifier

This follows the same pattern used for other object types in the reference generator.

Implementation 👩‍💻👨‍💻

  • Identified that PBXFileSystemSynchronizedRootGroup.exceptions were not being processed in ReferenceGenerator
  • Modified generateSynchronizedRootGroupReferences() to iterate through exception sets after fixing the root group reference
  • Added generateExceptionSetReferences() method to handle reference generation for exception set objects
  • Added unit tests to verify the functionality
  • Verified all tests pass with the changes
  • Confirmed no TEMP_ prefixes appear in generated project files

Generate permanent references for PBXFileSystemSynchronizedExceptionSet objects, including build file and build phase exception sets. Updates tests to verify that references for exception sets are correctly converted to permanent values.
@dosubot dosubot bot added the size:M This PR changes 30-99 lines, ignoring generated files. label Nov 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M This PR changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

The uuid of PBXFileSystemSynchronizedBuildFileExceptionSet is always "TEMP_xxx"

1 participant