Skip to content

Conversation

iamEvanYT
Copy link

@iamEvanYT iamEvanYT commented Sep 17, 2025

closes #9254
closes #9278


This PR updates the "icon" property to the electron-builder configuration which adds support for icons made with Icon Composer (.icon format).

On building, it will create an Assets.car with the icon which will be bundled inside the app's Resources folder.

Copy link

changeset-bot bot commented Sep 17, 2025

🦋 Changeset detected

Latest commit: 2f9afb2

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 8 packages
Name Type
app-builder-lib Major
dmg-builder Major
electron-builder-squirrel-windows Major
electron-builder Major
electron-forge-maker-appimage Major
electron-forge-maker-nsis-web Major
electron-forge-maker-nsis Major
electron-forge-maker-snap Major

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@Kilian
Copy link
Contributor

Kilian commented Sep 19, 2025

would this support shipping both a .icon for Tahoe+ and an .icns for older mac versions?

@mmaietta
Copy link
Collaborator

would this support shipping both a .icon for Tahoe+ and an .icns for older mac versions?

@Kilian Do you know if those are separate "fields" perceived by mac? e.g., if we package both an icns and an icon, only Taho can read the new value?
Basically, do we know if Mac will render an icon file on older versions of macOS or is it only macOS 26+ "visible"?

I haven't gotten around to updating my mac to Tahoe yet as I'm afraid it'll brick my current dev environment while I'm mid-project. This is indeed on the todo list though

@iamEvanYT
Copy link
Author

iamEvanYT commented Sep 19, 2025

@mmaietta @Kilian I have tested on macOS Sequoia and with both the .icon and .icns file bundled, it will choose the .icon file and display a static version on it. I assume its the same for other macOS versions, but haven't tested.


Update 1:

Screenshot 2025-09-20 at 2 26 22 PM

The plist property seems to be available since macOS 10.13+, which should mean that the Liquid Glass icon will be visible since that macOS version.


Update 2:

Tested with macOS Monterey and confirmed that it does show there.

Screenshot 2025-09-20 at 17 09 14

@mmaietta
Copy link
Collaborator

mmaietta commented Sep 22, 2025

Thank you @iamEvanYT !

In this case then, I'd like to refactor this PR to instead leverage the icon, but I still need to check dmg-builder to see if/how the .icon would be rendered. Will try to get back to this asap

Is there a minimum xcode or macos version required for supporting this CLI tool? Wondering if we need to throw a more descriptive error if the tool command doesn't exist

@iamEvanYT
Copy link
Author

@mmaietta I did a few commits a few days ago to change to the icon property which should work. As for the minimum Xcode version, it should be Xcode 26. There is a check for macOS Tahoe in the icon-composer.ts file, which should cover errors in CI.

@mmaietta
Copy link
Collaborator

This is looking solid! Any chance we can add a .icon test fixture to integrate this into one of the mac unit tests?

@iamEvanYT
Copy link
Author

iamEvanYT commented Sep 26, 2025

@mmaietta There, the tests passed on my computer, so it should theoretically pass on the CI. However, it may not pass as it still uses the old Xcode SDK and not Xcode 26. In that case, we might have to change the CI runner from macos-latest to macos-26, but it may not be ideal.


Edit:

Huh, it seems like the macIconTest file isn't being ran in CI. I wonder if that's intentional?

I've added a commit that runs the macIconTests on macos-26 in the CI, but let me know if you want me to revert that.

@mmaietta
Copy link
Collaborator

mmaietta commented Sep 27, 2025

I took a look at dmg-builder and it does seem to indeed rely on an icns file., but it's in its own config param dmg.icon and does not inherit from mac.icon, so we should be good there!

Thank you for your great work on this PR and I appreciate your flexibility in working through these iterations

@mmaietta
Copy link
Collaborator

FYI, this LGTM, but I need to fix the core test-updater test suite before I can merge this. Working on this currently and hope to resolve asap

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature Request] Support Liquid Glass Icons for macOS 26 MacOS 26 .icon compatibility
3 participants