CarPlay SDK reference: templates, entitlements, scenes and key classes

Every CarPlay app needs one of six entitlements, and that choice decides its templates. iOS 27 adds a map panel system for navigation apps.

Read time
14 min
Word count
2.2K
Sections
13
FAQs
8
Share
CarPlay SDK graphic: a car dashboard screen showing CarPlay navigation, Now Playing, Calls and Apps tiles
On this page · 13 sections
  1. The core idea: templates, not pixels
  2. Entitlements: the first decision
  3. Core integration: scenes and the simulator
  4. General-purpose templates available to every category
  5. Audio: Now Playing and sports mode
  6. Navigation: the map experience
  7. Map panels: the new system in iOS 27
  8. Location and information: parking, EV charging and food ordering
  9. Communication, actions and alerts
  10. Instrument cluster
  11. A practical map: which entitlement unlocks what
  12. How eCorpIT can help
  13. References

Summary. A CarPlay app doesn't draw its own screens. It fills in Apple's templates, and CarPlay renders them on the car's display. Every CarPlay app needs one of six category entitlements from Apple: audio, communication, EV charging, navigation, parking or quick food ordering. The entitlement decides which templates you can use. Navigation apps are the one category that draws its own map, and iOS 27 gives them a new map panel system.

CarPlay isn't one API. It is a framework built around a deliberate constraint: your app supplies structured content, and the system handles touch target size, font size, font colour and highlighting for you. That constraint also makes the SDK relatively easy to map. This reference follows the way Apple's own documentation groups the framework, as of iOS 27.

About this article. This reference reflects Apple's CarPlay documentation and the iOS & iPadOS 27 release notes as checked on 30 September 2026. Apple adds templates and classes across iOS releases, so check the live documentation before you design a new integration. Researched with AI assistance and reviewed by our editorial team.

The core idea: templates, not pixels

Apple's documentation states the model plainly. You add the templates you want and customise them to suit your content, but the framework controls certain aspects of the interface elements, such as touch target size, font size, font colour and highlights. CarPlay features run only when the device supports CarPlay and is connected to a suitably equipped vehicle. When someone runs your app from their car, the system generates and hosts your app's CarPlay interface, and if the device doesn't support CarPlay, the system never tries to reach your app's CarPlay features.

Other frameworks can drive parts of the experience. Messaging apps can use SiriKit to read and send messages, VoIP apps can use CallKit to manage calls, often alongside SiriKit, and navigation apps can use MapKit.

There is one important exception to the templates-only rule. Navigation apps are the only category with access to the window CarPlay shows on the car's screen, and they use it to draw their own map. Even then, drivers never interact with that map directly. The map template sits on top of it as the control layer, with the navigation bar and map buttons.

The practical consequence: CarPlay isn't a place to port your existing iPhone UI. It is a place to describe your content in structured form and let Apple's rendering handle consistency, accessibility and the driving-safety constraints you would otherwise have to rebuild yourself.

Entitlements: the first decision

To integrate with CarPlay at all, you must request the entitlement for your app's category through Apple's CarPlay contact page and agree to the CarPlay Entitlement Addendum. Apple reviews each request against predefined criteria, and approved entitlements are added to your developer account as managed capabilities.

Entitlement key Category
com.apple.developer.carplay-audio Audio
com.apple.developer.carplay-communication Communication
com.apple.developer.carplay-charging EV charging
com.apple.developer.carplay-maps Navigation
com.apple.developer.carplay-parking Parking
com.apple.developer.carplay-quick-ordering Quick food ordering

Once approved, you enable the CarPlay capabilities on your App ID, create a new provisioning profile, and add an Entitlements.plist file whose keys match those capabilities. CarPlay reads that file to decide which parts of the framework your app may use. CarPlay apps are also subject to an extra set of App Store review guidelines.

Core integration: scenes and the simulator

Every CarPlay app is built on the same foundations, whatever templates it uses:

  • CPTemplateApplicationScene is the CarPlay scene that controls your app's user interface.
  • CPTemplateApplicationSceneDelegate receives that scene's life-cycle events.
  • CPSessionConfiguration provides vehicle properties and configuration, including limits the car imposes, such as whether a keyboard can be shown and how long lists can be, and the content style the car picks for the ambient light level.

You declare the scene in your app's scene manifest in Info.plist, under the CPTemplateApplicationSceneSessionRoleApplication role, and name your delegate class there. In the delegate, implement templateApplicationScene(_:didConnect:) and use the interface controller it provides to set your root template. Navigation apps implement templateApplicationScene(_:didConnect:to:) instead, because it also hands over the window, where you install your map-drawing view controller. Because CarPlay is scene-based, it fits naturally alongside iOS 27's UIScene requirement.

