Kite Ssot Logo Extension
One app icon for both platforms, inside kiteSsot { logo { ... } }.
kiteSsot {
logo {
foreground = file("art/logo_fg.png")
backgroundColor = "#102A43"
}
}Hand KiteSSOT a foreground and one background. It renders both platforms from that pair, so nobody exports twenty PNGs by hand again.
What gets written
| Platform | Output |
|---|---|
| Android | ic_launcher, ic_launcher_round, and both adaptive layers at every density |
Android, compileSdk 33+ | the themed-icon <monochrome> wrapper as well |
| Apple | one AppIcon-1024.png plus a single-image universal Contents.json |
The Apple side is deliberately one image: Xcode 14 and newer derive every slot from the 1024 universal entry, so shipping the older per-slot set would add files nothing reads.
Apple rejects icons that carry transparency, so the Apple output is always flattened onto your background. Android keeps foreground and background as the two separate adaptive layers.
Configuring is not running
Opening this block authorizes the logo tasks. It does not run them. Nothing on disk changes until you invoke kiteSsotSyncAndroidLogo or kiteSsotSyncIosLogo yourself, and dryRun and backups still apply when you do.
The Apple installer additionally needs KiteSsotIosExtension.deploymentTarget and an ios { sync { } } block, because it writes into your Xcode tree.
See also
for the gate the Apple installer also requires.
for where the Apple catalog lives.
Properties
Fraction of Android's adaptive canvas that the foreground may fill.
PNG holding the plate the foreground sits on.
Solid background color, written as #RRGGBB or #AARRGGBB. Alpha comes first, the Android convention.
PNG holding the artwork that sits on top: your mark, your glyph.
Lets Android logo installation claim icon files it did not create: the Android Studio wizard's ic_launcher.webp, old adaptive XML wrappers, and same-name PNGs that break the resource merge.