The problem for me is that we have an app that targets iOS 6 and an embedded sticker pack that targets iOS 10. When xcode builds the asset catalog for the sticker pack it passes '--minimum-deployment-target 10.0' to actool.
actool then builds that asset catalog into an Assets.car and happily uses 16-bit or P3 assets (even though the source assets are not), because as far as it's concerned they should be valid (which is probably correct)
The problem here is that ITC is not checking if the offending Assets.car is actually going to be accessible to the iOS 6 app (which it isn't), it *SHOULD* check that the offending file is inside an extension, find the minimum target of 10 for that extension and not fail it. No-one running iOS 9 or below can access the offending Assets.car, so in my opinion this is a bug in ITC that should be fixed.
To bypass this bug, take a look at the build output. The extension should build first (as it's a dependancy), copy the actool commandline from the xcode log that builds the asset catalog, edit the minimum version to match the main app, and run it again before the rest of the build finishes. This recreates the assets.car file but without the offending issues.
It's a horrid hack and not at all what I think is the right thing to do, but it works.