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:

  1. Finds ictool (or icontool) in /Applications/Xcode.app/Contents/Applications/Icon Composer.app/Contents/Executables/.
  2. Renders the macOS Default appearance of the .icon to an 824×824 PNG (inner art, glass applied).
  3. Pads to 1024×1024 with transparency (restores Tahoe squircle margin, avoids “white plate”).
  4. Downscales to all required sizes into an .iconset.
  5. Runs iconutil -c icnsIcon.icns.

Requirements:

  • Xcode 26+ installed (IC tool lives inside the Xcode bundle).
  • sips and iconutil (system tools).

Usage:

./Scripts/build_icon.sh Icon.icon CodexBar

Outputs Icon.icns at repo root.

Why this approach:

  • Naive sips/iconutil from 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.app before running.
  • Script is CI-friendly; no Xcode project needed.