feat: Add support for macOS layered icons #5451
Open
+417
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Support for using macOS layered icons (
.icondirectory) for both JVM and native application packaging.layeredIconDirproperty is added to thecompose.desktop.application.nativeDistributions.macOSandcompose.nativeApplication.macOSDSLs.actoolfrom Xcode Command Line Tools is used to compile the.icondirectory into anAssets.carfile.Assets.carfile is included in the.appbundle resources.Info.plistis updated withCFBundleIconNameto reference the compiled asset.actoolversion is performed before compilation.testMacLayeredIcon,testMacLayeredIconRemove) are added to verify the functionality for both JVM and native targets.Example
compose.desktop { application { nativeDistributions { macOS { layeredIconDir.set("Icon Path") } } } }Testing
Only verify the task behavior: compose:test-Gradle(9.0.0)-Agp(8.9.0) --tests org.jetbrains.compose.test.tests.integration.DesktopApplicationTest.testMacLayeredIcon
Only verify the task behavior: compose:test-Gradle(9.0.0)-Agp(8.9.0)** --tests org.jetbrains.compose.test.tests.integration.DesktopApplicationTest.testMacLayeredIconRemove
This should be tested by QA
Tickets
CMP-9083 Support macOS 26 layered icons
Release Notes
Features - Gradle Plugin
.icondirectory) for both JVM and native application packaging.