How to add Apple's new Liquid Glass icons to applications

Without Xcode, almost.

· 3 min read

Liquid Glass icon in Icon Composer

Overview

If you have tried Apple’s new Icon Composer app, you may have noticed that you can only export icons as PNG, in one specific size. Typically you would want to export icons as a *.icns file containing multiple different resolutions of the same image.

Liquid Glass icons however are not based on fixed resolution bitmap images. Instead they encourage you to use scalable SVG assets to build your icon, and those same scalable assets are when end up in applications built with Xcode 26 using the new *.icon format that Icon Composer saves to.

I ended up on a deep-dive yesterday as part of making some Liquid Glass icons for Emacs: github.com/jimeh/emacs-liquid-glass-icons

The correct way to use icons created with Icon Composer, is to drop the *.icon document into your Xcode project using Xcode 26, and then build the app. It will create a normal bitmap based *.icns icon file for compatibility with macOS 15 and earlier. But it will also embed the full features of the Liquid Glass icon into the application as well for macOS 26 and later.

For reference, the full list Liquid Glass features are:

  • Separate light and dark icon designs.
  • See-through “clear” glass styles, also in light and dark designs.
  • User-selected color tinted icon designs.
  • Automatically adapts the default light design to the circular design for watchOS.

Internals

Xcode embeds the Liquid Glass icons by bundling their separate resources into a Assets.car file placed under the Contents/Resources directory of built applications. It then sets CFBundleIconName in Contents/Info.plist to point at the named icon resource in Assets.car, this is an example from my Emacs LG Icons project:

<key>CFBundleIconName</key>
<string>EmacsLG1</string>

You can inspect the list of assets within the Assets.car file with assetutil:

xcrun assetutil --info '<path/to/Assets.car>'

This will print the data in JSON format, as a list of assets within the file. You’ll notice that each of the layers, colors, and other individual items from within your *.icon document. For example, here’s the one of the Icon Image assets from the Assets.car file in my Emacs LG project:

{
  "AssetType": "Icon Image",
  "BitsPerComponent": 8,
  "ColorModel": "RGB",
  "Colorspace": "srgb",
  "Compression": "lzfse",
  "Encoding": "ARGB",
  "Icon Index": 1,
  "Name": "EmacsLG1",
  "NameIdentifier": 15594,
  "Opaque": false,
  "PixelHeight": 1024,
  "PixelWidth": 1024,
  "RenditionName": "EmacsLG1_light.png",
  "Scale": 1,
  "SHA1Digest": "DC92383D751D5A42B24271D32C6414E6EECEDDFEA8BAD8DD6D004BC111DA87E5",
  "SizeOnDisk": 186738
}

Using Xcode

If your application is built using Xcode, the process is relatively straight forward. You simply drag the *.icon document into your Xcode project, and under the build targets “App Icon” option, set it to the name of your *.icon document.

For example, if it’s called MyIcon-v42.icon, you would set App Icon to MyIcon-v42.

When the application is built, you will get a Contents/Resources/Assets.car that contains the icon resources, and CFBundleIconName will be set to MyIcon-v42. This is all that’s needed for macOS 26 to render the new Liquid Glass icon.

If you include multiple *.icon documents in the Xcode project, they will all be included in the Assets.car file, regardless of what you’ve set the App Icon option to.

Not Using Xcode

If your application does not use Xcode for its build process, you can manually add a Assets.car file and set CFBundleIconName in Contents/Info.plist.

Creating that Assets.car file however, does currently to my knowledge, require Xcode 26 and an Xcode project. So despite the heading above, you will need to use Xcode.

But all you need a empty macOS app project, which if you pick the simplest macOS app option in Xcode, will yield an empty app with a hello world window. Simply drag your *.icon document into that project, and run the app.

This will build the application and launch it. If you then cmd+click on the app in the Dock, it will reveal it in Finder, from where you can right click > Show Package Contents, and grab the Assets.car with your Liquid Glass icon embedded in it.

Not ideal, but it works, and I’m sure better methods will be discovered or maybe even provided by Apple themselves.

If you want to see an example dummy Xcode application for this, have a look at the EmacsLG directory in my Emacs LG Icons project.