Archive for February 18, 2026

Wednesday, February 18, 2026

Apple’s .car File Format

Ordinal0 (via Hacker News):

In this post, I’ll walk through the process of reverse engineering the .car file format, explain its internal structures, and show how to parse these files programmatically. This knowledge could be useful for security research and building developer tools that does not rely on Xcode or Apple’s proprietary tools.

As part of this research, I’ve built a custom parser and compiler for .car files that doesn’t depend on any of Apple’s private frameworks or proprietary tools. To make this research practical, I’ve compiled my parser to WebAssembly so it runs entirely in your browser, so no server uploads required. You can drop any .car file into the interactive demo below to explore its content.

[…]

From the decompiled BOMStorageOpenWithSys function shown above, we can infer the overall layout of a BOM file. It begins with a fixed-size header, followed by a block index table and a variables table.

[…]

While standard BOM files store installer package manifests, .car files repurpose the container for asset storage.

Searching for Apps With Spotlight

Brent Simmons:

Spotlight has recently become terrible for launching apps after being so good for years. Now when I type something like Cal or Calendar or even Calendar.app I have to manually select the actual app in the list, if it even appears.

I’ve never used Spotlight for this on macOS (preferring LaunchBar) but have used it often with iOS. These days, I find that searching for an iOS app with Spotlight often doesn’t show the app anywhere in the results. Sometimes it will give me a Wikipedia or App Store entry even though the app is already installed on my phone. Searching with App Library does work reliably.

Versioning Your SwiftData Schema

Mohammad Azam:

We started with a simple model. Then we added a new property and transformed existing data. Then we introduced a uniqueness constraint and cleaned up duplicates before enforcing it. Each change felt small in isolation. But every one of those changes altered the structure of data already stored on disk.

[…]

SwiftData gives you the tools to do this properly. VersionedSchema gives you structure. SchemaMigrationPlan gives you control. Custom migration stages let you reshape data intentionally instead of hoping automatic migration handles everything.

It seems like they got this part of the SwiftData API right.

Previously: