Hive Hive
Sign in

codeSignEntitlements() in SettingsDictionary creates flat PBXFileReference entries when using buildableFolders

GitHub issue · Open

Metadata
Source
tuist/tuist #11571
Updated
Jun 30, 2026
Domains
Generated projects
Details

What happened?

When using buildableFolders on a target, paths set via SettingsDictionary helpers .codeSignEntitlements() and .infoPlist() (which map to CODE_SIGN_ENTITLEMENTS and INFOPLIST_FILE build settings) cause Tuist to create flat PBXFileReference entries that appear at the project root group in Xcode navigator — even when those files live inside the buildableFolders directory.

Expected behavior: Files referenced via build settings should use anchored references (the same fix applied to the top-level infoPlist: target parameter in PR #11202 / v4.199.0) so they appear nested inside their target’s synchronized folder, not as flat items at the project root.

How do we reproduce it?

  1. Create a target using buildableFolders with a Supporting Files/ subfolder containing entitlements and Info plist files
  2. Reference those files via SettingsDictionary helpers in per-configuration settings: .settings(configurations: [ .debug(settings: SettingsDictionary() .codeSignEntitlements(“MyTarget/Supporting Files/Entitlements.plist”) .infoPlist(“MyTarget/Supporting Files/Info-Debug.plist”) ) ])
  3. Run tuist generate
  4. Open the generated .xcodeproj — Entitlements.plist and Info-Debug.plist appear as flat items in the project root group instead of nested inside MyTarget

Workaround: Use buildableFolders: [“MyTarget/Sources”] (subfolder) + additionalFiles instead of .folder(“MyTarget”, exceptions: …) — but this makes the target root appear as a yellow group instead of a blue synchronized folder.

Related: PR #11202 fixed this for the top-level infoPlist: target parameter. The same fix is needed for CODE_SIGN_ENTITLEMENTS and INFOPLIST_FILE in SettingsDictionary.

Error log

No error — cosmetic issue only. Flat PBXFileReference entries appear in the generated project.pbxproj Project root group for every path in CODE_SIGN_ENTITLEMENTS and INFOPLIST_FILE build settings.

macOS version

26.0

Tuist version

4.200.5

Xcode version

26

Flights

Investigate, reproduce, or fix this item in an isolated repository. Each Flight preserves its outcome and agent session.

New Flights are paused Configure model inference, GitHub, and a sandbox provider to start another Flight. Existing results remain available below.
No Flights yet

Start a Flight and preserve its objective, outcome, and session here.

Comments

No GitHub comments yet.