Hacker News

צלילה עמוקה לתוך פורמט הקובץ .car של אפל

צלילה עמוקה לתוך פורמט הקובץ .car של אפל חקר זה מעמיק, בוחן את המשמעות וההשפעה הפוטנציאלית שלו. - מערכת הפעלה Mewayz Business.

3 דקות קריאה

Mewayz Team

Editorial Team

Hacker News

צלילה עמוקה לתוך פורמט הקובץ .car של אפל

פורמט הקובץ .car של אפל - קיצור של Compiled Asset Catalog Resource - הוא המיכל הבינארי שבו משתמשת אפל לאריזה, אופטימיזציה ואספקת נכסי אפליקציה על פני כל הפלטפורמות האקולוגיות שלה. הבנת הפורמט הזה חשובה לכל מפתח iOS, macOS, tvOS או watchOS שרוצה לשלוח יישומים רזים יותר, מהירים יותר ומותאמים יותר.

מהו בדיוק קובץ .car ומדוע אפל משתמשת בו?

כאשר אתה בונה פרויקט Xcode, הקטלוג Assets.xcassets שלך נערך על ידי מהדר קטלוג הנכסים (actool) לקובץ בינארי .car הנשלח בתוך ה-App Bundle שלך. במקום לספק קבצי PNG, PDF או HEIC רופפים בזמן ריצה, אפל מאגדת הכל לתוך בינארי יחיד ומובנה זה.

המניעים מאחורי עיצוב זה הם מכוונים ומרובדים. המהדר מבצע כמה אופטימיזציות בזמן הבנייה שיהיו בלתי אפשריים עם קבצי תמונה גולמיים:

דחיסת טקסטורה מותאמת ל-GPU - תמונות מומרות מראש לפורמטים כמו ASTC או PVR שה-GPU יכול לצרוך ישירות ללא תקורה של פענוח מעבד.

חיתוך גורם קנה מידה - גרסאות @1x, @2x ו-@3x מאוחסנות ומוגשות על סמך צפיפות המסך של מכשיר היעד.

אינטגרציה של דילול אפליקציות - ה-App Store מוציאה גרסאות של נכסים שאינם רלוונטיים למכשיר המוריד, ומקטינה את גודל ההתקנה באופן משמעותי.

ניהול מרחב צבע - נכסים מתויגים ומומרים עבור Display P3, sRGB או מרחבי צבע מורחבים לפי הצורך.

תמיכת צבעים וסמלים בעלי שם - סמלי SF ואסימוני צבע סמנטיים נפתרים ומוטבעים לצד נתוני רסטר.

תובנה מרכזית: פורמט ה-.car אינו רק קונטיינר - הוא צינור אופטימיזציה פעיל. ההרמה הכבדה מתרחשת בזמן הקומפילציה, כך שטעינת הנכסים בזמן הריצה הופכת כמעט מיידית, וזו הסיבה העיקרית לכך שאפליקציות מקוריות של אפל מרגישות יותר קלות מאשר חלופות מבוססות אינטרנט המפעילות נכסים מקבילים.

כיצד מאורגן המבנה הפנימי של קובץ .car?

💡 הידעת?

Mewayz מחליפה 8+ כלים עסקיים בפלטפורמה אחת

CRM · חיוב · משאבי אנוש · פרויקטים · הזמנות · מסחר אלקטרוני · קופה · אנליטיקה. תוכנית חינם לתמיד זמינה.

התחל בחינם →

אפל מעולם לא פרסמה מפרט רשמי לפורמט הבינארי .car, אבל מאמצי הנדסה הפוכה של הקהילה - בעיקר פרויקטים כמו Asset Catalog Tinkerer ו-ThemeEngine - מיפו את הפריסה שלו בפירוט רב.

ברמה העליונה, קובץ .car בנוי על מערכת קבצים BOM (Bill of Materials) - אותו פורמט שבו משתמשת אפל עבור חבילות התקנה. בתוך עץ BOM זה, תמצאו מספר זרמים בעלי שם:

זרם ה-RENDITIONS הוא הגדול והחשוב ביותר, המכיל את מטעני התמונות והנתונים בפועל שנוספו על ידי מפתח עיבוד ייחודי. זרם KEYFORMAT מגדיר את הסכימה עבור המפתחות הללו, תכונות קידוד כמו ניב (iPhone, iPad, Mac), קנה מידה, סולם תצוגה ומראה (בהיר, כהה). הזרמים FACETKEYSDB ו-FEATUREFLAGS מכילים מטא נתונים לגבי נכסים בעלי שם ודגלי יכולת בהתאמה. זרם EXTENDED_METADATA, שנוסף בגרסאות SDK עדכניות יותר, תומך בדברים כמו שמות סמלים מקומיים וסמלים ברוחב משתנה.

כל מטען עיבוד מובנה בעצמו - הוא נושא כותרת המתארת ​​את ממדי הפיקסלים, מרחב הצבע, סוג הדחיסה ולאחר מכן את הנתונים הדחוסים הגולמיים. עבור תמונות רסטר זה עשוי להיות פיקסלים גולמיים דחוסים של LZFSE; עבור וקטורים של PDF מדובר בתאי PDF המקוריים; עבור נכסי נתונים זה כל בלוק בינארי ששמרת.

באילו כלים מפתחים יכולים להשתמש כדי לבדוק ולחלץ את תוכן המכונית?

מכיוון שקובצי .car הם קבצים בינאריים מהודרים, אינך יכול פשוט לפתוח אותם בתצוגה מקדימה או ב-Finder. אפל מספקת שטח פנים רשמי כלשהו באמצעות מסגרות פרטיות, אך לצורך בדיקה מעשית אתה בדרך כלל מגיע לכלי צד שלישי.

קטלוג נכסים Tinkerer (מאת Guilherme Rambo) הוא כלי ה-GUI הנפוץ ביותר - הוא מאפשר לך לדפדף, להציג תצוגה מקדימה ולייצא נכסים בודדים מכל קובץ .car. acextract הוא כלי שורת פקודה של הקהילה המשחזר מבנה תיקיות רופף מקטלוג הידור. פקודת assetutil של אפל עצמה, הנשלחת עם שרשרת הכלים של 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, חשבוניות, פרויקטים, משאבי אנוש ועוד. אין צורך בכרטיס אשראי.

התחילו לנהל את העסק שלכם בצורה חכמה יותר היום

הצטרפו ל-30,000+ עסקים. תוכנית חינם לתמיד · אין צורך בכרטיס אשראי.

מצאתם את זה שימושי? שתף אותו.

מוכנים ליישם את זה בפועל?

הצטרפו ל-30,000+ עסקים שמשתמשים ב-Mewayz. תוכנית חינם לתמיד — אין צורך בכרטיס אשראי.

Start Free Trial →

Ready to take action?

התחל את ניסיון החינם של Mewayz היום

פלטפורמה עסקית All-in-one. אין צורך בכרטיס אשראי.

התחל בחינם →

14 ימי ניסיון חינם · ללא כרטיס אשראי · ביטול בכל עת