Apple also documents how to support older iOS versions, such as iOS 13 and earlier. For testing, Xcode's Simulator can open a CarPlay window: run your app in the iOS simulator and choose I/O > External Displays > CarPlay. The window is 800 x 480 pixels at @2x, and it has extra options for navigation apps. It won't show your app unless the app has the necessary entitlements, and Apple recommends testing in a vehicle or aftermarket unit too; a device with wireless CarPlay lets you debug from Xcode while it runs.

General-purpose templates available to every category

Three templates form the baseline vocabulary that apps in any CarPlay category can use:

  • CPListTemplate displays and manages a list of items.
  • CPGridTemplate displays and manages a grid of items.
  • CPTabBarTemplate is a container that presents other templates as tabs.

All of them inherit from CPTemplate, the abstract base class for every template. You don't use it directly or subclass it; you always use one of Apple's prebuilt templates. The CPBarButtonProviding protocol defines how templates supply navigation bar buttons.

These templates don't need an extra entitlement, but remember that your app still needs one of the six category entitlements before it can appear in CarPlay at all. If your CarPlay presence is simple, such as a list, a grid of choices or a tabbed structure, these may be all you need.

Audio: Now Playing and sports mode

Apple lists the audio templates as available only to apps with the audio entitlement. The centrepiece is CPNowPlayingTemplate, a shared system template. Shared means you don't create your own instance: CarPlay provides one that you configure. It displays information from MPNowPlayingInfoCenter and MPNowPlayingSession, including playback controls and the current album and artist. You push it onto your navigation hierarchy, because it can't be presented modally, and if you enable its Album-Artist and Up Next buttons you must register an observer that adopts CPNowPlayingTemplateObserver.

The Now Playing screen also has a dedicated sports layout. CPNowPlayingModeSports, added in iOS 18.4, is a layout for live or recorded playback of a sporting event with exactly two teams. Its supporting classes are:

  • CPNowPlayingSportsClock, the time elapsed in an event whose clock counts up, or the time remaining in an event or period whose clock counts down.
  • CPNowPlayingSportsEventStatus, the status of the event.
  • CPNowPlayingSportsTeam, one of the two teams.
  • CPNowPlayingSportsTeamLogo, a team's logo image or, when no image is available, its abbreviation or initialism.
  • CPSportsOverlay, added in iOS 26.4, an overlay showing left and right team information.

Apple lists these classes in the framework's general class index rather than under the audio heading. Because they describe a Now Playing layout, plan them as part of an audio app's integration. For any app streaming or replaying two-team sports content, this layout is worth knowing about before you reinvent it with generic Now Playing metadata.

Navigation: the map experience

Apple marks the navigation symbols as available only to apps with the navigation entitlement:

  • CPTemplateApplicationDashboardScene and its delegate manage your app's window on the CarPlay Dashboard, including shortcut buttons shown when no navigation session is active.
  • CPMapTemplate is the control layer over the base view where your app draws its map.
  • CPSearchTemplate lets drivers search for a destination and see a list of results.
  • CPVoiceControlTemplate shows a voice control indicator during audio input.

Around the map sits a vocabulary for guidance, which Apple groups under maneuvers and under routes, lanes and junctions:

  • CPManeuver describes a single navigation instruction, with CPManeuverState and CPManeuverType describing its states and types.
  • CPRouteInformation describes the characteristic elements of a route.
  • CPLane, CPLaneGuidance and CPLaneStatus cover lane-level guidance: a lane's characteristics, the number of lanes with instruction variants, and a lane's status or preferability.
  • CPJunctionType represents types of roadway junction.
  • CPNavigationWaypoint and CPRouteSegment, both added in iOS 26.4, represent a point of interest along a route and a segment of a route.

Map panels: the new system in iOS 27

iOS 27 adds a panel system for navigation apps, and it is easy to miss that CPMapPanel belongs to a small class family:

Base class Map subclass What it does
CPPanel CPMapPanel Common behaviour for panels shown over your content; the map panel overlays navigation information on part of your map
CPPanelButtonConfiguration CPMapPanelButtonConfiguration Common button layout; the map version adds a primary and optional secondary action button, plus travel estimates
CPPanelItem CPMapPanelItem Common behaviour for items in a panel section; the map version holds trip, route, waypoint and charging station details

You never create the base classes directly: you instantiate the map subclasses, which are currently the only subclasses Apple documents. A CPMapPanelSection, a plain NSObject subclass, groups a title with one or more items; Apple's example is a section of upcoming charging stations.

