* Add explicitFolders support to syncedFolder
Adds an `explicitFolders` property to `TargetSource` that is expanded from Glob patterns and passed through to `PBXFileSystemSynchronizedRootGroup`.
* Fix syncedFolder sources ignoring createIntermediateGroups
When createIntermediateGroups was enabled and a syncedFolder source had a
multi-component path (e.g. SyncedParent/SyncedChild), two things went wrong:
1. The synced folder was unconditionally added to rootGroups, causing it
to appear both at the project root and inside the correct intermediate
parent group.
2. The synced folder kept its full project-relative path instead of being
made relative to its parent group, so Xcode concatenated them into a
wrong path (e.g. SyncedParent/SyncedParent/SyncedChild).
* Enhance PBXFileElement to recognize synced folders as groups that can be sorted
* Fix membership exceptions for nested synced folder with intermediate groups
* Update Changelog
* Custom error handler
* Check for error reason and expected type
* Improvements
* Update CHANGELOG.md
* Update master (#1)
* Update CI equipments and drop Xcode 15 support (#1548)
* Add validation to ensure that settings.configs values are dictionaries, in order to prevent misuse (#1547)
* Add validation to ensure settings.configs values are dictionaries to prevent misuse
* Add tests for invalid settings.configs value formats
* Replaced with filter and split into a function
* Rename invalidConfigsFormat to invalidConfigsMappingFormat
* Add comments to explain invalid fixture
* Rename test fixture
* Update CHANGELOG.md
* Correct grammer
* Use KeyPath instead of closure
* Rename validateMappingStyleInConfig to extractValidConfigs
* Add a document comment for extractValidConfigs(from:)
* Use old testing api and remove EquatableErrorBox
* Rename test case to use "mapping" instead of "dictionary"
* Add ValidSettingsExtractor to encapsulate the logic for converting a dictionary to Settings
* Add settings validation for both Target and AggregateTarget
* Add tests for invalid settings.configs in Target and AggregateTarget
* Add document comments for ValidSettingsExtractor
* Rename ValidSettingsExtractor to BuildSettingsExtractor
* Add settings validation for settingGroups
* Add tests for settingGroups
* Rename extract to parse
* Refactor
* Update Tests/ProjectSpecTests/InvalidConfigsFormatTests.swift
---------
Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
* Synced folders (#1541)
* update xcodeproj to 8.27.7
* add syncedFolder source type
* drop xcode 15 support
* Rely on fileReference instead of adding new synchronizedRootGroup (#1557)
* fix: don't include untracked children in cache
---------
Co-authored-by: Kirill Yakimovich <kirill.yakimovich@gmail.com>
* Use USER env var instead of LOGNAME (#1559)
During user switch with su/sudo in system LOGNAME may not be initialised, but USER env var is always exist.
* Address Sanitizer options in run/test schemes (#1550)
* Expose address sanitizer flags in run and test BuildActions in Schemes
* Update testJSONEncodable to test the new fields
* Also test the asan setting values for run scheme
* Update changelog
---------
Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
* Update to 2.44.0
# Conflicts:
# CHANGELOG.md
---------
Co-authored-by: Kohki Miki <giginet.net@gmail.com>
Co-authored-by: Ryu <87907656+Ryu0118@users.noreply.github.com>
Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
Co-authored-by: Kirill Yakimovich <kirill.yakimovich@gmail.com>
Co-authored-by: Kanstantsin Shautsou <kanstantsin.sha@gmail.com>
Co-authored-by: Himanshu Kumar <7786778+hi-kumar@users.noreply.github.com>
* Revert
* Refactoring started
* func json(atKeyPath keyPath: String) -> String?
* All cases
---------
Co-authored-by: Kohki Miki <giginet.net@gmail.com>
Co-authored-by: Ryu <87907656+Ryu0118@users.noreply.github.com>
Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
Co-authored-by: Kirill Yakimovich <kirill.yakimovich@gmail.com>
Co-authored-by: Kanstantsin Shautsou <kanstantsin.sha@gmail.com>
Co-authored-by: Himanshu Kumar <7786778+hi-kumar@users.noreply.github.com>
* Expose address sanitizer flags in run and test BuildActions in Schemes
* Update testJSONEncodable to test the new fields
* Also test the asan setting values for run scheme
* Update changelog
---------
Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
* Add validation to ensure settings.configs values are dictionaries to prevent misuse
* Add tests for invalid settings.configs value formats
* Replaced with filter and split into a function
* Rename invalidConfigsFormat to invalidConfigsMappingFormat
* Add comments to explain invalid fixture
* Rename test fixture
* Update CHANGELOG.md
* Correct grammer
* Use KeyPath instead of closure
* Rename validateMappingStyleInConfig to extractValidConfigs
* Add a document comment for extractValidConfigs(from:)
* Use old testing api and remove EquatableErrorBox
* Rename test case to use "mapping" instead of "dictionary"
* Add ValidSettingsExtractor to encapsulate the logic for converting a dictionary to Settings
* Add settings validation for both Target and AggregateTarget
* Add tests for invalid settings.configs in Target and AggregateTarget
* Add document comments for ValidSettingsExtractor
* Rename ValidSettingsExtractor to BuildSettingsExtractor
* Add settings validation for settingGroups
* Add tests for settingGroups
* Rename extract to parse
* Refactor
* Update Tests/ProjectSpecTests/InvalidConfigsFormatTests.swift
---------
Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
* Reject multiplatform apps that support the watchOS destination
This commit also fixes existing test cases.
* Add test cases
* Update docs
* Update changelog
* Make sure to create parent group structure for local packages
* Remove redundant localPackageGroup variable
---------
Co-authored-by: Jaap Manenschijn <jaap.maneschijn@rabobank.nl>
* Support for xcode 15 string catalogs
* Add sample string catalog to Test Fixture and basic test to check that asset catalogs are added in the resources build phase
* Restore unintended changes
* Update Pull Request number for 'Support for Strings Catalogs' in changelog
* Update fixture yml generator
* Detect knownRegions based on locales in string catalogs
* platformFilters on Dependecies
* platformFilters on sources
* fixed current unit tests
* renamed enum to SupportedPlatforms
* supportedPlatforms field for target
* errors
* renamed errors
* inferPlatformFiltersByPath flag
* changed priority to generate filter
* fixed parsing
* fixed init
* unit test supportedPlatforms
* unit tests for errors
* fixing build settings and unit tests
* added new settingsPresets
* new check errors and unit tests
* case insensitive match
* fixed skipping cross platform target
* json decode
* unit tests inferPlatformFiltersByPath and platformFilters for sources
* mocked files
* fixing unit tests
* first test on dependecies
* unit tests completed
* fixed unit tests
* changelog
* doc changes
* doc changes
* doc changes
* doc changes
* doc changes
* doc changes
* doc changes
* doc changes
* fixed doc
* fixed unti tests style
* fixed regex
* fixed doc
* addressing comments
* Added TestProject, moved unit tests resources in another folder
* Raising error if platform is an array
* unit test on new error
* fixed error enum
* Integrated in TestProject
* committed TestProject
* unit test error
* fixing spm deps in test project
* pushed testProject
* pushed testProject
* pushed testProject fix
* comment on isResolved property
* renameing supportedPlatforms to supportedDestinations
* renameing supportedPlatforms to supportedDestinations
* renameing test app
* checked out old file
* fixing test app
* working on auto baseSDK
* fixed deploymentTarget
* renamed errors
* fixed presets
* remamed index to priority
* small comments
* removed isResolved in target and fixed error check
* added unit tests
* fixed doc
* fixed doc
* fixed doc
* fixed doc
* fixed test app
* add visionOS and more error check and testing
* fixed supported destinations priority and tests
* fixed doc
* solved conflicts
* fixed conflicts
* renamed everything
---------
Co-authored-by: Giovanni Amati <giovanni.amati@sky.uk>
* Reproduce issue in FixtureTests
* Don't add PBXContainerItemProxy if existing PBXReferenceProxy was reused
* Move extenral target fixture to an iOS target so that it actually compiles
* Update CHANGELOG.md