Sync Ios Logo Task
Composites the FG/BG layers into the iOS AppIcon.appiconset:
BG covers the 1024² canvas, FG contains (aspect-preserving) on top.
Flattened to opaque RGB: App Store marketing icons MUST NOT have alpha, so any FG/BG transparency is composited against white.
Writes
AppIcon-1024.png+ a single-image universalContents.json.
Requires Xcode 14+ and an iOS deployment target of at least 12.0 (validated by the root model). This is deliberately non-cacheable because it installs into a user-owned Xcode asset catalog and must execute configured recovery, ownership, orphan, and path-safety checks on every invocation.
Safety rails on every source-writing task
| Rail | Behaviour |
|---|---|
| Explicit only | never runs as part of an ordinary build; you invoke it by name |
| Authorized | the matching DSL block must be configured, or the task is skipped |
-Pkiteconfig.dryRun=true | reports what it would write and remove, changes nothing |
-Pkiteconfig.backups=true | keeps a recovery copy before replacing anything (default) |
| Ownership | refuses to overwrite or delete a file it does not own |
| Atomic | staged then swapped, so an interrupted run leaves the tree intact |
Both -P switches accept exactly true or false; anything else fails the build rather than being read as false.
Properties
Validated explicitly so configured-but-missing files receive actionable plugin diagnostics.
Compatibility surface for diagnostics/wiring; source-tree files are not Gradle task outputs.