To use a panel, build a CPMapPanel from sections and a button configuration, then show it from your CPMapTemplate with showPanel(_:completion:) or pushPanel(_:completion:). CarPlay layers it over part of your map. A delegate adopting CPMapPanel.Delegate hears when the panel appears and disappears, and CarPlay updates the interface if you change the sections after showing it. Button configurations can't be changed once the panel exists. Items can show trip details, travel estimates, route choices, route costs and consumption, charging station connection details and navigation waypoints, and each can take a tap handler.

The iOS 27 release notes show why the family deserves attention. Three of the six CarPlay fixes involve it directly: the panelDidHide delegate method not being called, CPMapPanel not dismissing when the close button is tapped, and the symbol button handler of CPMapPanelButtonConfiguration not being called. A fourth fixed panel items in the navigation session's ETA tray not receiving focus. If you tested panels on an iOS 27 beta, test them again on the release. Our iOS 27 API changes checklist covers the rest of the SDK.

Location and information: parking, EV charging and food ordering

Apple marks these templates as available only to apps with the parking, EV charging or food-ordering entitlements:

  • CPPointOfInterestTemplate shows a map of selectable points of interest, with a scrollable picker and a detail card for the selected place. Its delegate hears about changes to the visible map region, so you can update the points shown.
  • CPInformationTemplate shows information about a point of interest, food order, parking location or charging location, as a list of items with up to three actions.
  • CPTextButton is the stylised title button those actions use.

Apple also publishes a dedicated guide to integrating CarPlay with quick-ordering apps.

iOS 27 also adds two classes whose names suggest charging and multi-stop trips: CPChargingStationConnection and CPMultiStopCardConfiguration. Apple currently lists both in the framework's general class index without any description, so don't assume which entitlement they belong to until Apple documents them. The one related clue is that map panel items can show charging station connection details. If you are building in this space, our EV charging app development team works on charging apps.

Communication, actions and alerts

CPContactTemplate is listed as available only to apps with the communication entitlement. It shows information about a person or business, with up to four contextual actions, and CarPlay provides ready-made buttons for common ones, such as calling or messaging. You can push it or present it modally. For the calls and messages themselves, communication apps can use CallKit and SiriKit.

Apple lists CPActionSheetTemplate (a modal action sheet), CPAlertTemplate (a modal alert) and CPAlertAction (a single action on either) in a separate actions and alerts group, not tied to one category.

Instrument cluster

The instrument cluster is the display in front of the driver, separate from the main CarPlay screen. The framework has four symbols for it, all added in iOS 15.4: CPInstrumentClusterController, CPInstrumentClusterControllerDelegate, CPTemplateApplicationInstrumentClusterScene and CPTemplateApplicationInstrumentClusterSceneDelegate. Apple's pages for these symbols currently have no descriptions, so treat instrument cluster support as its own scene and its own research task, separate from your main CarPlay integration.

A practical map: which entitlement unlocks what

Entitlement What it unlocks
Any of the six CPListTemplate, CPGridTemplate, CPTabBarTemplate, CPActionSheetTemplate, CPAlertTemplate
Audio CPNowPlayingTemplate, plus the sports mode classes that shape its layout
Navigation The window for drawing your map, CPMapTemplate, CPSearchTemplate, CPVoiceControlTemplate, the dashboard scene, guidance types and iOS 27 map panels
Parking, EV charging, quick food ordering CPPointOfInterestTemplate, CPInformationTemplate, CPTextButton
Communication CPContactTemplate

Two caveats apply. Apple ties map panels to navigation apps through the map template rather than listing them under an entitlement, and it hasn't said which category CPChargingStationConnection and CPMultiStopCardConfiguration belong to, so the table leaves them out.

The most useful way to read the whole framework is entitlement-first. Decide what your app fundamentally does, whether that is playing audio, navigating, parking, charging, ordering food or communicating, and that decision sets which templates you can use. Everything else, from lane guidance to the panel base classes, supports one of those flows in more depth.

How eCorpIT can help

eCorpIT is a Gurugram-based technology organisation, founded in 2021, assessed at CMMI Level 5 and MSME certified, with senior-led engineering teams working across AWS, Microsoft and Google platforms. Our iOS app development team in India helps you prepare the CarPlay entitlement request for your category, set up the CarPlay scene and templates, and build navigation features such as the new iOS 27 map panels, with testing planned for both the Simulator's CarPlay window and a real vehicle or aftermarket unit, as Apple recommends. If you need more capacity for a CarPlay project, you can hire iOS developers from our team. Talk to us at /contact-us/.

Last updated: 30 September 2026.

