Hacker News

Глибоке занурення у формат файлів Apple .car

Глибоке занурення у формат файлів Apple .car Це дослідження глибоко заглиблюється, досліджуючи його значення та потенційний вплив. — Mewayz Business OS.

3 min read

Mewayz Team

Editorial Team

Hacker News

Глибоке занурення у формат файлу .car від Apple

Формат файлу Apple .car — скорочення від Compiled Asset Catalog Resource — це двійковий контейнер, який Apple використовує для упаковки, оптимізації та доставки активів додатків у всій своїй екосистемі платформ. Розуміння цього формату важливо для будь-якого розробника iOS, macOS, tvOS або watchOS, який хоче розробляти компактніші, швидші та краще оптимізовані програми.

Що саме таке файл .car і чому Apple його використовує?

Коли ви створюєте проект Xcode, ваш каталог Assets.xcassets компілюється компілятором каталогів активів (actool) у бінарний файл .car, який постачається у ваш пакет програм. Замість того, щоб надавати файли PNG, PDF або HEIC під час виконання, Apple об’єднує все в цей єдиний структурований двійковий файл.

Мотивація цього дизайну є навмисною та багатошаровою. Компілятор виконує кілька оптимізацій під час збирання, які були б неможливі з необробленими файлами зображень:

Стиснення текстур, оптимізоване GPU — зображення попередньо конвертуються у такі формати, як ASTC або PVR, які GPU може використовувати безпосередньо без додаткових витрат на декодування ЦП.

Нарізка масштабного коефіцієнта — варіанти @1x, @2x і @3x зберігаються та обслуговуються на основі щільності екрана цільового пристрою.

Інтеграція App Thinning — App Store видаляє варіанти ресурсів, які не мають відношення до пристрою завантаження, значно зменшуючи розмір встановлення.

Управління колірним простором — ресурси позначаються тегами та перетворюються на Display P3, sRGB або розширені колірні простори відповідно.

Підтримка іменованих кольорів і символів — SF-символи та семантичні маркери кольорів розпізнаються та вбудовуються разом із растровими даними.

Ключове розуміння: формат .car — це не просто контейнер — це активний конвеєр оптимізації. Важка робота відбувається під час компіляції, тому завантаження ресурсів під час виконання стає майже миттєвим, що є основною причиною, чому рідні програми Apple працюють швидше, ніж веб-альтернативи, які запускають еквівалентні ресурси.

Як організовано внутрішню структуру файлу .car?

💡 ВИ ЗНАЛИ?

Mewayz замінює 8+ бізнес-інструментів в одній платформі

CRM · Виставлення рахунків · HR · Проєкти · Бронювання · eCommerce · POS · Аналітика. Безкоштовний план назавжди.

Почати безкоштовно →

Apple ніколи не публікувала офіційну специфікацію двійкового формату .car, але зусилля спільноти по реверсивній інженерії — зокрема такі проекти, як Asset Catalog Tinkerer і ThemeEngine — відобразили його макет у значних деталях.

На верхньому рівні файл .car побудовано на файловій системі BOM (Bill of Materials) — той самий формат, який Apple використовує для пакетів інсталятора. У цьому дереві BOM ви знайдете кілька іменованих потоків:

Потік RENDITIONS є найбільшим і найважливішим, що містить фактичне корисне навантаження зображень і даних, проіндексоване унікальним ключем відтворення. Потік KEYFORMAT визначає схему для цих ключів, кодуючи такі атрибути, як ідіома (iPhone, iPad, Mac), масштаб, діапазон відображення та зовнішній вигляд (світлий, темний). Потоки FACETKEYSDB і FEATUREFLAGS містять метадані про названі активи та позначки можливостей відповідно. Потік EXTENDED_METADATA, доданий у новіших версіях SDK, підтримує такі речі, як локалізовані назви символів і символи змінної ширини.

Кожне корисне навантаження відтворення структуроване — воно містить заголовок, що описує розміри в пікселях, колірний простір, тип стиснення, а потім необроблені стислі дані. Для растрових зображень це можуть бути необроблені пікселі, стиснені LZFSE; для векторів PDF – вихідні байти PDF; для ресурсів даних це будь-яка двійкова крапля, яку ви зберегли.

Які інструменти можуть використовувати розробники для перевірки та вилучення вмісту .car?

Оскільки файли .car є скомпільованими двійковими файлами, ви не можете просто відкрити їх у Preview або Finder. Apple надає певну офіційну площу через приватні фреймворки, але для практичної перевірки ви зазвичай звертаєтеся до інструментів сторонніх розробників.

Asset Catalog Tinkerer (від Guilherme Rambo) — це найпоширеніший інструмент графічного інтерфейсу користувача — він дозволяє переглядати, попередньо переглядати та експортувати окремі активи з будь-якого файлу .car. acextract — це утиліта командного рядка спільноти, яка реконструює структуру папок із скомпільованого каталогу. Власна команда assetutil від Apple, яка постачається разом із ланцюжком інструментів Xcode, може запитувати метадані та фільтрувати каталоги для певних пристроїв. Для глибокої бінарної перевірки такі інструменти, як Synal

Frequently Asked Questions

Can I open a .car file without Xcode installed?

Yes. Tools like Asset Catalog Tinkerer run independently of Xcode and can open any .car file on macOS. However, Apple's command-line utilities like assetutil and actool are part of the Xcode toolchain and require at least the Xcode Command Line Tools to be installed.

Does every macOS and iOS app contain a .car file?

Any app that uses an Xcode asset catalog (.xcassets) will produce a Assets.car file in its bundle. Apps that manage all their resources manually without an asset catalog will not have one, though this is increasingly rare in modern development practice.

Is the .car format the same across iOS, macOS, tvOS, and watchOS?

The underlying BOM-based binary container and rendition structure are consistent across platforms, but each platform introduces platform-specific idiom values and rendition types. A .car compiled for watchOS will contain different idiom keys than one compiled for iPhone, though the format machinery reading those keys is the same.


Understanding the low-level infrastructure of the platforms you build on separates good developers from great ones. Whether you are shipping a consumer app or a sophisticated multi-module business platform, the details inside your compiled asset catalog have real consequences for performance, bundle size, and user experience.

If you are building or scaling a business and want a platform that takes infrastructure complexity off your plate — covering everything from CRM and e-commerce to team collaboration and analytics — explore Mewayz. With over 207 integrated business modules, 138,000 active users, and plans starting at just $19/month, Mewayz gives your team a complete operating system so you can focus on building great products instead of managing tools. Start your free trial at app.mewayz.com today.

Спробуйте Mewayz безкоштовно

Універсальна платформа для CRM, виставлення рахунків, проектів, HR та іншого. Без кредитної картки.

Почніть керувати своїм бізнесом розумніше вже сьогодні.

Приєднуйтесь до 30,000+ компаній. Безплатний тариф назавжди · Без кредитної картки.

Знайшли це корисним? Поділіться цим.

Готові застосувати це на практиці?

Приєднуйтесь до 30,000+ бізнесів, які використовують Mewayz. Безкоштовний тариф назавжди — кредитна карта не потрібна.

Почати пробний період →

Готові вжити заходів?

Почніть свій безкоштовний пробний період Mewayz сьогодні

Бізнес-платформа все в одному. Кредитна картка не потрібна.

Почати безкоштовно →

14-денний безкоштовний пробний період · Без кредитної картки · Скасуйте в будь-який час