assetutil(1) General Commands Manual assetutil(1)

assetutil process asset catalog .car files

assetutil [-VIiotsuphgkMcrTLUnZ] inputfile

assetutil processes a .car file generated from a image catalog. It can thin a .car file removing unrequested scale factors, device idioms, subtypes, performance and memory classes. It can also produce a JSON description of the contents of a .car file (-I), compare thinning attributes to determine if two sets of thinning parameters would produce the same result (-T), or validate the structural integrity of a .car file (-Z).

When thinning scale, idiom, subtype, performance, memory, and graphicsclassfallbacks can be given multiple times, the resulting file will contain all of the assets that match all of the parameters given. If scale, idiom, subtype and graphics class are given in one set, the same parameters must all be present in the subsequent set of parmeters. (IE the count must match)

assetutil always thins in application mode, that is, to a single scale/idiom/performance/memory class. It has no framework mode. Use carutil(1) if framework mode thinning, image or layer stack extraction, or the lower level storage inspection options are needed.

Generate a resulting car file based on these parameters.

, --idiom idiom
Keep all assets that have idiom that is given on the command line. Can be one of universal/phone/pad/tv/car/watch/marketing/mac/vision, matched case insensitively. reality is accepted as a deprecated alias for vision.
, --subtype integer
Subtype to keep (integer).
, --subtypefallbacks subtypes
Subtype fallbacks, specified as subtypes separated by ':'.
, --scale integer
Keep all assets that have scale factor that is given on the command line, present scale factors will not be removed if there is no fallback available.
, --display-gamut gamut
Keep all assets that have the display gamut that is given on the command line, present display gamuts will not be removed if there is no fall back available. Can be one of srgb/p3/rec2020/all, matched case insensitively. all keeps every display gamut present in the file.
, --hostedidioms idiomlist
Process the hosted idioms list, this is a list of the idioms that must always be preserved in the car file. This list cannot contain universal, and the different idioms should be given in a comma separated list.
, --graphicsclass class
Keep all assets that have graphics class that is given on the command line. The present graphics class will not be removed if there is no fallback available.
, --graphicsclassfallbacks classes
Graphics class fallbacks, specified as graphics classes separated by ':'.
, --memory integer
Keep all assets that have memory class that is given on the command line, present memory class will not be removed if there is no fallback available.
, --deployment-target target
Set the deployment target for thinning.

No thinning is performed when these parameters are given. The thinning parameters can be passed here to narrow down the output.

The name argument of -I is optional, and so must be attached to the option rather than separated from it by a space:

assetutil -IAppIcon Assets.car
assetutil --info=AppIcon Assets.car
Writing ‘assetutil -I AppIcon Assets.car’ does not work: the name is taken as a second file operand and assetutil prints its usage and exits 1.
, --info [name]
Produce a JSON description of the asset catalog object with the given name, written to the -o --output file if given or to stdout if no output path is given. If no name is provided, report on the contents of the entire car file. If a name is given and no object in the file matches it, assetutil exits 2.
, --main-contents path
Main Assets.car file used to supply the names of the assets. Honoured by -I (--info), -T, -L and -n.
, --compare-thinning parameters
Compare thinning attributes. The parameters are given as ´scale=2:idiom=phone:hostedidioms=watch,car:memory=2:graphicsclass=MTL1,2/scale=2:idiom=phone:memory=1:graphicsclass=MTL2,2´. Will print to stdout if the file was thinned with the above thinning attributes, would the same Asset file result in both cases. The thinning selector options cannot be combined with this option; giving any of them fails with ‘too many parameters given to compare’.
, --compare-thinning-batch path
Compare thinning attributes specified in a JSON file in batch.

, --output path
Output file name, if no output file is given then input file is overwritten.
, --version
Version information for assetutil. This is written to stderr.
, --update-bitmap
Update the bitmap index of inputfile.
, --preserve-assets-named names
Given a comma separated list of names, any assets in the car file that match one of the given names are preserved, and every other asset is removed. An asset matches when its rendition name has one of the given names as a prefix, compared case sensitively, so ‘App Icon’ preserves ‘App Icon/Back/Content’ and the rest of that layer stack. Uses the -o --output file to save the resulting .car file, or rewrites the input file in place if no output file is given.
, --validate-file
Validate that the file is valid (structurally/renditions are accessible and loadable) (exit 2 if bad, 0 if okay).

Only one operation is performed per invocation. If more than one of the options above is given, assetutil silently runs the first one it recognises and ignores the rest, so combinations such as -I together with -Z do not do both.

0
The requested operation succeeded.
1
The operation failed. The input is not a readable asset catalog, an option value could not be parsed, an unknown option was given, or the number of file operands was not exactly one. assetutil describes the failure on stderr, and prints its usage for the malformed command line cases.
2
The requested check completed and the answer was negative. This is not a failure of assetutil itself. -Z reports a bad file this way, and -I reports that the requested name is not in the file.

carutil(1)

August 6, 2026 Darwin