* Introduce product type appClips
* Add embed AppClips build phase
* Add appclips to be executable
* Apply swift formatting
* Add linter rules for appClips target bundle ID
* Add default settings for AppClips
* Apply swift formatting
* Add fixture for appclips
* Add acceptance test for appclips
* Add appClips product type to be supported for iOS platform
* Add appClips product type tests
* Add lint for required parent application identifiers entitlement in app clip target
* Add missing appclips product in unit test and ui tests lintable target
* Update documentation with appClips addition
* Update changelog
* Rename appClips product type to appClip
* Add appClip lint tests for required entitlements
* Update docs with appClip product type renaming
* Update appClip acceptance test with appClip renaming
* Add target of appClip product type can host tests
* Skip adding embed app clip build phase for targets of non-app product type
* Add unit test and ui test targets in app clip test fixture
* Include missing appClip to be returned as apps
* Avoid traversing graph to extract app and appClip pair
* Add steps to build app clip unit and ui tests
* Apply formatting
* Add a lint rule to detect an app dependency on more one app clip
* Improve missing parent application identifiers entitlement linting message
* Fix ambiguous rake task name
* Run generate-6 acceptance tests containing appclip test with Xcode 12
* Restore changelog
* Replace references of info.plist app clip fixture with default one
* Remove redundant references to assets in app clip fixture
* Add tests for appClip product type
* Update doc to include app clip reference
* Add test to confirm app clip bundle package type
* Add a step to appClip acceptance test to verify valid architecture
* Add a test for appClip build phase attributes
* Add App Clips example docs
* Infer AppClip framework dependency for target of AppClip product type
* Rename appclip target to avoid name collision with system AppClip import
* Use the build phase to locate the built product artifacts
* Add acceptance test
* Fix integration tests
* Fix acceptance tests
* Fix acceptance test
* Fix cache acceptance tests
* Fix watchOS acceptance tests
* Fix acceptance test
* Run pipelines on Xcode 12.1
* Remove Carthage test
* Run acceptance tests with Xcode 11.5 too
* Fix acceptance test with widget
* Use argument to allow internal distribution
* Style fixes
* Add acceptance tests
* Include freenow logo
Co-authored-by: Pedro Piñera <pedro@ppinera.es>
### Short description 📝
While working on https://github.com/bloomberg/xcdiff/pull/40, we discovered that some of the build files are missing `RemoveHeadersOnCopy` attribute. The attribute determines if the headers should be striped from the archive, and if not set, can lead to headers leakage. The attribute is not visible in the Xcode UI, but added automatically every time a certain bundle types are added to a copy files build phase (i.e. .framework, .appex).
Oddly the attribute is not added for `.xcframework`, but it's probably an Xcode issue (FB7533618).
### Solution 📦
Added "RemoveHeadersOnCopy" attribute for build files in embed precompiled frameworks, embed watch content, and embed app extensions build phases.
### Implementation 👩💻👨💻
- [x] Update TuistGenerator to add `RemoveHeadersOnCopy`
- [x] Update acceptance tests
- [x] Update CHANGELOG
* Add a new case to Info.plist, dictionary
* Add .dictionary to the model in TuistGenerator
* Add DerivedFile model
* Add documentation
* Create a custom type for the InfoPlist dictionary
* Fix tests
* Update CHANGELOG
* Add logic to write Info.plist content
* Test DerivedFileGenerator
* Generate the file elements and the right configuration path
* Add tests
* Include Minitest::Assertions namespace
* Fix acceptance tests
* Fix tests
* Add test that asserts that a codable & equatable object can be encoded and decoded, resulting in the same object
* Remove not used decoding logic from the InfoPlist.Value enum.
Moreover, update its tests to use the new XCTAssertCodable helper.
* Simplify the generation logic by setting the target.infoplist attribute pointing to the Info.plist generated in the Derived folder
* Fix#253 - Include linked library and embed in any top level executable bundle
* Fix fixture test, removed explicit link inside of main app and compiled Framework2 as a fat binary
* swiftformat .
* Update CHANGELOG.md
* Add acceptance tests
* Delete copying the working directory
* Store DerivedData in the working directory