KiteSsotLogoExtension

abstract class KiteSsotLogoExtension

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

PlatformOutput
Androidic_launcher, ic_launcher_round, and both adaptive layers at every density
Android, compileSdk 33+the themed-icon <monochrome> wrapper as well
Appleone 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.

Constructors

Link copied to clipboard
constructor()

Properties

Link copied to clipboard
abstract val androidSafeZone: Property<Double>

Fraction of Android's adaptive canvas that the foreground may fill.

Link copied to clipboard
abstract val background: RegularFileProperty

PNG holding the plate the foreground sits on.

Link copied to clipboard
abstract val backgroundColor: Property<String>

Solid background color, written as #RRGGBB or #AARRGGBB. Alpha comes first, the Android convention.

Link copied to clipboard
abstract val enabled: Property<Boolean>

Forces the whole block off without deleting it.

Link copied to clipboard
abstract val foreground: RegularFileProperty

PNG holding the artwork that sits on top: your mark, your glyph.

Link copied to clipboard
abstract val takeOverLegacyIcons: Property<Boolean>

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.