this repo has no description
summary: "Convert macOS .icon bundles to CodexBar .icns via Scripts/build_icon.sh and ictool." read_when:
- Updating the CodexBar app icon or asset pipeline
- Preparing release builds that need a refreshed icns
Icon pipeline (macOS .icon → .icns without Xcodebuild)#
We use the new macOS 26 “glass” .icon bundle from Icon Composer/IconStudio and convert it to .icns via Xcode’s hidden CLI (ictool/icontool), without an Xcode project.
Script#
Scripts/build_icon.sh ICON.icon CodexBar [outdir]
What it does:
- Finds
ictool(oricontool) in/Applications/Xcode.app/Contents/Applications/Icon Composer.app/Contents/Executables/. - Renders the macOS Default appearance of the
.iconto an 824×824 PNG (inner art, glass applied). - Pads to 1024×1024 with transparency (restores Tahoe squircle margin, avoids “white plate”).
- Downscales to all required sizes into an
.iconset. - Runs
iconutil -c icns→Icon.icns.
Requirements:
- Xcode 26+ installed (IC tool lives inside the Xcode bundle).
sipsandiconutil(system tools).
Usage:
./Scripts/build_icon.sh Icon.icon CodexBar
Outputs Icon.icns at repo root.
Why this approach:
- Naive
sips/iconutilfrom raw PNGs often leaves a white/grey plate because the inner art is full-bleed. The ictool render + transparent padding matches Xcode’s asset-pipeline output.
Notes:
- If Xcode is in a nonstandard location, set
XCODE_APP=/path/to/Xcode.appbefore running. - Script is CI-friendly; no Xcode project needed.