Parsing Apple’s proprietary asset catalog format (.car files) without official documentation is a problem many macOS developers face when trying to extract images bundled inside applications. Asset Catalog Tinkerer tackles this head-on by reverse-engineering the binary format Apple uses to compile asset catalogs, providing a native macOS GUI to browse and export the contained images. This is a practical tool for developers who want to peek inside compiled apps or tweak assets without the usual guesswork.
what asset catalog tinkerer does and how it works
At its core, Asset Catalog Tinkerer is a macOS desktop application written in Swift using AppKit. It opens Apple’s compiled asset catalog files (.car), which are binary blobs that bundle all the images and assets used by an app. Since Apple doesn’t publicly document the .car format, the app relies on reverse-engineering to interpret the structure and extract individual images.
The app presents a native GUI where users can open any .car file — usually found inside an app’s Resources directory — and browse through its image assets. It supports drag-and-drop export of individual images, as well as batch exporting entire catalogs or selected subsets. This makes it a handy tool for developers, designers, or anyone needing to extract images from compiled macOS or iOS applications.
Beyond just image extraction, Asset Catalog Tinkerer includes a QuickLook plugin for Finder, enabling native previews of .car files without opening the full app. Since version 2.2, it also supports theme store files from Apple’s SystemAppearance.bundle and professional frameworks like ProKit and LunaKit, expanding its usefulness to Apple’s own system and pro app themes.
The architecture leverages Swift’s strong typing and AppKit’s mature UI capabilities to provide a responsive and familiar macOS experience. The reverse-engineering effort under the hood means the app works without relying on any external tools or libraries, keeping it self-contained and lightweight.
technical strengths and design tradeoffs
What stands out about Asset Catalog Tinkerer is the reverse engineering of an undocumented binary format. Apple’s .car files are proprietary and not intended for public parsing, so this project fills a gap by decoding the internal structure well enough to extract images reliably.
The codebase is written entirely in Swift, making use of AppKit rather than SwiftUI, which reflects a deliberate choice to target mature and stable macOS UI patterns. This choice favors stability and compatibility, especially given the complex binary parsing involved.
The GUI design is straightforward and functional, prioritizing usability over flashy features. The drag-and-drop export and batch export options demonstrate practical developer experience considerations — allowing efficient workflows rather than manual one-by-one extraction.
Adding a QuickLook plugin extends the tool’s integration into the macOS ecosystem, which is a nice touch for daily usability. Supporting theme store files and professional frameworks like ProKit and LunaKit shows an awareness of Apple’s broader asset infrastructure, not just apps.
The tradeoff here is the scope limitation: it explicitly supports only image assets. Newer asset types such as named colors or other complex assets introduced in recent Apple platforms are not supported. This keeps the tool focused but may limit applicability in some modern use cases.
From a code quality perspective, the project appears well-organized, with clear separation between the binary parsing logic and UI layers. The reverse engineering is encapsulated cleanly, which would make future extensions or maintenance easier.
how to try asset catalog tinkerer
The app can open any .car file, typically located within an application’s Resources directory on macOS or iOS app bundles.
Once a catalog is opened, users can drag individual assets out of the app window to export them as image files. Alternatively, the entire catalog or selected images can be batch exported to a directory.
This usage is summarized in the README:
The app can open any `.car` file, usually located within an app's `Resources` directory.
Once you have an asset catalog opened, you can drag individual assets out or export the entire catalog / selected images to a directory.
This simplicity means no complex setup or configuration is needed. Downloading and running the app is enough to start exploring asset catalogs immediately.
verdict
Asset Catalog Tinkerer is a niche but valuable tool for macOS developers and designers who need to inspect or extract images from compiled Apple asset catalogs. Its strength lies in reverse engineering a proprietary and undocumented binary format and packaging that capability into a native, user-friendly macOS app.
The limitations are clear: it only handles image assets, excluding newer asset types like named colors. It’s not a general asset catalog editor but a focused viewer and extractor.
For anyone working with macOS or iOS app internals, theming, or asset extraction, this tool saves time and avoids guesswork. The code quality and architecture reflect a practical, no-frills approach with attention to developer experience and macOS integration.
If you’ve ever struggled to get images out of a compiled .car file, Asset Catalog Tinkerer is worth trying out.
Related Articles
- ios-marketing-capture: in-app screenshot automation for SwiftUI iOS apps — ios-marketing-capture automates App Store screenshot generation by injecting debug code into SwiftUI apps, bypassing XCU
- Scarf: a native Swift companion app for Hermes AI with smooth multimodal input and real-time monitoring — Scarf is a Swift native macOS and iOS app that provides a GUI for the Hermes AI agent, featuring SSH connectivity, effic
- XCDocs: Local Apple Developer Documentation Search via Xcode’s Vector Database — XCDocs exposes Apple’s developer docs as a local searchable resource using Xcode’s vector database, enabling zero-mainte
- SuperCorners: Extending macOS Hot Corners with middle-edge triggers and versatile actions — SuperCorners enhances macOS Hot Corners by adding middle-edge trigger zones and a wider action set, using SwiftUI and na
- easy-ui: community-driven TypeScript web templates under MIT license — easy-ui aggregates premium-quality TypeScript web templates under MIT license, competing with paid marketplaces via comm
→ GitHub Repo: insidegui/AssetCatalogTinkerer ⭐ 2,832 · Swift