References

  1. CarPlay — Apple Developer Documentation
  1. Requesting CarPlay Entitlements — Apple Developer Documentation
  1. Displaying Content in CarPlay — Apple Developer Documentation
  1. Using the CarPlay Simulator — Apple Developer Documentation
  1. CPMapTemplate — Apple Developer Documentation
  1. CPNowPlayingTemplate — Apple Developer Documentation
  1. CPNowPlayingModeSports — Apple Developer Documentation
  1. CPMapPanel — Apple Developer Documentation
  1. CPPanel — Apple Developer Documentation
  1. CPMapPanelItem — Apple Developer Documentation
  1. CPInformationTemplate — Apple Developer Documentation
  1. CPContactTemplate — Apple Developer Documentation
  1. CPSessionConfiguration — Apple Developer Documentation
  1. CPTemplateApplicationDashboardScene — Apple Developer Documentation
  1. iOS & iPadOS 27 Release Notes — Apple Developer
  1. CPTemplate — Apple Developer Documentation
  1. CPMapPanelButtonConfiguration — Apple Developer Documentation
  1. CPPointOfInterestTemplate — Apple Developer Documentation
  1. CPNowPlayingSportsClock — Apple Developer Documentation
  1. CPMapPanelSection — Apple Developer Documentation

Frequently asked

Quick answers.

01 Can I draw custom UI in CarPlay instead of using templates?
Mostly no. CarPlay renders templates you fill with content, and the framework controls touch target size, fonts, colours and highlighting. The exception is navigation apps, which draw their own map in a window CarPlay provides. Even there, drivers interact only through the map template layered on top, never with the map view directly.
02 Which templates can every CarPlay app use?
Apps in any category can use CPListTemplate, CPGridTemplate and CPTabBarTemplate, along with CPActionSheetTemplate and CPAlertTemplate. CPTemplate is the abstract base class and isn't used directly. None of these need an extra entitlement, but your app still needs one of the six CarPlay category entitlements before it appears in CarPlay at all.
03 What's the difference between CPMapPanel and CPPanel?
CPPanel is a base class, added in iOS 27, that defines common behaviour for panels shown over your content. You never create it directly. CPMapPanel is its only documented subclass: a navigation overlay you show from CPMapTemplate. CPPanelButtonConfiguration and CPPanelItem are the matching base classes for panel buttons and items.
04 What is CarPlay's sports mode?
It is a Now Playing layout, CPNowPlayingModeSports, added in iOS 18.4 for live or recorded sporting events with exactly two teams. Supporting classes cover the clock, which can count up or down, the event status, each team and its logo, and CPSportsOverlay adds left and right team information from iOS 26.4.
05 Is the instrument cluster a separate integration from the main CarPlay screen?
Yes. It has its own scene type, CPTemplateApplicationInstrumentClusterScene, its own scene delegate and its own controller, CPInstrumentClusterController, all added in iOS 15.4. They are separate from CPTemplateApplicationScene, which runs the main CarPlay display. Apple's pages for these symbols currently carry no descriptions, so research them before committing to cluster support.
06 Do EV-charging apps use the same templates as parking or food-ordering apps?
Yes, for the core templates. All three categories use CPPointOfInterestTemplate, CPInformationTemplate and CPTextButton. iOS 27 also adds CPChargingStationConnection and CPMultiStopCardConfiguration, but Apple hasn't documented them or said which entitlement they belong to, so don't design around them yet. Map panel items can show charging station connection details.
07 What's the dashboard scene, and how is it different from the main CarPlay scene?
CPTemplateApplicationDashboardScene manages a navigation app's window on the CarPlay Dashboard, including shortcut buttons shown when no navigation session is active. It is separate from CPTemplateApplicationScene, which runs your app's main CarPlay interface. You don't create it yourself; you declare it in your scene configuration, and only navigation apps can use it.
08 Where should I start if I'm building CarPlay support for the first time?
Request the entitlement for your app's category and wait for approval, because the Simulator won't show your app without it. Then read Displaying Content in CarPlay for the scene setup, choose templates from your category, and test in the Simulator's CarPlay window before trying a real vehicle or aftermarket unit.

About the author

Aman Mathur

Software Engineer | Flutter

Software Engineer with 3+ years building high-performance, AI-powered cross-platform mobile apps for global clients.

Subscribe

One engineering note a week. No fluff, no spam.

Senior-architect playbooks on AI agents, mobile apps, cloud, security, data, and marketing — delivered every Wednesday.

Past the reading

Read enough. Let's build something.

A senior architect responds in 24 working hours with scope, indicative cost, and a timeline. NDA before any technical conversation.