Adds support for Xcode15, which introduces an extra precompilation step (actool headers generation).
This PR consists of:
Producer: As the list of dependencies, collect all directory dependencies from the actool .dep file (that file is called assetcatalog_dependencies and placed always in the TargetTempDir. Then scan those dirs to find Contents.json. Contents.json are files that describe the .xcassets' generated output
Consumer: when an "unknown" file GeneratedAssetSymbols.swift is found as the compilation input file - do not give up the cache hit flow. That file has been created on-fly (in-between prebuild and swiftc) but its content has to match the producer side, because in the prebuild we have already compared all Contents.json files that drive the the output of the actool's generated files
How was it tested?
E2E tests, run locally with Xcode15 beta 1 (CI will support Xcode 15 beta starting 19th of June).
Adds support for Xcode15, which introduces an extra precompilation step (
actool
headers generation).This PR consists of:
directory
dependencies from theactool
.dep file (that file is calledassetcatalog_dependencies
and placed always in the TargetTempDir. Then scan those dirs to findContents.json
.Contents.json
are files that describe the .xcassets' generated outputGeneratedAssetSymbols.swift
is found as the compilation input file - do not give up the cache hit flow. That file has been created on-fly (in-between prebuild and swiftc) but its content has to match the producer side, because in the prebuild we have already compared all Contents.json files that drive the the output of the actool's generated filesHow was it tested?
E2E tests, run locally with Xcode15 beta 1 (CI will support Xcode 15 beta starting 19th of June).
Fixes #211