yonaskolb/XcodeGen
A Swift command line tool for generating your Xcode project
30 Releases
Latest: 2mo ago
2.45.4Latest
🐛 Fixed
- Fix makePathRelative using wrong base path when projectDirectory differs #1608 @yonaskolb
- Fix synced folder configFiles creating duplicate groups #1607 @AlexNsbmr
- Fix synced folder root group duplication for paths referenced by multiple targets #1607 @AlexNsbmr
- Fix synced folder directory-level membershipExceptions not working #1607 @AlexNsbmr
2.45.3
🐛 Fixed
- Fix folder source PBXFileReference path regression with createIntermediateGroups #1605 @yonaskolb
- Fix synced folders: includes silently ignored + no deduplication across targets #1604 @4brunu
2.45.2
🐛 Fixed
- Validate empty source paths to prevent project root inclusion #1601 @yonaskolb
- Fix missing productRefGroup in generated projects #1591 @ruslic19
2.45.1
✨ Added
- Added built in `.icon` folder support for IconComposer #1600 @yonaskolb
2.45.0
✨ Added
- Added ability to specify project format version via `projectFormat` option #1566 @anivaros
- Added `explicitFolders` property to `TargetSource` that is passed through to `PBXFileSystemSynchronizedRootGroup`, to turn entire subfolders into Resources #1596 @macguru
- Allow synced folders to be sorted using `groupOrdering` #1596 @macguru
- Added `excludes` support for `syncedFolder` sources with glob pattern matching #1587 @mirkokg
- Automatically exclude `Info.plist` from synced folder membership when it's within the synced folder #1587 @mirkokg
- Add empty copy resources build phase for synced folders so resources are copied correctly #1587 @mirkokg
🐛 Fixed
- Fixed synced folders ignoring `createIntermediateGroups=YES` and always being created at the root level #1596 @macguru
- Fix membership exceptions not working for nested synced folders with intermediate groups enabled #1596 @macguru
- Fix `supportedDestinations` presets being injected when `settingPresets` is `none` #1599 @macguru
📦 Internal
- Update to XcodeProj 9.10.1 #1597 @yonaskolb
- Fix CI: add explicit xcodebuild destinations and update Xcode matrix #1594 @yonaskolb
- Update ArtifactBundleGen to 0.0.8 #1570 @georgenavarro
2.44.1
🐛 Fixed
- Set the correct object version of 77 for Xcode 16 projects @jakobfelsatdm #1563
- Support major.minor SPM package versions which would otherwise fail to decode to a string in yaml specs #1546 @RomanPodymov
- Fix regression for `parallelizable` in scheme. It now resolves to "Enabled" and not "Swift Testing Only" #1565 @CraigSiemens
2.44.0
✨ Added
- Basic support for Xcode 16's synchronized folders #1541 @yonaskolb
- `TargetSource.type` can now be `syncedFolder`
- `Options.defaultSourceDirectoryType` can be set to `syncedFolder` for the default type in all sources in the project (defaults to `group`)
- Benefits include faster generation and no cache invalidation or need to regenerate when files are added or removed from these folders
- Note that not all TargetSource options like excludes are supported, just a simple path. Please test and see what is missing in your projects
- Added sanitizer options to run and test actions in Scheme #1550 @hi-kumar
🐛 Fixed
- Added validation to ensure that all values in `settings.configs` are mappings. Previously, passing non-mapping values did not raise an error, making it difficult to detect misconfigurations. Now, `SpecParsingError.invalidConfigsMappingFormat` is thrown if misused. #1547 @Ryu0118
- Use `USER` instead of `LOGNAME` for XCUserData #1559 @KostyaSha
2.43.0
✨ Added
- Added `excludeFromProject` from local packages #1512 @maximkrouk
- Added support for `preferredScreenCaptureFormat` in schemes #1450 @vakhidbetrakhmadov
📋 Changes
- `.appex` files are now copied to plugins directory by default #1531 @iljaiwas
- The `preGenCommand` is now run before validation and caching #1500 #1519 @simonbs @dalemyers
- Improve performance of spec validation #1522 @zewuchen
- The `enableGPUValidationMode` enum is deprecated and is now a boolean #1515 @marcosgriselli @yonaskolb
🐛 Fixed
- Breaking: `fileGroups` are now relative paths when in included files, like other paths #1534 @shnhrrsn
- Breaking: Local package paths are now relative paths when in included files, like other paths #1498 @juri
- Optional groups are no longer skipped when missing and generating projects from a different directory #1529 @SSheldon
📦 Internal
- Fix Swift 6.0 warnings #1513 @marcosgriselli
- Update package swift tools to 5.9 #1489 @0111b
- Add Xcode 16 to CI #1439 @giginet
- Fix test project building on CI #1537 @yonaskolb
- Skip failing tests on Linux #1517 @marcosgriselli
- XcodeProj updated to 8.24.3 #1515 @marcosgriselli @yonaskolb
2.42.0
✨ Added
- Better support for local Swift packages in Xcode 15 #1465 @kinnarr
- Added `macroExpansion` to test actions in schemes #1468 @erneestoc
📋 Changed
- Better default macroExpansion target in schemes #1471 @erneestoc
🗑️ Removed
- Removed `xcodegen dump --type graphviz` as graphviz no longer builds in Swift 6 and is no longer maintained. If anyone uses this feature and wishes to keep it, please submit a PR providing a suitable alternative. #1485 @giginet
2.41.0
✨ Added
- Added `xcodegen cache` command that writes the cache. Useful for `post-commit` git hook integration #1476 @yonaskolb
📋 Changed
- Include folders in file sorting #1466 @jflan-dd
🐛 Fixed
- Fixed `supportedDestinations` validation when it contains watchOS for multiplatform apps. #1470 @tatsuky
2.40.1
🐛 Fixed
- Reverted `.xcprivacy` handling. They will now again be treated as resources by default @yonaskolb
2.40.0
✨ Added
- Added support for local Swift packages at the project root by specifying a "" group #1413 @hiltonc
- Added a custom `shell` to a scheme's pre and post actions #1430 @balazs-vimn
📋 Changed
- `.xcprivacy` files are now not added to any build phases by default #1464 @yonaskolb
2.39.1
✨ Added
- Proper defaults for `.cp` and `.cxx` files #1447 @eschwieb
🐛 Fixed
- Fixed bundle access crash #1448 @freddi-kit
- Pinned XcodeProj version to fix breaking changes when XcodeGen is used as a dependency #1449 @yonaskolb
2.39.0
✨ Added
- Support Artifact Bundle #1388 @freddi-kit
- Added support for `.xcstrings` String Catalogs #1421 @nicolasbosi95
- Added default `LD_RUNPATH_SEARCH_PATHS` for visionOS #1444 @Dahlgren
- Added `watchOS` as a supported cross platform destination #1438 @tatsuky
🐛 Fixed
- Fixed custom local package groups not being created #1416 @JaapManenschijn
- Fixed spec validation error type #1439 @Lutzifer
- Create parent group for local package groups if it does not exist already #1417 @JaapManenschijn
📦 Internal
- Updated Rainbow version #1424 @nysander
2.38.0
✨ Added
- [Multi-destination targets](https://github.com/yonaskolb/XcodeGen/blob/master/Docs/ProjectSpec.md#supported-destinations) #1336 @amatig
- Added `supportedDestinations` to target
- Added optional new `platform` value of `auto` when using `supportedDestinations`
- Added `destinationFilters` for sources and dependencies
- Added `inferDestinationFiltersByPath`, a convenience filter for sources
- `.mlpackage` files now default to being a source type #1398 @aaron-foreflight
- Added support for `Build Tool Plug-ins` in `AggregateTarget` #1390 @BarredEwe
🐛 Fixed
- Fixed source file `includes` not working when no paths were found #1337 @shnhrrsn
- Supports specifying multiple package products #1395 @simonbs
2.37.0
✨ Added
- Added support for adding `Build Tool Plug-ins` to targets #1374 @BarredEwe
2.36.1
🐛 Fixed
- Revert addition of `ENABLE_MODULE_VERIFIER` build setting for causing issues in tests and some setups #1387 @yonaskolb
2.36.0
✨ Added
- Added `scheme.enableGPUValidationMode` #1294 @LouisLWang
- Added visionOS support #1379 @shiba1014
- Added ability to disable Thread performance checker in Schemes #1380 @piellarda
- Added support for `RuntimeIssue` breakpoints #1384 @yonaskolb
📋 Changed
- The project object version has been updated for Xcode 14.3 #1368 @leonardorock
- Updated recommended settings for Xcode 14.3 #1385 @yonaskolb
- Dropped support for Xcode 12 and 13, due to XcodeProj update #1384 @yonaskolb
🐛 Fixed
- Fix external dependencies from being removed by Xcode #1354 @OdNairy
- Stop creating orphaned object references when reusing references to external dependencies #1377 @liamnichols
2.35.0
✨ Added
- Added support for shared breakpoints #177 @alexruperez @myihsan
- Added support for `putResourcesBeforeSourcesBuildPhase` in a target #1351 @mat1th
🐛 Fixed
- Fix case where source paths may not be deduplicated correctly resulting in duplicate groups and/or a crash in running XcodeGen #1341 @dalemyers
2.34.0
📋 Changed
- Added support for `swiftcrossimport` folders. #1317 @Iron-Ham
- Added support for [Scheme Management](Docs/ProjectSpec.md##scheme-management) #1142 @wendyliga, @teameh
🐛 Fixed
- Fix includes when the projectRoot is a relative path #1262 @CraigSiemens
- Renamed build phase `Embed App Extensions` to `Embed Foundation Extensions` to fix Xcode 14 warning #1310 @casperriboe
2.33.0
✨ Added
- Added support for `enableGPUFrameCaptureMode` #1251 @bsudekum
- Config setting presets can now also be loaded from the main bundle when bundling XcodeGenKit #1135 @SofteqDG
- Added ability to generate multiple projects in one XcodeGen launch #1270 @skofgar
- Use memoization during recursive SpecFiles creation. This provides a drastic performance boost with lots of recursive includes #1275 @ma-oli
🐛 Fixed
- Fix scheme not being generated for aggregate targets #1250 @CraigSiemens
- Fix recursive include path when relativePath is not set #1275 @ma-oli
- Include projectRoot in include paths #1275 @ma-oli
📦 Internal
- Updated to Yams 5.0.1 #1297 @s2mr
- Delete ignored `try` keyword #1298 @s2mr
2.32.0
✨ Added
- Add support for `mlmodelc` files #1236 @antonsergeev88
- Add `enable` option for `include` #1242 @freddi-kit
🐛 Fixed
- Fix checking environment variable in `include` #1242 @freddi-kit
- Fix profile action for frameworks in Xcode 14 #1245 @SSheldon
2.31.0
✨ Added
- Added a new CopyFilesBuildPhase, "Embed ExtensionKit Extensions" #1230 @mtj0928
- Added duplicate dependencies validation #1234 @aleksproger
2.30.0
✨ Added
- Added support for new target type `extensionkit-extension` in Xcode 14 #1228 @aleksproger
📋 Changed
- Speed up generating build settings for large projects #1221 @jpsim
🐛 Fixed
- Fix XcodeGen building as library after breaking XcodeProj update 8.8.0 #1228 @aleksproger
2.29.0
📋 Changes
- Schemes and Target Schemes can now reference existing Test Plans under `{scheme}.test.testPlans` and `{target}.scheme.testPlans`, respectively. #716 @yonaskolb @omares
- Fixed an issue where DocC was not added to source file list #1202 @hiragram
- Updated XcodeProj to 8.7.1 #1213 @yonaskolb
2.28.0
📋 Changes
- Support for specifying custom group locations for SPM packages. [#1173](https://github.com/yonaskolb/XcodeGen/issues/1173) @John-Connolly
🐛 Fixed
- Fix Monterey macOS shell version, shell login flag for environments [#1167](https://github.com/yonaskolb/XcodeGen/issues/1167) @bimawa
- Fixed crash caused by a simultaneous write during a glob processing [#1177](https://github.com/yonaskolb/XcodeGen/issues/1177) @tr1ckyf0x
📋 Changed
- Run target source pattern matching in parallel [#1197](https://github.com/yonaskolb/XcodeGen/pull/1197) @alvarhansen
- [Commits](https://github.com/yonaskolb/XcodeGen/compare/2.27.0...2.28.0)
2.27.0
📋 Changes
- Support test target for local Swift Package [#1074](https://github.com/yonaskolb/XcodeGen/pull/1074) @freddi-kit
- Added `coverageTargets` for target test schemes. This enables to gather code coverage for specific targets. [#1189](https://github.com/yonaskolb/XcodeGen/pull/1189) @gabriellanata
- Fixed issue where .gyb files could not be added to source file list [#1191]((https://github.com/yonaskolb/XcodeGen/issues/1191) @hakkurishian
🐛 Fixed
- Fixed crash caused by a simultaneous write during a glob processing [#1177](https://github.com/yonaskolb/XcodeGen/issues/1177) @tr1ckyf0x
- Skip generating empty compile sources build phases for watch apps [#1185](https://github.com/yonaskolb/XcodeGen/issues/1185) @evandcoleman
- [Commits](https://github.com/yonaskolb/XcodeGen/compare/2.26.0...2.27.0)
2.26.0
✨ Added
- Added the option to specify a `location` in a test target [#1150](https://github.com/yonaskolb/XcodeGen/issues/1150) @KrisRJack
📋 Changed
- Speed up source inclusion checking for big projects [#1122](https://github.com/yonaskolb/XcodeGen/pull/1122) @PaulTaykalo
- [Commits](https://github.com/yonaskolb/XcodeGen/compare/2.25.0...2.26.0)
2.25.0
✨ Added
- Allow specifying a `copy` setting for each dependency. [#1038](https://github.com/yonaskolb/XcodeGen/pull/1039) @JakubBednar
🐛 Fixed
- Fix broken codesign option for bundle dependency [#1104](https://github.com/yonaskolb/XcodeGen/pull/1104) @kateinoigakukun
- Ensure fileTypes are mapped to JSON value [#1112](https://github.com/yonaskolb/XcodeGen/pull/1112) @namolnad
- Fix platform filter for package dependecies [#1123](https://github.com/yonaskolb/XcodeGen/pull/1123) @raptorxcz
- Fix Xcode 13 build [#1130](https://github.com/yonaskolb/XcodeGen/issues/1127) @raptorxcz @mthole
- [Commits](https://github.com/yonaskolb/XcodeGen/compare/2.24.0...2.25.0)
2.24.0
✨ Added
- Added support for DocC Catalogs [#1091](https://github.com/yonaskolb/XcodeGen/pull/1091) @brevansio
- Added support for "driver-extension" and "system-extension" product types [#1092](https://github.com/yonaskolb/XcodeGen/issues/1092) @vgorloff
- Add support for conditionally linking dependencies for specific platforms [#1087](https://github.com/yonaskolb/XcodeGen/pull/1087) @daltonclaybrook
- Add ability to specify UI testing screenshot behavior in test schemes [#942](https://github.com/yonaskolb/XcodeGen/pull/942) @daltonclaybrook
📋 Changed
- Breaking: Rename the `platform` field on `Dependency` to `platformFilter` [#1087](https://github.com/yonaskolb/XcodeGen/pull/1087) @daltonclaybrook
- [Commits](https://github.com/yonaskolb/XcodeGen/compare/2.23.1...2.24.0)
