Developing CarPlay Integration for iOS App

TRUETECH is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
Development and support of all types of mobile applications:
Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1 servicesAll 1735 services
Developing CarPlay Integration for iOS App
Complex
~1-2 weeks
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

CarPlay Integration Development for iOS Applications

CarPlay is not a separate application. It is an extension of an existing iOS application that displays on the multimedia system screen of a car. Apple strictly limits the categories of applications that can work in CarPlay: navigation, audio, VoIP, messaging, EV charging, parking, gas stations, food and beverages (iOS 17+), and fitness (iOS 16+). Everything else gets rejected in review.

Entitlement and Category Restrictions

The first step is to request a CarPlay entitlement from Apple. Without the com.apple.developer.carplay-* entitlement, the application won't launch in the CarPlay simulator, let alone on a real car. The entitlement is tied to a category: com.apple.developer.carplay-audio, com.apple.developer.carplay-navigation, com.apple.developer.carplay-communication, etc.

The category determines not only the entitlement but also the available UI templates. Navigation uses CPMapTemplate. Audio uses CPNowPlayingTemplate + CPTabBarTemplate. Messaging supports only CPMessageListItem in CPListTemplate. You cannot draw arbitrary UI in CarPlay—only Apple-provided templates.

CarPlay Templates and Their Constraints

CPMapTemplate — for navigation. The application renders the map through CPMapViewController, but CarPlay displays it via CPTemplateApplicationScene. The complexity is that the map must work correctly at different aspect ratios—CarPlay screens range from 7" to 10" with varying aspect ratios. CPMapTemplate provides guidanceBackgroundColor, mapButtons (maximum 4), and a panningInterface for map control.

CPListTemplate — universal list. Maximum 30 items per section, maximum 40 sections. CPListItem supports images, text, detail text, and accessoryImage. Asynchronous image loading works through CPListItem.handler with a callback. If you don't return completion in listItemHandler, the interface freezes.

CPNowPlayingTemplate — singleton, shared across all audio applications. You cannot create multiple instances. MPNowPlayingInfoCenter.default() must be populated before the template appears on screen; otherwise, CarPlay shows an empty player.

Integration with the Main Application

CarPlay runs in a separate UIWindowSceneCPTemplateApplicationScene. The application gains control through CPTemplateApplicationSceneDelegate. This means the main application's AppDelegate or SceneDelegate runs in parallel.

Architecturally correct: the CarPlay scene delegates business logic to the same layer as the main application. A shared AudioPlayerService, a shared NavigationRepository. CarPlay only displays state and sends commands.

A typical mistake: initializing data inside CPTemplateApplicationSceneDelegate—this causes duplicate sessions, playback conflicts, and crashes when switching between phone and CarPlay.

Testing without a real car. Simulator → Features → CarPlay enables a CarPlay window alongside the iPhone simulator. The simulator doesn't replicate all features of a real screen (different sizes, OEM specifics), but it's sufficient for basic development. Final testing happens in a real vehicle or through a MirrorLink adapter.

Process

Request CarPlay entitlement (expect up to 2 weeks of waiting from Apple). Design the flow within available templates—without compromising Apple's requirements. Develop CPTemplateApplicationSceneDelegate and integrate with existing business logic. Test in the simulator and on real hardware.

Timeline

Audio integration (player + queue): 3–5 weeks. Navigation integration with a map: 6–10 weeks. Messaging/VoIP: 4–7 weeks. Cost is calculated after obtaining the entitlement and analyzing the existing application.