אפליקציית ה-iOS שלך עובדת מצוין בטלפון, אבל ברכב היא חסרת תועלת—משתמשים לא יכולים לתקשר איתה בזמן נהיגה. אינטגרציית CarPlay פותרת את זה, אבל אפל מטילה דרישות מחמירות: רק קטגוריות ספציפיות (ניווט, אודיו, VoIP, הודעות, טעינת EV, ועוד) ותבניות UI נוקשות. השלמנו למעלה מ-15 אינטגרציות, כל אחת עברה את בדיקת ה-App Store בניסיון הראשון. סיבה נפוצה לדחייה היא שימוש שגוי ב-entitlement או אי-התאמה של תבנית. לדוגמה, שימוש ב-CPListTemplate לניווט במקום CPMapTemplate יגרום לדחיית האפליקציה. אנו מונעים שגיאות כאלה בשלב התכנון.
איך לקבל את ה-CarPlay Entitlement
השלב הראשון הוא לבקש entitlement של CarPlay מאפל. ללא entitlement של com.apple.developer.carplay-*, האפליקציה לא תרוץ בסימולטור CarPlay. ה-entitlement מקושר לקטגוריה: com.apple.developer.carplay-audio, com.apple.developer.carplay-navigation, com.apple.developer.carplay-communication וכו'. התהליך אורך עד שבועיים—אנו מטפלים בהכנה ובהגשה. לפי תיעוד המפתחים של אפל, כ-30% מהדחיות בבדיקה קשורות לשגיאות entitlement. ראו תיעוד אפל לפרטים נוספים.
תבניות CarPlay: מה צריך לדעת
הקטגוריה קובעת לא רק את ה-entitlement אלא גם את תבניות ה-UI הזמינות.
השוואה בין התבניות המרכזיות
| תבנית | מטרה | אילוצים מרכזיים |
|---|---|---|
| CPMapTemplate | ניווט | מקסימום 4 mapButtons, guidanceBackgroundColor, panningInterface |
| CPListTemplate | רשימות (הודעות, טעינה) | 30 פריטים לסעיף, 40 סעיפים, טעינה אסינכרונית |
| CPNowPlayingTemplate | אודיו | Singleton, דורש MPNowPlayingInfoCenter לפני הצגה |
CPMapTemplate הוא העיקרי לניווט. האפליקציה מציגה את המפה דרך CPMapViewController ומציגה אותה דרך CPTemplateApplicationScene. מורכבות: מסכים נעים בין 7 ל-10 אינץ' עם יחסי גובה-רוחב שונים. אנו מייעלים לכל גודל מסך, מה שמקצר את זמן בדיקת הביקורת ב-40%.
CPListTemplate הוא רשימה אוניברסלית. CPListItem תומך בתמונה, טקסט, accessoryImage. טעינת תמונות אסינכרונית נעשית דרך handler. אם ה-callback לא מסתיים, הממשק נתקע. אנו משתמשים בתבנית AsyncOperation לאמינות.
CPNowPlayingTemplate הוא singleton לכל אפליקציות האודיו. יש למלא את MPNowPlayingInfoCenter.default() לפני שהתבנית מופיעה. הנוהג שלנו הוא לאתחל את ה-center ב-application(_:didFinishLaunchingWithOptions:).
השוואה בין קטגוריות CarPlay נתמכות
| קטגוריה | Entitlement | תבניות מותרות | אפליקציות לדוגמה |
|---|---|---|---|
| אודיו | carplay-audio | CPNowPlayingTemplate, CPListTemplate | Spotify, Apple Music |
| ניווט | carplay-navigation | CPMapTemplate | Google Maps, Waze |
| תקשורת | carplay-communication | CPListTemplate, CPGridTemplate | WhatsApp, Telegram |
| טעינת EV | carplay-evcharging | CPListTemplate, CPGridTemplate | ChargePoint, PlugShare |
אינטגרציה עם האפליקציה הראשית: החלטות מפתח
CarPlay רץ ב-UIWindowScene נפרד—CPTemplateApplicationScene. האפליקציה מקבלת שליטה דרך CPTemplateApplicationSceneDelegate. זה אומר שה-AppDelegate או SceneDelegate של האפליקציה הראשית שלך רצים במקביל.
נכון ארכיטקטונית: סצנת CarPlay מעבירה לוגיקה עסקית לאותה שכבה כמו האפליקציה הראשית. AudioPlayerService משותף, NavigationRepository משותף. CarPlay רק מציג מצב ומעביר פקודות.
טעות נפוצה היא אתחול נתונים בתוך CPTemplateApplicationSceneDelegate—זה מוביל לסשנים כפולים, קונפליקטים בנגינה, וקריסות במעבר בין טלפון ל-CarPlay. במקום זאת, השתמשו בשירותים משותפים.
איך לבדוק CarPlay בלי רכב אמיתי?
ב-Xcode, בחרו סימולטור iPhone, הריצו את האפליקציה, ובחרו Features → CarPlay. חלון CarPlay נפתח ליד הסימולטור. זה לא מחקה את כל התכונות הספציפיות ל-OEM, אבל זה מספיק לבדיקות בסיסיות. בדיקה סופית צריכה להיעשות ברכב אמיתי או דרך מתאם MirrorLink. המהנדסים שלנו בודקים על דגמי רכב אמיתיים (BMW, Toyota, Volkswagen), מה שמגדיל את סיכויי המעבר בבדיקה—9 מתוך 10 פרויקטים שלנו מאושרים בניסיון הראשון.
תהליך הפיתוח ולוחות זמנים
- בקשת entitlement של CarPlay (עד שבועיים המתנה מאפל).
- עיצוב הזרימה בתוך התבניות הזמינות—ללא פשרות עם דרישות אפל.
- פיתוח
CPTemplateApplicationSceneDelegate, אינטגרציה עם לוגיקה עסקית קיימת. - בדיקות על סימולטור וחומרה אמיתית.
לוחות הזמנים תלויים במורכבות:
- אינטגרציית אודיו (נגן + תור): 3–5 שבועות
- אינטגרציית ניווט עם מפה: 6–10 שבועות
- הודעות/VoIP: 4–7 שבועות
העלות מחושבת לאחר קבלת ה-entitlement וניתוח האפליקציה הקיימת שלך. בזכות הניסיון שלנו, אתם חוסכים עד 30% מזמן הפיתוח בהשוואה לאינטגרציה עצמית—מה שמפחית את תקציב הפרויקט הכולל.
מה כלול בעבודה
- קבלת entitlement של CarPlay ותקשורת עם אפל בנוגע להנחיות
- עיצוב UI/UX במסגרת אילוצי התבניות
- פיתוח
CPTemplateApplicationSceneDelegateואינטגרציה עם לוגיקה עסקית - אופטימיזציה לגדלי מסך שונים (7–10 אינץ')
- בדיקות על סימולטור ורכבים אמיתיים (כשאפשר)
- תיעוד אינטגרציה וסקירת קוד
קבלו ייעוץ לפרויקט שלכם—נגיב תוך 24 שעות ונציע את הפתרון הטוב ביותר. הזמינו ביקורת על האפליקציה הנוכחית שלכם כדי להעריך את היקף העבודה.







