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 ファイルにコンパイルされ、アプリ バンドル内に同梱されます。 Apple は、実行時に緩い PNG、PDF、または HEIC ファイルを配信するのではなく、すべてをこの単一の構造化されたバイナリにバンドルします。

このデザインの背後にある動機は意図的であり、階層的です。コンパイラは、生のイメージ ファイルでは不可能ないくつかの最適化をビルド時に実行します。

GPU に最適化されたテクスチャ圧縮 — 画像は、CPU デコードのオーバーヘッドなしで GPU が直接使用できる ASTC や PVR などの形式に事前変換されます。

スケール ファクター スライス — @1x、@2x、@3x バリアントが保存され、ターゲット デバイスの画面密度に基づいて提供されます。

App Thinning の統合 — App Store は、ダウンロードするデバイスに関係のないアセットのバリアントを削除し、インストール サイズを大幅に削減します。

色空間管理 — アセットはタグ付けされ、必要に応じて Display P3、sRGB、または拡張色空間用に変換されます。

名前付きカラーとシンボルのサポート - SF シンボルとセマンティック カラー トークンが解決され、ラスター データと一緒に埋め込まれます。

💡 ご存知でしたか?

Mewayzは8つ以上のビジネスツールを1つのプラットフォームに統合します

CRM・請求・人事・プロジェクト・予約・eCommerce・POS・分析。永久無料プラン提供中。

無料で始める →

重要な洞察: .car 形式は単なるコンテナではなく、アクティブな最適化パイプラインです。この重労働はコンパイル時に行われるため、実行時のアセットの読み込みはほぼ瞬時になります。これが、ネイティブ Apple アプリが同等のアセットを実行する Web ベースの代替アプリよりもサクサクと感じられる主な理由です。

.car ファイルの内部構造はどのように構成されていますか?

Apple は .car バイナリ形式の公式仕様を公開したことはありませんが、コミュニティによるリバース エンジニアリングの取り組み (特に Asset Catalog Tinkerer や ThemeEngine などのプロジェクト) により、そのレイアウトがかなり詳細にマッピングされています。

トップレベルでは、.car ファイルは BOM (部品表) ファイルシステム上に構築されます。これは、Apple がインストーラー パッケージに使用するのと同じ形式です。その 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 ファイルから個々のアセットを参照、プレビュー、エクスポートできます。 acextract は、コンパイルされたカタログから緩やかなフォルダー構造を再構築するコミュニティ コマンド ライン ユーティリティです。 Xcode のツールチェーンに同梱されている Apple 独自のassetutil コマンドは、メタデータをクエリし、特定のデバイスのカタログをフィルタリングできます。ディープバイナリの場合

Build Your Business OS Today

From freelancers to agencies, Mewayz powers 138,000+ businesses with 207 integrated modules. Start free, upgrade when you grow.

Create Free Account →

Mewayzを無料で試す

CRM、請求書、プロジェクト、人事などを網羅するオールインワンプラットフォーム。クレジットカードは不要です。

今日からビジネス管理をスマートに始めましょう。

30,000+社の企業が参加しています。永久無料プラン・クレジットカード不要。

これは役に立ちましたか?共有する。

実践に移す準備はできていますか?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

無料トライアル開始 →

行動を起こす準備はできていますか?

今日からMewayz無料トライアルを開始

オールインワンビジネスプラットフォーム。クレジットカード不要。

無料で始める →

14日間無料トライアル · クレジットカード不要 · いつでもキャンセル可能