I have a large-ish Xcode project that builds a framework, extension and application. The framework has logic tests, and embeds xcasset resources used by both the extension and the application. Some of the logic tests validate that all of the required xcassets can be found, so that when the application calls the framework to obtain them, they're in a known good state, and should never fail to load them. In particular, the framework wraps calls to UIImage(named: in:) with the bundle parameter set to the framework.
Under Xcode 9.4, the logic tests run, verify that all of the required xcassets are present, and succeed. Under Xcode 10 beta 1, none of the xcassets can be found. I've used Clean Build Folder several times under both Xcode 9.4 and 10. Xcode 9.4 always succeeds, Xcode 10 spectacularly fails. If I build the application, it is able to launch, and run when built with Xcode 9.4, but with Xcode 10, the application also fails to find any framework xcassets, in the same way as the logic tests fail under Xcode 10. No code changes have been applied to any source code or the project settings yet (the exact same project assets and source code are being used in both cases).
In the verbose build output, the only differences between the builds are:
- Xcode 10 is using full paths to xcasssets when invoking CompileAssetCatalog
- Xcode 9.4 is exporting PATH before invoking actool
- The respective actool is being invoked (Xcode or Xcode-beta in the path)
- --filter-for-device-os-version is 12 for Xcode 10, and 11.4 for Xcode 9.4
The resulting Assets.car file is 26.4 MB in size for Xcode 10, and 32.2 MB for Xcode 9.4.
Does anyone have any ideas what might be going on, what I might check for, next? I'm not sure if this is an asset catalog compilation bug, but I would rule out an XCTest related build bug, since the application has the same problem as the logic tests.