Adopt the CarPlay framework to enable your app on a driver's screen, whether the car supports CarPlay or CarPlay Ultra.

Documentation

Posts under CarPlay subtopic

Post

Replies

Boosts

Views

Activity

TabBar icons not displayed
Working on a CarPlay app (Driving App) and despite setting tab bar icons, they don’t display in either the simulator or two physical devices (one no older than 2024 and with a very large screen), I only see the textual description/name of the tab. Am I missing something ?
1
0
408
Aug ’26
CarPlay: Is vehicle microphone capture without entering communications audio mode supported for third-party apps?
Hello, I am developing a native CarPlay application and would appreciate some clarification regarding AVAudioSession behaviour when using the vehicle microphone. The application is intentionally simple and designed to minimise driver distraction. The user presses a single button on the CarPlay screen, the application performs a brief (approximately five second) audio capture, performs application-specific processing on the captured audio, displays a simple confirmation to the user, and immediately releases the audio session. The goal is to allow the driver to continue their journey with as little interaction as possible. Because the audio being captured is often originating from the vehicle’s native DAB/FM radio rather than from the iPhone itself, preserving the existing listening experience during the brief capture is fundamental to the intended design. To better understand what is supported by CarPlay, I have carried out a number of controlled experiments. Test Environment Native CarPlay application Swift AVFoundation AVAudioSession AVAudioRecorder Vehicle connected via CarPlay Vehicle playing its native DAB radio Experiment 1 Configuration Category: AVAudioSession.Category.playAndRecord Mode: AVAudioSession.Mode.default Observed Route Input: CarPlay — CarAudio Output: CarPlay — CarAudio Result Recording succeeds using the vehicle microphone. Native DAB audio is muted during recording. The vehicle changes from “Audio Volume” to “Voice Volume”. When recording finishes and the AVAudioSession is deactivated, DAB resumes normally. Experiment 2 Changed only the session mode to: AVAudioSession.Mode.measurement Result Behaviour was identical to Experiment 1. Experiment 3 Changed only the session mode to: AVAudioSession.Mode.videoRecording Observed Route Input: iPhone microphone Output: CarPlay — CarAudio Result Input automatically switched from the vehicle microphone to the iPhone microphone. The vehicle remained in normal “Audio Volume”. However, the head unit switched away from its native DAB source to the CarPlay media source. Observation These experiments appear to suggest that the behaviour is specifically related to using the CarPlay “CarAudio” microphone route, rather than audio recording itself. Question Is this the expected behaviour for third-party CarPlay applications? More specifically: Is there any supported AVAudioSession configuration or CarPlay API that allows a third-party CarPlay application to perform a brief, user-initiated audio capture using the vehicle microphone without causing the head unit to enter its communications/voice audio mode or interrupt the vehicle’s native radio playback? If this behaviour is by design and no supported mechanism exists to achieve this, confirmation of that would be extremely valuable, as it would allow us to design the application accordingly. If additional information, sample code, AVAudioSession logs or detailed reproduction steps would be helpful, I would be more than happy to provide them. Thank you very much for your time. Kind regards, Neil Jenner Developer, HearSave
7
0
1.9k
Jul ’26
CarPlay Dashboard navigation scene only appears after starting route guidance
Hi, I’m developing a CarPlay navigation app using the CarPlay Maps/Navigation entitlement. The app works correctly as a full CarPlay navigation app: The main CarPlay scene connects. The app displays a map template. Free-drive / map-following mode works in the full CarPlay app. Turn-by-turn navigation works. The Dashboard navigation scene works during active route guidance. The issue is with the CarPlay Dashboard/home screen behavior. Other navigation apps such as Waze or ABRP can appear automatically in the CarPlay Dashboard navigation widget when CarPlay starts, even when no active route guidance is running. My app’s Dashboard navigation scene only appears once route guidance has started. When no route guidance is active, the CarPlay Dashboard does not show my app as the navigation widget provider. My questions are: Is there any additional public API, entitlement, plist key, or runtime state required for a navigation app to be selected by CarPlay as the Dashboard navigation provider at CarPlay startup? Is the Dashboard navigation widget expected to launch the last-used third-party navigation app automatically, even when there is no active navigation session? Does an app need to keep some kind of navigation session, navigation metadata, free-drive state, or passive navigation session active for CarPlay to treat it as eligible for the Dashboard widget? Are there differences in this behavior between development builds installed via Xcode and TestFlight/App Store builds? Is the Dashboard navigation scene supposed to be created only during active route guidance, or can CarPlay create it for a free-drive/map-following state with no route? The relevant behavior I’m seeing is: The app works as a full CarPlay navigation app. The Dashboard scene is declared in the app configuration. The app is signed with the CarPlay Maps entitlement. The Dashboard scene appears during route guidance. Without active route guidance, CarPlay Dashboard falls back to another navigation app instead of showing my app’s free-drive map. Any clarification on the expected lifecycle and eligibility rules for third-party navigation apps in the CarPlay Dashboard would be appreciated.
3
0
790
Jul ’26
Wireless CarPlay pairing flow — carkitd exits before [connect CarPlay] on initial pairing (iOS26.5 / 23F77)
We are investigating a wireless CarPlay connection failure between our vehicle headunit and iPhone, and have identified a suspicious pattern in the carkitd pairing flow through analysis of iPhone sysdiagnose logs. As we have been unable to fully interpret certain behaviors on our own, we would greatly appreciate any guidance or clarification Apple could provide. The original sysdiagnose log file is available upon request. Failure case — UTC 07:14 07:14:25 [carkitd] Transitioning: [started] → [Bluetooth confirmation] 07:14:26 [carkitd] Transitioning: [Bluetooth confirmation] → [Bluetooth contacts sync] 07:14:27 [carkitd] Transitioning: [Bluetooth contacts sync] → [waiting on messaging connection] 07:14:32 [carkitd] Consolidated ... CARiAPAuthComplete payload for event type 5 07:14:32 [accessoryd] sending EAAccessoryArrived to carkitd for accessory: Ioniq5566 07:14:32 [carkitd] updated partial session (null) (hasAccessory = NO) * CARCarKitWirelessPairingCreatedEvent not observed * [connect CarPlay] not entered 07:14:57 [carkitd] Transitioning: [waiting on messaging connection] → [dismiss/finished] ← Terminates ~25 sec later without sending CarPlayAvailability Success case (Ioniq5) — UTC 07:12 (same sysdiagnose file, same iPhone) 07:12:05 [carkitd] Transitioning: [Bluetooth contacts sync] → [waiting on messaging connection] 07:12:12 [carkitd] CARCarKitWirelessPairingCreatedEvent received 07:12:14 [carkitd] Transitioning: [waiting on messaging connection] → [connect CarPlay] 07:12:18 [carkitd] sending CarPlayAvailability {wireless: YES BT: <private>} ← Wireless CarPlay established successfully The only observable difference between the two cases is whether CARCarKitWirelessPairingCreatedEvent occurs. Could you help us understand what conditions prevent this event from being generated, and whether there is a fallback path into [connect CarPlay] when it is absent? Any insight would be greatly appreciated. Thank you for your time.
0
0
983
Jul ’26
CarPlay Video Playback on iOS 27: Beta SDK, App Review Timing, and Parked-State Requirements
Consultation on CarPlay Video Playback Review Requirements for iOS 27 Hello Apple Developer Forums team, Our app has been approved for the CarPlay Video entitlement, and we are preparing to implement video playback for CarPlay while the vehicle is parked. I would like to confirm several points before development and submission: Can we develop this feature using the current Xcode beta and iOS 27 beta SDK? If the feature is completed using the beta SDK, can the app be submitted to App Review now, or must we wait until the official public release of iOS 27 and the final Xcode version? For CarPlay parked video playback, does App Review require the app to implement or demonstrate its own P-gear / parked-state safety lock logic, or is this restriction handled by the CarPlay system and vehicle? Is a car infotainment system update required for CarPlay Video Playback support, or is support determined by the iPhone iOS version and the connected CarPlay system’s capabilities, such as supportsVideoPlayback? We understand that final App Review decisions are made during review, but we would appreciate any official guidance or documentation references regarding the correct implementation and submission timing. Thank you.
2
0
1.1k
Jul ’26
CarPlay Communication app not appearing on the CarPlay dashboard — is SiriKit messaging support required for registration?
I have an iOS 17+ app (SwiftUI lifecycle, @UIApplicationDelegateAdaptor) with the granted com.apple.developer.carplay-communication entitlement. It's a voice-message app for family (leave/listen to short audio messages). The app does not appear in Settings → General → CarPlay, nor on the CarPlay Home grid, on a real head unit — across multiple TestFlight builds and full phone reboots. The iPhone app itself launches fine. Verified: The App Store distribution provisioning profile carries com.apple.developer.carplay-communication. The build is signed with that entitlement. Info.plist declares a CPTemplateApplicationSceneSessionRoleApplication scene with UISceneClassName = CPTemplateApplicationScene, a UISceneConfigurationName, and UISceneDelegateClassName pointing to a CPTemplateApplicationSceneDelegate. The delegate synchronously sets a root CPListTemplate in templateApplicationScene(_:didConnect:). My questions: Does a CarPlay Communication app require SiriKit messaging support (INSendMessageIntent, INSearchForMessagesIntent, INSetMessageAttributeIntent, the Siri entitlement, NSSiriUsageDescription, INIntentsSupported) in order to be registered/shown on the CarPlay dashboard? My app currently uses custom CPListTemplate rows with a direct audio recorder and no SiriKit intents. How can I confirm whether the App Store / TestFlight–re-signed build actually carries the carplay-communication entitlement at runtime? For an audio-message app that must never transcribe audio, is INOutgoingMessageType.outgoingMessageAudio the correct approach, and should playback use the SiriKit read flow rather than CPNowPlayingTemplate (which appears to require the Audio entitlement)?
0
0
934
Jul ’26
CarPlay Entitlements for navigation
Bonjour, Je viens ici afin d'exposer mon problème en espérant trouver une solution. En Août 2025 j'ai publié une demande afin de pouvoir développer une application Carplay de type navigation. Ma demande n'a jamais été traitée, j'ai soumis une autre demande en février, puis en avril. Toujours sans réponse. Depuis environ 3 semaines, j'appelle Apple toutes les semaines afin de demander à ce que ma demande soit traitée. J'ai bien évidemment une réponse m'indiquant que la demande était remontée, mais sans retour par la suite. Je commence à sérieusement perdre patience, et ne trouve aucune solution. Quelles seraient vos propositions ? Merci par avance pour vos retours
1
0
1.4k
Jun ’26
Scrolling Behavior for Section Headers
When using the new list section headers that include an image, title, subtitle, and action button (e.g., on playlist entity pages), the header remains fixed while the underlying content scrolls. This results in visual overlap between the header and list items, creating readability issues that can appear visually broken during interaction. Is this a known issue, and is there a workaround or fix planned?
1
0
1.1k
Jun ’26
Video Now Playing View Configuration
I have questions about how the Video Now Playing experience for music apps is configured and what controls are available: Subtitles / Closed Captions — Does the Video NPV support subtitle or closed caption selection? Playback Speed — Is playback speed control surfaced in the CarPlay Video NPV UI? Playback Controls — Beyond play/pause and seek, what controls are available on the Video NPV? Fallback Behavior — When CPSessionConfiguration.supportsVideoPlayback becomes false mid-session (e.g., vehicle starts moving), how does the transition from video to audio-only Now Playing work? Is there a delegate callback, or should we observe supportsVideoPlayback via KVO? Configuration Scope — Is the video playback surface fully driven by AirPlay streaming + CPPlaybackConfiguration, or are there additional configuration points we should be aware of for controlling the video NPV experience?
1
0
1.2k
Jun ’26
Simulator and automatization
I'm looking for options concerning this matter, aiming to have automatized tests in a navigation app. I wasn't able to control either the iOS simulator's extended display nor the CarPlay Simulator (additional tools) via available CLI commands. I couldn’t scan for AX elements either. Closest thing I found is to control the macOS window, take screenshots and simulate user gestures using an agentic workflow. May I have missed something regarding already available tooling?
1
0
1.1k
Jun ’26
Up Next Button Visibility Not Updating Dynamically
The CPNowPlayingTemplate.upNextButtonEnabled property does not consistently hide the Up Next (queue) button when set to false at runtime. We can reproduce this reliably: Start playback of a playlist (queue is available, upNextButtonEnabled = true). Switch to AI DJ playback (queue is not applicable, set upNextButtonEnabled = false). The Up Next button remains visible on the Now Playing screen. The button only disappears after the user navigates away from and back to the Now Playing view. This appears to be a state refresh issue where the template does not re-render when the property is toggled during an active session. Is this a known issue? Is there a recommended workaround to force the Now Playing template to refresh its button visibility without requiring the user to navigate away? Should we be using a different mechanism to dynamically control the visibility of the Up Next button based on playback context?
1
0
1k
Jun ’26
Allow CallKit-logged calls to be called back as native PSTN calls from Recents and CarPlay
We build a call-screening app for VoIP-forwarded calls. Inbound calls are forwarded to our service, screened, and surfaced to the user via CallKit (reportNewIncomingCall) with includesCallsInRecents = true and a CXHandle(type: .phoneNumber, …) carrying the real caller number. Because the call is forwarded at the network before it reaches the handset, the user's native carrier call log never records it — CallKit is the only way the call appears in Recents. The gap: When the user taps "call back" on one of these entries (in the native Phone app or in CarPlay), iOS delivers an INStartCallIntent to our app. Our app's only way to then place a normal cellular/PSTN call is to open a tel: URL, which requires the app to be foregrounded. On the phone this works (with an app launch + the system "Call?" confirmation). On CarPlay it cannot work at all, because CarPlay does not foreground third-party apps or open tel: URLs, and there is no API to initiate a PSTN/cellular call from the background. There is currently no way for an app-logged (CallKit) call to be called back as a native PSTN call — the callback is always routed back into the app, and the app has no sanctioned PSTN-dial path on CarPlay. Requested enhancement (any of these would solve it): A way to mark a CallKit-logged call (e.g., a flag on CXProviderConfiguration or per-call on the handle) such that calling it back from Recents/CarPlay dials the cellular line directly (treating it like a native carrier-logged number), instead of routing INStartCallIntent to the app; or An API to write a call to Recents as a native, PSTN-dialable entry associated with the cellular line; or A sanctioned way, when handling the callback INStartCallIntent on CarPlay, for the app to request a PSTN cellular callback (with the standard user confirmation) rather than only a VoIP call. Why existing APIs don't suffice: CXHandle(type: .phoneNumber) + includesCallsInRecents correctly display the number, and INStartCallIntent correctly delivers the callback — but the callback can only become a VoIP call (via CXStartCallAction) or an app-foregrounded tel: open. Neither yields a native PSTN call on CarPlay. Routing the callback through VoIP is not viable for us: it would present our trunk's caller ID (or require per-user STIR/SHAKEN caller-ID verification), so the user's own number would not appear to the person they call back. User impact (safety & accessibility): Our users skew older (55–65) and rely on the app to screen scam/spam calls. A user driving with CarPlay currently cannot safely return a legitimate screened call — they must pick up the phone, wait for the app to open, and tap a confirmation. This defeats the hands-free safety purpose of CarPlay for exactly the population most exposed to phone scams. For comparison: On Android, a self-managed ConnectionService with EXTRA_LOG_SELF_MANAGED_CALLS lets a screened call appear in the system dialer and be carrier-dialed back with a single tap from Android Auto, no app launch and no confirmation — preserving the user's own caller ID natively. iOS has no equivalent for app-logged calls. Steps to reproduce (current behavior): App reports an incoming call via CallKit with includesCallsInRecents = true and a .phoneNumber handle. End the call so it lands in Recents. In CarPlay, open Recents and tap the entry to call back. Observed: the callback is delivered to the app as INStartCallIntent; the only PSTN path (tel:) cannot open on CarPlay, so no call is placed. Expected: a native PSTN/cellular callback (one confirmation at most), as with a carrier-logged number. Wondering...can this be considered for a future update?
1
0
1k
Jun ’26
CarPlay Video Support
I was looking into testing the new video playback feature but see that some cars doesn't show it. Will it be a future update that pushes support for all vehicles or will it be up to the manufacture
2
0
923
Jun ’26
Custom Toolbar Items
Why can't you include a custom toolbar item on the parent view of a Tab? I got around this by inserting a bespoke item at the top of my list template to represent the action that would have gone in the toolbar item, and then on all subsequent child views I display the toolbar item as intended. This works, but it feels a little clunky. Any guidance here? Thanks!
2
0
893
Jun ’26
New CarPlay entitlement categories?
Are there plans to ever open up any more categories of apps in CarPlay? In particular, while Calendar.app is allowed in CarPlay, there is no accepted category that a third party calendar app could fall under to have the ability to do the same thing?
1
0
884
Jun ’26
TabBar icons not displayed
Working on a CarPlay app (Driving App) and despite setting tab bar icons, they don’t display in either the simulator or two physical devices (one no older than 2024 and with a very large screen), I only see the textual description/name of the tab. Am I missing something ?
Replies
1
Boosts
0
Views
408
Activity
Aug ’26
CarPlay: Is vehicle microphone capture without entering communications audio mode supported for third-party apps?
Hello, I am developing a native CarPlay application and would appreciate some clarification regarding AVAudioSession behaviour when using the vehicle microphone. The application is intentionally simple and designed to minimise driver distraction. The user presses a single button on the CarPlay screen, the application performs a brief (approximately five second) audio capture, performs application-specific processing on the captured audio, displays a simple confirmation to the user, and immediately releases the audio session. The goal is to allow the driver to continue their journey with as little interaction as possible. Because the audio being captured is often originating from the vehicle’s native DAB/FM radio rather than from the iPhone itself, preserving the existing listening experience during the brief capture is fundamental to the intended design. To better understand what is supported by CarPlay, I have carried out a number of controlled experiments. Test Environment Native CarPlay application Swift AVFoundation AVAudioSession AVAudioRecorder Vehicle connected via CarPlay Vehicle playing its native DAB radio Experiment 1 Configuration Category: AVAudioSession.Category.playAndRecord Mode: AVAudioSession.Mode.default Observed Route Input: CarPlay — CarAudio Output: CarPlay — CarAudio Result Recording succeeds using the vehicle microphone. Native DAB audio is muted during recording. The vehicle changes from “Audio Volume” to “Voice Volume”. When recording finishes and the AVAudioSession is deactivated, DAB resumes normally. Experiment 2 Changed only the session mode to: AVAudioSession.Mode.measurement Result Behaviour was identical to Experiment 1. Experiment 3 Changed only the session mode to: AVAudioSession.Mode.videoRecording Observed Route Input: iPhone microphone Output: CarPlay — CarAudio Result Input automatically switched from the vehicle microphone to the iPhone microphone. The vehicle remained in normal “Audio Volume”. However, the head unit switched away from its native DAB source to the CarPlay media source. Observation These experiments appear to suggest that the behaviour is specifically related to using the CarPlay “CarAudio” microphone route, rather than audio recording itself. Question Is this the expected behaviour for third-party CarPlay applications? More specifically: Is there any supported AVAudioSession configuration or CarPlay API that allows a third-party CarPlay application to perform a brief, user-initiated audio capture using the vehicle microphone without causing the head unit to enter its communications/voice audio mode or interrupt the vehicle’s native radio playback? If this behaviour is by design and no supported mechanism exists to achieve this, confirmation of that would be extremely valuable, as it would allow us to design the application accordingly. If additional information, sample code, AVAudioSession logs or detailed reproduction steps would be helpful, I would be more than happy to provide them. Thank you very much for your time. Kind regards, Neil Jenner Developer, HearSave
Replies
7
Boosts
0
Views
1.9k
Activity
Jul ’26
CarPlay Dashboard navigation scene only appears after starting route guidance
Hi, I’m developing a CarPlay navigation app using the CarPlay Maps/Navigation entitlement. The app works correctly as a full CarPlay navigation app: The main CarPlay scene connects. The app displays a map template. Free-drive / map-following mode works in the full CarPlay app. Turn-by-turn navigation works. The Dashboard navigation scene works during active route guidance. The issue is with the CarPlay Dashboard/home screen behavior. Other navigation apps such as Waze or ABRP can appear automatically in the CarPlay Dashboard navigation widget when CarPlay starts, even when no active route guidance is running. My app’s Dashboard navigation scene only appears once route guidance has started. When no route guidance is active, the CarPlay Dashboard does not show my app as the navigation widget provider. My questions are: Is there any additional public API, entitlement, plist key, or runtime state required for a navigation app to be selected by CarPlay as the Dashboard navigation provider at CarPlay startup? Is the Dashboard navigation widget expected to launch the last-used third-party navigation app automatically, even when there is no active navigation session? Does an app need to keep some kind of navigation session, navigation metadata, free-drive state, or passive navigation session active for CarPlay to treat it as eligible for the Dashboard widget? Are there differences in this behavior between development builds installed via Xcode and TestFlight/App Store builds? Is the Dashboard navigation scene supposed to be created only during active route guidance, or can CarPlay create it for a free-drive/map-following state with no route? The relevant behavior I’m seeing is: The app works as a full CarPlay navigation app. The Dashboard scene is declared in the app configuration. The app is signed with the CarPlay Maps entitlement. The Dashboard scene appears during route guidance. Without active route guidance, CarPlay Dashboard falls back to another navigation app instead of showing my app’s free-drive map. Any clarification on the expected lifecycle and eligibility rules for third-party navigation apps in the CarPlay Dashboard would be appreciated.
Replies
3
Boosts
0
Views
790
Activity
Jul ’26
Wireless CarPlay pairing flow — carkitd exits before [connect CarPlay] on initial pairing (iOS26.5 / 23F77)
We are investigating a wireless CarPlay connection failure between our vehicle headunit and iPhone, and have identified a suspicious pattern in the carkitd pairing flow through analysis of iPhone sysdiagnose logs. As we have been unable to fully interpret certain behaviors on our own, we would greatly appreciate any guidance or clarification Apple could provide. The original sysdiagnose log file is available upon request. Failure case — UTC 07:14 07:14:25 [carkitd] Transitioning: [started] → [Bluetooth confirmation] 07:14:26 [carkitd] Transitioning: [Bluetooth confirmation] → [Bluetooth contacts sync] 07:14:27 [carkitd] Transitioning: [Bluetooth contacts sync] → [waiting on messaging connection] 07:14:32 [carkitd] Consolidated ... CARiAPAuthComplete payload for event type 5 07:14:32 [accessoryd] sending EAAccessoryArrived to carkitd for accessory: Ioniq5566 07:14:32 [carkitd] updated partial session (null) (hasAccessory = NO) * CARCarKitWirelessPairingCreatedEvent not observed * [connect CarPlay] not entered 07:14:57 [carkitd] Transitioning: [waiting on messaging connection] → [dismiss/finished] ← Terminates ~25 sec later without sending CarPlayAvailability Success case (Ioniq5) — UTC 07:12 (same sysdiagnose file, same iPhone) 07:12:05 [carkitd] Transitioning: [Bluetooth contacts sync] → [waiting on messaging connection] 07:12:12 [carkitd] CARCarKitWirelessPairingCreatedEvent received 07:12:14 [carkitd] Transitioning: [waiting on messaging connection] → [connect CarPlay] 07:12:18 [carkitd] sending CarPlayAvailability {wireless: YES BT: <private>} ← Wireless CarPlay established successfully The only observable difference between the two cases is whether CARCarKitWirelessPairingCreatedEvent occurs. Could you help us understand what conditions prevent this event from being generated, and whether there is a fallback path into [connect CarPlay] when it is absent? Any insight would be greatly appreciated. Thank you for your time.
Replies
0
Boosts
0
Views
983
Activity
Jul ’26
CarPlay Video Playback on iOS 27: Beta SDK, App Review Timing, and Parked-State Requirements
Consultation on CarPlay Video Playback Review Requirements for iOS 27 Hello Apple Developer Forums team, Our app has been approved for the CarPlay Video entitlement, and we are preparing to implement video playback for CarPlay while the vehicle is parked. I would like to confirm several points before development and submission: Can we develop this feature using the current Xcode beta and iOS 27 beta SDK? If the feature is completed using the beta SDK, can the app be submitted to App Review now, or must we wait until the official public release of iOS 27 and the final Xcode version? For CarPlay parked video playback, does App Review require the app to implement or demonstrate its own P-gear / parked-state safety lock logic, or is this restriction handled by the CarPlay system and vehicle? Is a car infotainment system update required for CarPlay Video Playback support, or is support determined by the iPhone iOS version and the connected CarPlay system’s capabilities, such as supportsVideoPlayback? We understand that final App Review decisions are made during review, but we would appreciate any official guidance or documentation references regarding the correct implementation and submission timing. Thank you.
Replies
2
Boosts
0
Views
1.1k
Activity
Jul ’26
CarPlay Communication app not appearing on the CarPlay dashboard — is SiriKit messaging support required for registration?
I have an iOS 17+ app (SwiftUI lifecycle, @UIApplicationDelegateAdaptor) with the granted com.apple.developer.carplay-communication entitlement. It's a voice-message app for family (leave/listen to short audio messages). The app does not appear in Settings → General → CarPlay, nor on the CarPlay Home grid, on a real head unit — across multiple TestFlight builds and full phone reboots. The iPhone app itself launches fine. Verified: The App Store distribution provisioning profile carries com.apple.developer.carplay-communication. The build is signed with that entitlement. Info.plist declares a CPTemplateApplicationSceneSessionRoleApplication scene with UISceneClassName = CPTemplateApplicationScene, a UISceneConfigurationName, and UISceneDelegateClassName pointing to a CPTemplateApplicationSceneDelegate. The delegate synchronously sets a root CPListTemplate in templateApplicationScene(_:didConnect:). My questions: Does a CarPlay Communication app require SiriKit messaging support (INSendMessageIntent, INSearchForMessagesIntent, INSetMessageAttributeIntent, the Siri entitlement, NSSiriUsageDescription, INIntentsSupported) in order to be registered/shown on the CarPlay dashboard? My app currently uses custom CPListTemplate rows with a direct audio recorder and no SiriKit intents. How can I confirm whether the App Store / TestFlight–re-signed build actually carries the carplay-communication entitlement at runtime? For an audio-message app that must never transcribe audio, is INOutgoingMessageType.outgoingMessageAudio the correct approach, and should playback use the SiriKit read flow rather than CPNowPlayingTemplate (which appears to require the Audio entitlement)?
Replies
0
Boosts
0
Views
934
Activity
Jul ’26
CarPlay Entitlements for navigation
Bonjour, Je viens ici afin d'exposer mon problème en espérant trouver une solution. En Août 2025 j'ai publié une demande afin de pouvoir développer une application Carplay de type navigation. Ma demande n'a jamais été traitée, j'ai soumis une autre demande en février, puis en avril. Toujours sans réponse. Depuis environ 3 semaines, j'appelle Apple toutes les semaines afin de demander à ce que ma demande soit traitée. J'ai bien évidemment une réponse m'indiquant que la demande était remontée, mais sans retour par la suite. Je commence à sérieusement perdre patience, et ne trouve aucune solution. Quelles seraient vos propositions ? Merci par avance pour vos retours
Replies
1
Boosts
0
Views
1.4k
Activity
Jun ’26
Scrolling Behavior for Section Headers
When using the new list section headers that include an image, title, subtitle, and action button (e.g., on playlist entity pages), the header remains fixed while the underlying content scrolls. This results in visual overlap between the header and list items, creating readability issues that can appear visually broken during interaction. Is this a known issue, and is there a workaround or fix planned?
Replies
1
Boosts
0
Views
1.1k
Activity
Jun ’26
Video Now Playing View Configuration
I have questions about how the Video Now Playing experience for music apps is configured and what controls are available: Subtitles / Closed Captions — Does the Video NPV support subtitle or closed caption selection? Playback Speed — Is playback speed control surfaced in the CarPlay Video NPV UI? Playback Controls — Beyond play/pause and seek, what controls are available on the Video NPV? Fallback Behavior — When CPSessionConfiguration.supportsVideoPlayback becomes false mid-session (e.g., vehicle starts moving), how does the transition from video to audio-only Now Playing work? Is there a delegate callback, or should we observe supportsVideoPlayback via KVO? Configuration Scope — Is the video playback surface fully driven by AirPlay streaming + CPPlaybackConfiguration, or are there additional configuration points we should be aware of for controlling the video NPV experience?
Replies
1
Boosts
0
Views
1.2k
Activity
Jun ’26
number of grid items based on screen size
Is there any way to know the exact number of grid items that will fit across before you render your template? I'm currently delivering 7 items to accommodate the largest screen sizes, but on smaller screens 3 of these are wasted per row.
Replies
1
Boosts
1
Views
1k
Activity
Jun ’26
Simulator and automatization
I'm looking for options concerning this matter, aiming to have automatized tests in a navigation app. I wasn't able to control either the iOS simulator's extended display nor the CarPlay Simulator (additional tools) via available CLI commands. I couldn’t scan for AX elements either. Closest thing I found is to control the macOS window, take screenshots and simulate user gestures using an agentic workflow. May I have missed something regarding already available tooling?
Replies
1
Boosts
0
Views
1.1k
Activity
Jun ’26
Up Next Button Visibility Not Updating Dynamically
The CPNowPlayingTemplate.upNextButtonEnabled property does not consistently hide the Up Next (queue) button when set to false at runtime. We can reproduce this reliably: Start playback of a playlist (queue is available, upNextButtonEnabled = true). Switch to AI DJ playback (queue is not applicable, set upNextButtonEnabled = false). The Up Next button remains visible on the Now Playing screen. The button only disappears after the user navigates away from and back to the Now Playing view. This appears to be a state refresh issue where the template does not re-render when the property is toggled during an active session. Is this a known issue? Is there a recommended workaround to force the Now Playing template to refresh its button visibility without requiring the user to navigate away? Should we be using a different mechanism to dynamically control the visibility of the Up Next button based on playback context?
Replies
1
Boosts
0
Views
1k
Activity
Jun ’26
Allow CallKit-logged calls to be called back as native PSTN calls from Recents and CarPlay
We build a call-screening app for VoIP-forwarded calls. Inbound calls are forwarded to our service, screened, and surfaced to the user via CallKit (reportNewIncomingCall) with includesCallsInRecents = true and a CXHandle(type: .phoneNumber, …) carrying the real caller number. Because the call is forwarded at the network before it reaches the handset, the user's native carrier call log never records it — CallKit is the only way the call appears in Recents. The gap: When the user taps "call back" on one of these entries (in the native Phone app or in CarPlay), iOS delivers an INStartCallIntent to our app. Our app's only way to then place a normal cellular/PSTN call is to open a tel: URL, which requires the app to be foregrounded. On the phone this works (with an app launch + the system "Call?" confirmation). On CarPlay it cannot work at all, because CarPlay does not foreground third-party apps or open tel: URLs, and there is no API to initiate a PSTN/cellular call from the background. There is currently no way for an app-logged (CallKit) call to be called back as a native PSTN call — the callback is always routed back into the app, and the app has no sanctioned PSTN-dial path on CarPlay. Requested enhancement (any of these would solve it): A way to mark a CallKit-logged call (e.g., a flag on CXProviderConfiguration or per-call on the handle) such that calling it back from Recents/CarPlay dials the cellular line directly (treating it like a native carrier-logged number), instead of routing INStartCallIntent to the app; or An API to write a call to Recents as a native, PSTN-dialable entry associated with the cellular line; or A sanctioned way, when handling the callback INStartCallIntent on CarPlay, for the app to request a PSTN cellular callback (with the standard user confirmation) rather than only a VoIP call. Why existing APIs don't suffice: CXHandle(type: .phoneNumber) + includesCallsInRecents correctly display the number, and INStartCallIntent correctly delivers the callback — but the callback can only become a VoIP call (via CXStartCallAction) or an app-foregrounded tel: open. Neither yields a native PSTN call on CarPlay. Routing the callback through VoIP is not viable for us: it would present our trunk's caller ID (or require per-user STIR/SHAKEN caller-ID verification), so the user's own number would not appear to the person they call back. User impact (safety & accessibility): Our users skew older (55–65) and rely on the app to screen scam/spam calls. A user driving with CarPlay currently cannot safely return a legitimate screened call — they must pick up the phone, wait for the app to open, and tap a confirmation. This defeats the hands-free safety purpose of CarPlay for exactly the population most exposed to phone scams. For comparison: On Android, a self-managed ConnectionService with EXTRA_LOG_SELF_MANAGED_CALLS lets a screened call appear in the system dialer and be carrier-dialed back with a single tap from Android Auto, no app launch and no confirmation — preserving the user's own caller ID natively. iOS has no equivalent for app-logged calls. Steps to reproduce (current behavior): App reports an incoming call via CallKit with includesCallsInRecents = true and a .phoneNumber handle. End the call so it lands in Recents. In CarPlay, open Recents and tap the entry to call back. Observed: the callback is delivered to the app as INStartCallIntent; the only PSTN path (tel:) cannot open on CarPlay, so no call is placed. Expected: a native PSTN/cellular callback (one confirmation at most), as with a carrier-logged number. Wondering...can this be considered for a future update?
Replies
1
Boosts
0
Views
1k
Activity
Jun ’26
CarPlay Video Support
I was looking into testing the new video playback feature but see that some cars doesn't show it. Will it be a future update that pushes support for all vehicles or will it be up to the manufacture
Replies
2
Boosts
0
Views
923
Activity
Jun ’26
Custom Toolbar Items
Why can't you include a custom toolbar item on the parent view of a Tab? I got around this by inserting a bespoke item at the top of my list template to represent the action that would have gone in the toolbar item, and then on all subsequent child views I display the toolbar item as intended. This works, but it feels a little clunky. Any guidance here? Thanks!
Replies
2
Boosts
0
Views
893
Activity
Jun ’26
New CarPlay entitlement categories?
Are there plans to ever open up any more categories of apps in CarPlay? In particular, while Calendar.app is allowed in CarPlay, there is no accepted category that a third party calendar app could fall under to have the ability to do the same thing?
Replies
1
Boosts
0
Views
884
Activity
Jun ’26