Hacker News

Apple의 .car 파일 형식에 대한 심층 분석

Apple의 .car 파일 형식에 대한 심층 분석 이 탐구는 그 중요성과 잠재적 영향을 조사하면서 심층적으로 탐구됩니다. — Mewayz 비즈니스 OS.

1 분 읽음

Mewayz Team

Editorial Team

Hacker News

Apple의 .car 파일 형식에 대한 심층 분석

Apple의 .car 파일 형식(Compiled Asset Catalog Resource의 약어)은 Apple이 전체 플랫폼 생태계에서 앱 자산을 패키징, 최적화 및 제공하는 데 사용하는 바이너리 컨테이너입니다. 더 간결하고 빠르며 최적화된 애플리케이션을 제공하려는 iOS, macOS, tvOS 또는 watchOS 개발자에게는 이 형식을 이해하는 것이 중요합니다.

.car 파일이란 정확히 무엇이며 Apple이 이 파일을 사용하는 이유는 무엇입니까?

Xcode 프로젝트를 빌드하면 Assets.xcassets 카탈로그가 자산 카탈로그 컴파일러(actool)에 의해 앱 번들 내에 제공되는 바이너리 .car 파일로 컴파일됩니다. 런타임에 느슨한 PNG, PDF 또는 HEIC 파일을 제공하는 대신 Apple은 모든 것을 이 단일 구조화된 바이너리로 묶습니다.

이 디자인의 동기는 의도적이고 다층적입니다. 컴파일러는 빌드 시 원시 이미지 파일에서는 불가능한 여러 가지 최적화를 수행합니다.

GPU 최적화 텍스처 압축 — 이미지는 CPU 디코딩 오버헤드 없이 GPU가 직접 사용할 수 있는 ASTC 또는 PVR과 같은 형식으로 사전 변환됩니다.

배율 슬라이싱 - @1x, @2x 및 @3x 변형이 대상 장치의 화면 밀도에 따라 저장되고 제공됩니다.

App Thinning 통합 — App Store는 다운로드 장치와 관련 없는 자산 변형을 제거하여 설치 크기를 크게 줄입니다.

색 공간 관리 - 디스플레이 P3, sRGB 또는 확장 색 공간에 맞게 자산에 태그가 지정되고 변환됩니다.

명명된 색상 및 기호 지원 - SF 기호 및 의미 색상 토큰이 확인되어 래스터 데이터와 함께 포함됩니다.

💡 알고 계셨나요?

Mewayz는 8개 이상의 비즈니스 도구를 하나의 플랫폼으로 대체합니다.

CRM · 인보이싱 · HR · 프로젝트 · 예약 · eCommerce · POS · 애널리틱스. 영구 무료 플랜 이용 가능.

무료로 시작하세요 →

주요 통찰력: .car 형식은 단순한 컨테이너가 아니라 활성 최적화 파이프라인입니다. 무거운 작업은 컴파일 시간에 발생하므로 런타임 자산 로딩이 거의 즉각적으로 이루어집니다. 이는 기본 Apple 앱이 동등한 자산을 실행하는 웹 기반 대안보다 더 빠르게 느껴지는 핵심 이유입니다.

.car 파일의 내부 구조는 어떻게 구성되어 있나요?

Apple은 .car 바이너리 형식에 대한 공식 사양을 발표한 적이 없지만 커뮤니티(특히 Asset Catalog Tinkerer 및 ThemeEngine과 같은 프로젝트)의 리버스 엔지니어링 노력으로 레이아웃을 상당히 자세하게 매핑했습니다.

최상위 수준에서 .car 파일은 Apple이 설치 프로그램 패키지에 사용하는 것과 동일한 형식인 BOM(Bill of Materials) 파일 시스템에 구축됩니다. 해당 BOM 트리 내에는 다음과 같이 명명된 여러 스트림이 있습니다.

RENDITIONS 스트림은 고유한 변환 키로 색인화된 실제 이미지와 데이터 페이로드를 포함하는 가장 크고 가장 중요합니다. KEYFORMAT 스트림은 관용구(iPhone, iPad, Mac), 크기, 디스플레이 범위 및 모양(밝음, 어두움)과 같은 인코딩 속성을 포함하여 해당 키에 대한 스키마를 정의합니다. FACETKEYSDB 및 FEATUREFLAGS 스트림은 각각 명명된 자산 및 기능 플래그에 대한 메타데이터를 보유합니다. 최신 SDK 버전에 추가된 EXTENDED_METADATA 스트림은 현지화된 기호 이름 및 가변 너비 기호 등을 지원합니다.

각 변환 페이로드는 그 자체로 구조화되어 있습니다. 즉, 픽셀 크기, 색상 공간, 압축 유형, 원시 압축 데이터를 설명하는 헤더를 전달합니다. 래스터 이미지의 경우 이는 LZFSE 압축 원시 픽셀일 수 있습니다. PDF 벡터의 경우 원본 PDF 바이트입니다. 데이터 자산의 경우 저장한 바이너리 blob입니다.

개발자가 .car 콘텐츠를 검사하고 추출하는 데 사용할 수 있는 도구는 무엇입니까?

.car 파일은 컴파일된 바이너리이므로 미리보기나 Finder에서 간단히 열 수는 없습니다. Apple은 비공개 프레임워크를 통해 일부 공식 표면 영역을 제공하지만 실제 검사를 위해서는 일반적으로 타사 도구를 사용합니다.

Asset Catalog Tinkerer(Guilherme Rambo 제작)는 가장 널리 사용되는 GUI 도구로, 모든 .car 파일에서 개별 자산을 찾아보고 미리 보고 내보낼 수 있습니다. aceextract는 컴파일된 카탈로그에서 느슨한 폴더 구조를 재구성하는 커뮤니티 명령줄 유틸리티입니다. Xcode의 도구 체인과 함께 제공되는 Apple의 자체 자산 유틸리티 명령은 특정 장치에 대한 메타데이터를 쿼리하고 카탈로그를 필터링할 수 있습니다. 깊은 바이너리의 경우

Streamline Your Business with Mewayz

Mewayz brings 207 business modules into one platform — CRM, invoicing, project management, and more. Join 138,000+ users who simplified their workflow.

Start Free Today →

Mewayz 무료로 사용해보기

CRM, 인보이싱, 프로젝트, HR 등을 위한 올인원 플랫폼. 신용카드 불필요.

오늘부터 더 스마트하게 비즈니스를 관리하세요

30,000+개의 비즈니스에 합류하세요. 영구 무료 플랜 · 신용카드 불필요.

이것이 유용하다고 생각하시나요? 공유하세요.

이를 실전에 적용할 준비가 되셨나요?

Mewayz를 사용하는 30,000+개 기업과 함께하세요. 영구 무료 플랜 — 신용카드 불필요.

무료 체험 시작 →

행동할 준비가 되셨나요?

오늘 Mewayz 무료 체험 시작

올인원 비즈니스 플랫폼. 신용카드 불필요.

무료로 시작하세요 →

14일 무료 체험 · 신용카드 없음 · 언제든지 취소 가능