Skip to content

Preserve nested target attribute dictionaries - #1643

Open
sergeyospanov wants to merge 2 commits into
yonaskolb:masterfrom
sergeyospanov:fix/1637-nested-target-attributes
Open

Preserve nested target attribute dictionaries#1643
sergeyospanov wants to merge 2 commits into
yonaskolb:masterfrom
sergeyospanov:fix/1637-nested-target-attributes

Conversation

@sergeyospanov

Copy link
Copy Markdown

Summary

  • preserve nested target attributes such as SystemCapabilities as native PBX dictionaries instead of quoted Swift dictionary descriptions
  • add a generator-level regression test for the HealthKit capability shape from the issue

Testing

  • swift test (77 tests, 0 failures)
  • swift test --filter PBXProjGeneratorTests/testNestedTargetAttributesAreGeneratedAsDictionaries
  • generated the issue's YAML shape with the CLI and verified that project.pbxproj contains a native SystemCapabilities dictionary

Resolves #1637

@sergeyospanov
sergeyospanov force-pushed the fix/1637-nested-target-attributes branch from cdb485a to 44f46f9 Compare August 23, 2026 10:49
@sergeyospanov

Copy link
Copy Markdown
Author

After opening this PR, I found #1639, which addresses the same nested-dictionary conversion in ProjectAttribute.init(any:). Sorry I missed the overlap.

This PR adds focused SystemCapabilities/HealthKit regression coverage in PBXProjGeneratorTests, while #1639 covers the conversion through ProjectGeneratorTests.

@yonaskolb, which direction would you prefer? I'm happy to close this PR, or to contribute any useful test coverage to #1639 if its author and the maintainers want it. I won't make further changes here until you advise.

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.

Nested SystemCapabilities target attribute is serialized as a quoted Swift dictionary

1 participant