Add CarPlay support to your navigation app using CarPlay.

Posts under CarPlay tag

200 Posts

Post

Replies

Boosts

Views

Activity

Start app if connected to CarPlay
Is there a way to trigger the start of my app (just for a short time) when the iPhone is connected to CarPlay (and/or to a car via bluetooth). I could not find anything. I don´t want to apply for CarPlay as I have no intention to show something on the cars screen. Any even small tipp is welcome
3
0
936
3d
Reliable background trigger when CarPlay connects/disconnects (Driver Log Book App)
Hello everyone, I am currently developing a simple driver log book app and I’m hitting a wall regarding a seamless user experience. My goal is very straightforward: I want my app to be notified/triggered in the background as soon as CarPlay is activated or deactivated, so it can automatically start or stop tracking a trip. Even with the official CarPlay entitlement granted, I cannot find a reliable API or workaround to achieve this. It feels like something that should be incredibly simple. I know that Apple Shortcuts (Kurzbefehle) handles this beautifully—the automation triggers for CarPlay work great. However, from an app developer's perspective, this isn't a viable solution for production: The average user will never go through the hassle of manually creating a Shortcut automation just to make the app work. Third-party apps are not allowed to programmatically create or inject these automation triggers for the user. It’s quite disappointing because the OS clearly detects the state perfectly, but doesn't expose a clean way for eligible navigation/driving apps to act on it in the background. Has anyone found a robust workaround for this? Or is there a specific API within the CarPlay framework I am overlooking that allows background execution exactly at the moment of connection/disconnection? Appreciate any insights or feedback!
0
0
102
4d
Supported native alphabet navigation for CPListTemplate on iOS 27
We need to retain CarPlay's native A–Z button between the scroll arrows in an audio app. This is core navigation for an album/artist library. We use CPListSection(items:header:sectionIndexTitle:) with single-character labels. The sectionIndexTitle API is still documented and is not deprecated in the Xcode 27 SDK. We need the supported native implementation, not a custom picker. On a parked physical head unit with an iPhone running iOS 27, our app displays populated album rows and section headers but no A–Z. Apple Music displays A–Z on the same head unit. We do not know Apple Music's internal implementation. A standalone, public-API-only reproduction is prepared; its CarPlay scene code is included below. Each tab supplies four A/B/M/Z sections of ten synthetic rows. The variants are initially populated, updated after loading, the full section initializer, and securely archived and decoded sections. No network, authentication or artwork is required. The original app displays functioning native alphabet navigation on the iOS 26.5 CarPlay simulator. The public probe compiles. We cannot run an end-to-end iOS 27 CarPlay simulator session because Device Hub requires a physical device, as confirmed in developer forum thread 834440. Separately, an isolated local diagnostic hosted the native list renderer with CarPlay traits. Both runtimes receive four nonempty index labels and all 40 rows. On iOS 26.5 (23F77), its table data source returns A/B/M/Z. On iOS 27.0 (24A434), the attached UICollectionViewDiffableDataSource returns nil index titles. Both the full initializer and secure archive round-trip preserve titles but produce the same result. This diagnostic is not an end-to-end CarPlay session and does not establish the exact internals on the physical phone. A standard UIKit table supplied with index titles and CarPlay traits still displays the native A–Z button on the same iOS 27 runtime. The control itself still exists; the observed failure is the template-to-index connection. This control experiment is also hosted in a phone window, not a CarPlay session. A standard UIKit collection data source implementing indexTitles(for:) also shows index letters on this runtime; the unmodified template renderer's collection data source returns nil. We have not modified that renderer. Questions: Did iOS 27 move native CPListTemplate alphabet navigation to another API, configuration, or presentation requirement? What is the supported migration? If sectionIndexTitle remains the correct input, is this a known regression in the new list renderer, and what supported correction is available? How should third-party audio apps reproduce Apple Music's native alphabet navigation on iOS 27 without private API or replacing it with a custom control? Please provide a working public-API example or identify the relevant fix/version. Reproduction: use the audio CarPlay entitlement and configure CPTemplateApplicationScene with CarScene as its delegate. This is the scene code from the compiling standalone probe: import CarPlay import UIKit @MainActor func indexedSections() -> [CPListSection] { ["A", "B", "M", "Z"].map { letter in let items = (1...10).map { number in let item = CPListItem(text: "\(letter) Album \(number)", detailText: "Synthetic test entry") item.handler = { _, completion in completion() } return item } return CPListSection(items: items, header: letter, sectionIndexTitle: letter) } } final class CarScene: UIResponder, CPTemplateApplicationSceneDelegate { func templateApplicationScene(_ scene: CPTemplateApplicationScene, didConnect controller: CPInterfaceController) { let ready = CPListTemplate(title: "Ready", sections: indexedSections()) ready.tabTitle = "Ready" ready.tabImage = UIImage(systemName: "list.bullet") let updated = CPListTemplate(title: "Updated", sections: [CPListSection(items: [CPListItem(text: "Loading", detailText: nil)])]) updated.tabTitle = "Updated" updated.tabImage = UIImage(systemName: "arrow.clockwise") let full = CPListTemplate(title: "Full Init", sections: indexedSections().map { CPListSection(items: $0.items, header: $0.header ?? "", headerSubtitle: nil, headerImage: nil, headerButton: nil, sectionIndexTitle: $0.sectionIndexTitle) }) full.tabTitle = "Full Init" full.tabImage = UIImage(systemName: "list.bullet.rectangle") let decoded: CPListTemplate do { let sections = try indexedSections().map { section in let data = try NSKeyedArchiver.archivedData(withRootObject: section, requiringSecureCoding: true) guard let restored = try NSKeyedUnarchiver.unarchivedObject(ofClass: CPListSection.self, from: data) else { throw CocoaError(.coderReadCorrupt) } return restored } decoded = CPListTemplate(title: "Decoded", sections: sections) } catch { decoded = CPListTemplate(title: "Decode failed", sections: [CPListSection(items: [ CPListItem(text: "Section decoding failed", detailText: String(describing: error)) ])]) } decoded.tabTitle = "Decoded" decoded.tabImage = UIImage(systemName: "shippingbox") controller.setRootTemplate(CPTabBarTemplate(templates: [ready, updated, full, decoded]), animated: false) { _, _ in } Task { @MainActor in try? await Task.sleep(for: .seconds(2)) updated.updateSections(indexedSections()) } } }
1
1
241
5d
Can a single app hold two different CarPlay entitlements (e.g. audio + video)?
I’m reading the October 2026 CarPlay Developer Guide and want to confirm how entitlement combinations work in practice. The docs say multiple CarPlay entitlements can’t be combined in a single app, except EV charging + fueling. But audio and video are listed as separate entitlements, and audio apps are also allowed to play video. My questions: Can one app hold both carplay-audio and carplay-video, or only via an exception from Apple? For an audio-first app that also plays video, is the audio entitlement alone enough (with AirPlay video support)? Has any other combination, such as navigation + audio, ever been approved most recently? Since the video entitlement is iOS 27+, how should an app behave on earlier iOS versions if it holds both? Thanks!
1
0
188
2w
CarPlay Navigation: supported way to start a Siri reply to an in-app passenger conversation
Hello Apple Developer Support, We are developing Go Mobi, a driver app with CarPlay navigation using CPMapTemplate and an internal driver–passenger messaging service. We want to support this experience within a single iOS app: The driver receives a message associated with the active ride. The driver taps a “Reply” button in the CarPlay interface. Siri handles dictation, review, editing, cancellation and sending to that passenger through Go Mobi’s messaging service. Navigation remains active, and the driver returns to the map after the Siri interaction. The intended destination is Go Mobi’s internal conversation, not SMS or another messaging app. We have separately tested navigation and a Communication app using CPMessageListItem with SiriKit messaging intents. We understand that this does not establish permission to combine the Navigation and Communication CarPlay categories. Could you clarify the supported public API approach? Can an app using the Navigation entitlement and ordinary Siri support, without the CarPlay Communication entitlement, initiate this Siri reply flow from an onscreen button? Is CPMessageComposeBarButton supported on CPMapTemplate in this configuration? Would it route INSendMessageIntent to our own app, and how could we bind it to the existing passenger and conversationIdentifier? Since CPContactTemplate supports Navigation, could CPContactMessageButton provide this functionality? How would it select Go Mobi’s messaging service and conversation rather than relying only on a phone number or email address? If no supported onscreen entry point exists, what single-app approach does Apple recommend? Would invocation through Siri voice commands or the steering-wheel Siri button be supported instead? Please identify the applicable public APIs and entitlement requirements, or confirm which part of the requested experience is unsupported. We are currently testing with synthetic conversations and want to follow the documented CarPlay interaction and safety requirements. Thank you.
0
0
110
2w
CarPlay - Navigation Entitlement
We went through Apple's CarPlay documentation and, based on what we found, CarPlay provides templates for both Navigation and Audio, and our app has entitlements for both. One thing we would like to confirm before proceeding with implementation is whether a single app can expose both Navigation and Audio experiences in CarPlay, using both entitlements. Specifically, can the same CarPlay app provide a navigation experience (e.g., using CPMapTemplate) while also exposing an Audio/"Now Playing" experience, or does Apple expect these experiences to be implemented as separate apps or otherwise treated as separate CarPlay experiences? We'd also like to confirm whether CarPlay now allows an app to display a split-screen interface with navigation/map content on one side and audio controls or "Now Playing" controls on the other side. If so, is this something a single app with both Navigation and Audio entitlements can implement? The documentation explains the available templates and entitlements, but we couldn't find explicit guidance on whether the same app can leverage both Navigation and Audio experiences or whether these can be presented together in a split-screen layout. We'd like to clarify this before implementing the "Now Playing" screen, to ensure our approach aligns with Apple's CarPlay requirements and guidelines.
2
0
1.6k
2w
CarPlay category eligibility for private territory destinations with Apple Maps handoff
We are evaluating CarPlay support for Waidruf, an iPhone app for managing private hunting territories. Our intended in-car scope is limited to selecting a previously saved access point, parking location or hunting stand and handing driving directions to Apple Maps. We would also like to understand whether showing the territory and current location on a map is permitted. No territory editing, hunting administration or account configuration would be exposed in CarPlay. We do not currently provide our own turn-by-turn navigation. After reviewing section 3.10 of the CarPlay Entitlement Addendum and the CarPlay Developer Guide dated October 13, 2026, we understand that Driving Task must not primarily be a POI/location finder and cannot use custom maps. The guide also requires Navigation apps to provide turn-by-turn directions with upcoming maneuvers. Parking would not cover our mixed destination types. Is there a supported CarPlay entitlement category for this exact destination-selection and Apple Maps handoff use case? If not, can you confirm that we should keep destination selection on the iPhone and limit any CarPlay-facing extension to supported widgets or Live Activities, subject to their own restrictions? We are asking for eligibility guidance before applying for an entitlement or implementing a CarPlay interface, and are not seeking to bypass category requirements. Thank you.
0
0
80
2w
CarPlay audio entitlement approved, but profiles only include playable-content
My audiobook app was approved for the CarPlay audio entitlement, but every development provisioning profile I generate, whether automatic or manual through the API, includes only com.apple.developer.playable-content, never com.apple.developer.carplay-audio. Because of that, CPTemplateApplicationScene never connects, so I can't build with the template-based CarPlay APIs. I've regenerated profiles daily for a few weeks and always get the same result. It's filed as FB24899531. Has anyone else seen the newer carplay-audio key missing after approval? Did Apple have to re-apply the entitlement on their side, or is there a step I'm missing on the App ID? Thanks!
0
0
165
2w
CarPlay custom symbols missing on iOS 27
We’re seeing custom symbol images disappear in CarPlay on iOS 27.0. Their text labels remain visible, and built-in SF Symbols still display correctly. We reproduced this in a small standalone app using: CPGridButton in CPListTemplate.headerGridButtons CPListImageRowItemCondensedElement The custom symbol is an SVG symbol asset loaded from a resource bundle: UIImage(named: "chapters", in: resourceBundle, compatibleWith: nil)?.withRenderingMode(.alwaysTemplate) For comparison, the same screen displays the built-in dot.radiowaves.left.and.right symbol. On iOS 26.6.1, the custom symbol and built-in symbol appear correctly in both controls. On iOS 27.0, the custom symbol is missing from both controls, while the built-in symbol remains visible. The failing device is an iPhone 13 Pro running iOS 27.0 (24A437), with the sample built using Xcode 27.0 (27A266a). Has anyone else encountered this? Is this a known regression, or is there a new requirement forsupplying custom symbols to CarPlay? Filed as FB24806621, with the standalone project and comparison photos.
2
1
369
2w
CarPlay entitlement request form submits empty description fields — Video request pending since Oct 2
Hi, I requested the CarPlay Video entitlement for my app on October 2 and again on October 3, 2026 (Case-IDs 22627198 and 22644963, Team ID 48482B7BH9, bundle ID com.bubisoft.cartv). Both times, the "Tell us about your app" and "CarPlay features" fields arrived empty in the acknowledgment email, even though I filled them in on the form. I sent the full details as a reply in the case thread, and got an automatic "threaded to your original request" response, but no human reply in 8 days. The app is live on the App Store: a playlist/video player. CarPlay use is limited to video playback while the vehicle is parked, with audio-only fallback while driving, following the CarPlay Developer Guide. Two questions: Is the empty-fields issue a known problem with the request form, and could it cause a request to be set aside as incomplete? Should I submit a fresh request, or is replying in the existing case thread the correct way to supply the missing details? Thanks!
0
0
771
3w
Fixed preset positions and playback controls without scrolling
Is there a supported CarPlay audio template configuration that keeps six—or ideally nine—preset buttons in fixed positions, with space reserved for transport controls, without introducing scrolling or moving or resizing the presets when playback controls appear? I’ve attached a rough mockup of the proposed layout and a screenshot of our current implementation using CarPlay templates. The goal is to provide larger, more readable buttons in consistent locations across radio, podcast, and Apple Music playback. This enhancement request has also been submitted through Feedback Assistant: FB25114973.
1
0
187
3w
Does CarPlay connection make remote audio SharePlay ineligible?
We need clarification about whether remote audio SharePlay using GroupActivities is supported while an iPhone is connected to CarPlay. Our audiobook app uses GroupActivities with activity metadata set to .listenTogether. SharePlay works normally between two iPhones without CarPlay. Across seven controlled comparisons on two iPhones running iOS 27.0.1, we observed: Connecting CarPlay during a working SharePlay session causes the connected phone’s session to invalidate and GroupStateObserver.isEligibleForGroupSession to become false. With CarPlay already connected, the system SharePlay UI displays the session and allows an apparent join, but our app receives no GroupSession. This occurs whether the CarPlay phone is host or receiver and reproduces on either phone. It also occurs when audio remains routed to Bluetooth headphones rather than CarPlay. We observed the same user-facing behavior when testing Spotify’s remote SharePlay. Is this expected platform behavior, a known issue, or an application configuration requirement? If this combination is supported, what public API or configuration should applications use? If this combination is not supported, is there a supported path to allow synchronous remote audio while on carplay? We are asking about remote GroupActivities SharePlay, not Apple Music’s in-car passenger SharePlay feature.
0
0
165
3w
Background-triggered audio files: non-mixing AVAudioSession activation and CarPlay restrictions
We are developing an iOS app that plays individual prerecorded spoken-audio files in response to background triggers. The user explicitly enables this functionality while the app is in the foreground. Subsequently, playback may need to start while the app is backgrounded or the device is locked, with silent intervals between files. For this question, please assume that the app is legitimately executing in the background when a trigger arrives. We are not asking how to wake a suspended app or keep it running artificially. Desired behavior Temporarily interrupt other media playback while an audio file is playing. Release the audio session afterwards, allowing the other app to resume. Repeat this for subsequent triggers without requiring foreground interaction. We do not need to override phone calls, Siri, or other higher-priority system audio. Current configuration try session.setCategory( .playback, mode: .voicePrompt, options: [.duckOthers, .interruptSpokenAudioAndMixWithOthers] ) try session.setActive(true) After playback finishes: try session.setActive( false, options: .notifyOthersOnDeactivation ) This provides ducking for other music playback. However, we would prefer non-mixing playback during each file. We are considering .playback with .spokenAudio and no mixing options, but Apple's documentation describes cannotInterruptOthers when attempting to activate a non-mixable session from the background. Questions Is there a supported audio-session lifecycle that allows this intermittent, non-mixing background playback after the user initially enables the feature in the foreground? If we deactivate the session between files, does the background activation restriction apply again to every subsequent file, regardless of the earlier user interaction? Does implementing a CarPlay audio app with the appropriate entitlement change these restrictions? In particular, is there a distinction between playback explicitly initiated through the CarPlay interface and later background-triggered playback? If this behavior is not supported, is ducking/mixing the recommended approach for this use case? We want to use public APIs and avoid silent playback or retaining an active audio session solely to prevent other apps from playing. Any clarification on the intended behavior and recommended configuration would be appreciated. Thank you for your time and guidance! regards, Carsten :-)
0
0
340
3w
CarPlay BANNERS ?!
I downloaded the CarPlay Simulator from Additional Tools for Xcode 27, but I can't find a way to test the navigation banners on the left or right side Several users have complained, and one of them finally sent me a photo. It looks fine in my simulator but not on their CarPlay screen How do we test those edge cases scenarios? This is my Simulator, looks fine And this is user's photo clearly showing the navigation banners in a different position
1
0
172
3w
iPhone Duo + CarPlay: How can we prevent a second app window when UIApplicationSupportsMultipleScenes is required?
Hello, Summary: Navigation apps that support the CarPlay Dashboard and Instrument Cluster set UIApplicationSupportsMultipleScenes = true, which allows users to open a second app window on iPhone Duo. However, the app cannot close that window, because requestSceneSessionDestruction returns "This functionality is not supported for this device idiom." We would greatly appreciate your advice on the recommended approach. Our navigation app supports CarPlay, including the Dashboard and Instrument Cluster scenes. Following the example in the CarPlay Developer Guide, our scene manifest sets UIApplicationSupportsMultipleScenes to true. On the inner display of iPhone Duo, this setting also allows users to open a second window of our app (for example, via "Open in Split View"). Since our app is designed around a single main window, we would like to allow only one UIWindowSceneSessionRoleApplication scene while keeping all CarPlay scenes working. Here is what we have found so far (tested on the iPhone Duo simulator running iOS 27.1; we have not yet tested on a physical device): In a test app with UIApplicationSupportsMultipleScenes = false, a second window cannot be opened, as expected. With true, we detect the additional window scene in scene(_:willConnectTo:options:) and display a notice instead of the app UI. However, requestSceneSessionDestruction(_:options:errorHandler:) fails with the error "This functionality is not supported for this device idiom." As a result, we are unable to close the additional window programmatically. We would be grateful if you could help us with the following questions: Is UIApplicationSupportsMultipleScenes = true required for the CarPlay Dashboard and Instrument Cluster scenes, or can these scenes connect when it is set to false? If it is required, is there a supported way to keep the CarPlay scenes while limiting the app to a single phone window? If there is no such way, could you please advise on the recommended way to handle an unwanted second window scene on iPhone Duo, given that apps cannot destroy scene sessions there? Thank you very much for your time and help.
Topic: UI Frameworks SubTopic: UIKit Tags:
0
2
134
3w
CarPlay CPGridTemplate corrupt items
For some reason, Carplay 18.x works fine, however in under certain situations in our app, Carplay 26.x breaks. The expected grid layout should be : However, this is what we see in some cases when we update our templates. I have not been able to isolate the cause of this issue. Has anyone ever seen this happen on their CarPlay apps and discovered the cause? The data sets fed into the templates are identical, the difference is in some of the timing and update order...
2
0
725
3w
Wireless CarPlay pairing flow — carkitd exits before [connect CarPlay] on initial pairing (iOS 26.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.
1
0
1.1k
3w
Start app if connected to CarPlay
Is there a way to trigger the start of my app (just for a short time) when the iPhone is connected to CarPlay (and/or to a car via bluetooth). I could not find anything. I don´t want to apply for CarPlay as I have no intention to show something on the cars screen. Any even small tipp is welcome
Replies
3
Boosts
0
Views
936
Activity
3d
Reliable background trigger when CarPlay connects/disconnects (Driver Log Book App)
Hello everyone, I am currently developing a simple driver log book app and I’m hitting a wall regarding a seamless user experience. My goal is very straightforward: I want my app to be notified/triggered in the background as soon as CarPlay is activated or deactivated, so it can automatically start or stop tracking a trip. Even with the official CarPlay entitlement granted, I cannot find a reliable API or workaround to achieve this. It feels like something that should be incredibly simple. I know that Apple Shortcuts (Kurzbefehle) handles this beautifully—the automation triggers for CarPlay work great. However, from an app developer's perspective, this isn't a viable solution for production: The average user will never go through the hassle of manually creating a Shortcut automation just to make the app work. Third-party apps are not allowed to programmatically create or inject these automation triggers for the user. It’s quite disappointing because the OS clearly detects the state perfectly, but doesn't expose a clean way for eligible navigation/driving apps to act on it in the background. Has anyone found a robust workaround for this? Or is there a specific API within the CarPlay framework I am overlooking that allows background execution exactly at the moment of connection/disconnection? Appreciate any insights or feedback!
Replies
0
Boosts
0
Views
102
Activity
4d
Supported native alphabet navigation for CPListTemplate on iOS 27
We need to retain CarPlay's native A–Z button between the scroll arrows in an audio app. This is core navigation for an album/artist library. We use CPListSection(items:header:sectionIndexTitle:) with single-character labels. The sectionIndexTitle API is still documented and is not deprecated in the Xcode 27 SDK. We need the supported native implementation, not a custom picker. On a parked physical head unit with an iPhone running iOS 27, our app displays populated album rows and section headers but no A–Z. Apple Music displays A–Z on the same head unit. We do not know Apple Music's internal implementation. A standalone, public-API-only reproduction is prepared; its CarPlay scene code is included below. Each tab supplies four A/B/M/Z sections of ten synthetic rows. The variants are initially populated, updated after loading, the full section initializer, and securely archived and decoded sections. No network, authentication or artwork is required. The original app displays functioning native alphabet navigation on the iOS 26.5 CarPlay simulator. The public probe compiles. We cannot run an end-to-end iOS 27 CarPlay simulator session because Device Hub requires a physical device, as confirmed in developer forum thread 834440. Separately, an isolated local diagnostic hosted the native list renderer with CarPlay traits. Both runtimes receive four nonempty index labels and all 40 rows. On iOS 26.5 (23F77), its table data source returns A/B/M/Z. On iOS 27.0 (24A434), the attached UICollectionViewDiffableDataSource returns nil index titles. Both the full initializer and secure archive round-trip preserve titles but produce the same result. This diagnostic is not an end-to-end CarPlay session and does not establish the exact internals on the physical phone. A standard UIKit table supplied with index titles and CarPlay traits still displays the native A–Z button on the same iOS 27 runtime. The control itself still exists; the observed failure is the template-to-index connection. This control experiment is also hosted in a phone window, not a CarPlay session. A standard UIKit collection data source implementing indexTitles(for:) also shows index letters on this runtime; the unmodified template renderer's collection data source returns nil. We have not modified that renderer. Questions: Did iOS 27 move native CPListTemplate alphabet navigation to another API, configuration, or presentation requirement? What is the supported migration? If sectionIndexTitle remains the correct input, is this a known regression in the new list renderer, and what supported correction is available? How should third-party audio apps reproduce Apple Music's native alphabet navigation on iOS 27 without private API or replacing it with a custom control? Please provide a working public-API example or identify the relevant fix/version. Reproduction: use the audio CarPlay entitlement and configure CPTemplateApplicationScene with CarScene as its delegate. This is the scene code from the compiling standalone probe: import CarPlay import UIKit @MainActor func indexedSections() -> [CPListSection] { ["A", "B", "M", "Z"].map { letter in let items = (1...10).map { number in let item = CPListItem(text: "\(letter) Album \(number)", detailText: "Synthetic test entry") item.handler = { _, completion in completion() } return item } return CPListSection(items: items, header: letter, sectionIndexTitle: letter) } } final class CarScene: UIResponder, CPTemplateApplicationSceneDelegate { func templateApplicationScene(_ scene: CPTemplateApplicationScene, didConnect controller: CPInterfaceController) { let ready = CPListTemplate(title: "Ready", sections: indexedSections()) ready.tabTitle = "Ready" ready.tabImage = UIImage(systemName: "list.bullet") let updated = CPListTemplate(title: "Updated", sections: [CPListSection(items: [CPListItem(text: "Loading", detailText: nil)])]) updated.tabTitle = "Updated" updated.tabImage = UIImage(systemName: "arrow.clockwise") let full = CPListTemplate(title: "Full Init", sections: indexedSections().map { CPListSection(items: $0.items, header: $0.header ?? "", headerSubtitle: nil, headerImage: nil, headerButton: nil, sectionIndexTitle: $0.sectionIndexTitle) }) full.tabTitle = "Full Init" full.tabImage = UIImage(systemName: "list.bullet.rectangle") let decoded: CPListTemplate do { let sections = try indexedSections().map { section in let data = try NSKeyedArchiver.archivedData(withRootObject: section, requiringSecureCoding: true) guard let restored = try NSKeyedUnarchiver.unarchivedObject(ofClass: CPListSection.self, from: data) else { throw CocoaError(.coderReadCorrupt) } return restored } decoded = CPListTemplate(title: "Decoded", sections: sections) } catch { decoded = CPListTemplate(title: "Decode failed", sections: [CPListSection(items: [ CPListItem(text: "Section decoding failed", detailText: String(describing: error)) ])]) } decoded.tabTitle = "Decoded" decoded.tabImage = UIImage(systemName: "shippingbox") controller.setRootTemplate(CPTabBarTemplate(templates: [ready, updated, full, decoded]), animated: false) { _, _ in } Task { @MainActor in try? await Task.sleep(for: .seconds(2)) updated.updateSections(indexedSections()) } } }
Replies
1
Boosts
1
Views
241
Activity
5d
Can a single app hold two different CarPlay entitlements (e.g. audio + video)?
I’m reading the October 2026 CarPlay Developer Guide and want to confirm how entitlement combinations work in practice. The docs say multiple CarPlay entitlements can’t be combined in a single app, except EV charging + fueling. But audio and video are listed as separate entitlements, and audio apps are also allowed to play video. My questions: Can one app hold both carplay-audio and carplay-video, or only via an exception from Apple? For an audio-first app that also plays video, is the audio entitlement alone enough (with AirPlay video support)? Has any other combination, such as navigation + audio, ever been approved most recently? Since the video entitlement is iOS 27+, how should an app behave on earlier iOS versions if it holds both? Thanks!
Replies
1
Boosts
0
Views
188
Activity
2w
CarPlay Navigation: supported way to start a Siri reply to an in-app passenger conversation
Hello Apple Developer Support, We are developing Go Mobi, a driver app with CarPlay navigation using CPMapTemplate and an internal driver–passenger messaging service. We want to support this experience within a single iOS app: The driver receives a message associated with the active ride. The driver taps a “Reply” button in the CarPlay interface. Siri handles dictation, review, editing, cancellation and sending to that passenger through Go Mobi’s messaging service. Navigation remains active, and the driver returns to the map after the Siri interaction. The intended destination is Go Mobi’s internal conversation, not SMS or another messaging app. We have separately tested navigation and a Communication app using CPMessageListItem with SiriKit messaging intents. We understand that this does not establish permission to combine the Navigation and Communication CarPlay categories. Could you clarify the supported public API approach? Can an app using the Navigation entitlement and ordinary Siri support, without the CarPlay Communication entitlement, initiate this Siri reply flow from an onscreen button? Is CPMessageComposeBarButton supported on CPMapTemplate in this configuration? Would it route INSendMessageIntent to our own app, and how could we bind it to the existing passenger and conversationIdentifier? Since CPContactTemplate supports Navigation, could CPContactMessageButton provide this functionality? How would it select Go Mobi’s messaging service and conversation rather than relying only on a phone number or email address? If no supported onscreen entry point exists, what single-app approach does Apple recommend? Would invocation through Siri voice commands or the steering-wheel Siri button be supported instead? Please identify the applicable public APIs and entitlement requirements, or confirm which part of the requested experience is unsupported. We are currently testing with synthetic conversations and want to follow the documented CarPlay interaction and safety requirements. Thank you.
Replies
0
Boosts
0
Views
110
Activity
2w
CarPlay - Navigation Entitlement
We went through Apple's CarPlay documentation and, based on what we found, CarPlay provides templates for both Navigation and Audio, and our app has entitlements for both. One thing we would like to confirm before proceeding with implementation is whether a single app can expose both Navigation and Audio experiences in CarPlay, using both entitlements. Specifically, can the same CarPlay app provide a navigation experience (e.g., using CPMapTemplate) while also exposing an Audio/"Now Playing" experience, or does Apple expect these experiences to be implemented as separate apps or otherwise treated as separate CarPlay experiences? We'd also like to confirm whether CarPlay now allows an app to display a split-screen interface with navigation/map content on one side and audio controls or "Now Playing" controls on the other side. If so, is this something a single app with both Navigation and Audio entitlements can implement? The documentation explains the available templates and entitlements, but we couldn't find explicit guidance on whether the same app can leverage both Navigation and Audio experiences or whether these can be presented together in a split-screen layout. We'd like to clarify this before implementing the "Now Playing" screen, to ensure our approach aligns with Apple's CarPlay requirements and guidelines.
Replies
2
Boosts
0
Views
1.6k
Activity
2w
CarPlay category eligibility for private territory destinations with Apple Maps handoff
We are evaluating CarPlay support for Waidruf, an iPhone app for managing private hunting territories. Our intended in-car scope is limited to selecting a previously saved access point, parking location or hunting stand and handing driving directions to Apple Maps. We would also like to understand whether showing the territory and current location on a map is permitted. No territory editing, hunting administration or account configuration would be exposed in CarPlay. We do not currently provide our own turn-by-turn navigation. After reviewing section 3.10 of the CarPlay Entitlement Addendum and the CarPlay Developer Guide dated October 13, 2026, we understand that Driving Task must not primarily be a POI/location finder and cannot use custom maps. The guide also requires Navigation apps to provide turn-by-turn directions with upcoming maneuvers. Parking would not cover our mixed destination types. Is there a supported CarPlay entitlement category for this exact destination-selection and Apple Maps handoff use case? If not, can you confirm that we should keep destination selection on the iPhone and limit any CarPlay-facing extension to supported widgets or Live Activities, subject to their own restrictions? We are asking for eligibility guidance before applying for an entitlement or implementing a CarPlay interface, and are not seeking to bypass category requirements. Thank you.
Replies
0
Boosts
0
Views
80
Activity
2w
CarPlay audio entitlement approved, but profiles only include playable-content
My audiobook app was approved for the CarPlay audio entitlement, but every development provisioning profile I generate, whether automatic or manual through the API, includes only com.apple.developer.playable-content, never com.apple.developer.carplay-audio. Because of that, CPTemplateApplicationScene never connects, so I can't build with the template-based CarPlay APIs. I've regenerated profiles daily for a few weeks and always get the same result. It's filed as FB24899531. Has anyone else seen the newer carplay-audio key missing after approval? Did Apple have to re-apply the entitlement on their side, or is there a step I'm missing on the App ID? Thanks!
Replies
0
Boosts
0
Views
165
Activity
2w
CarPlay custom symbols missing on iOS 27
We’re seeing custom symbol images disappear in CarPlay on iOS 27.0. Their text labels remain visible, and built-in SF Symbols still display correctly. We reproduced this in a small standalone app using: CPGridButton in CPListTemplate.headerGridButtons CPListImageRowItemCondensedElement The custom symbol is an SVG symbol asset loaded from a resource bundle: UIImage(named: "chapters", in: resourceBundle, compatibleWith: nil)?.withRenderingMode(.alwaysTemplate) For comparison, the same screen displays the built-in dot.radiowaves.left.and.right symbol. On iOS 26.6.1, the custom symbol and built-in symbol appear correctly in both controls. On iOS 27.0, the custom symbol is missing from both controls, while the built-in symbol remains visible. The failing device is an iPhone 13 Pro running iOS 27.0 (24A437), with the sample built using Xcode 27.0 (27A266a). Has anyone else encountered this? Is this a known regression, or is there a new requirement forsupplying custom symbols to CarPlay? Filed as FB24806621, with the standalone project and comparison photos.
Replies
2
Boosts
1
Views
369
Activity
2w
CarPlay entitlement request form submits empty description fields — Video request pending since Oct 2
Hi, I requested the CarPlay Video entitlement for my app on October 2 and again on October 3, 2026 (Case-IDs 22627198 and 22644963, Team ID 48482B7BH9, bundle ID com.bubisoft.cartv). Both times, the "Tell us about your app" and "CarPlay features" fields arrived empty in the acknowledgment email, even though I filled them in on the form. I sent the full details as a reply in the case thread, and got an automatic "threaded to your original request" response, but no human reply in 8 days. The app is live on the App Store: a playlist/video player. CarPlay use is limited to video playback while the vehicle is parked, with audio-only fallback while driving, following the CarPlay Developer Guide. Two questions: Is the empty-fields issue a known problem with the request form, and could it cause a request to be set aside as incomplete? Should I submit a fresh request, or is replying in the existing case thread the correct way to supply the missing details? Thanks!
Replies
0
Boosts
0
Views
771
Activity
3w
Fixed preset positions and playback controls without scrolling
Is there a supported CarPlay audio template configuration that keeps six—or ideally nine—preset buttons in fixed positions, with space reserved for transport controls, without introducing scrolling or moving or resizing the presets when playback controls appear? I’ve attached a rough mockup of the proposed layout and a screenshot of our current implementation using CarPlay templates. The goal is to provide larger, more readable buttons in consistent locations across radio, podcast, and Apple Music playback. This enhancement request has also been submitted through Feedback Assistant: FB25114973.
Replies
1
Boosts
0
Views
187
Activity
3w
Does CarPlay connection make remote audio SharePlay ineligible?
We need clarification about whether remote audio SharePlay using GroupActivities is supported while an iPhone is connected to CarPlay. Our audiobook app uses GroupActivities with activity metadata set to .listenTogether. SharePlay works normally between two iPhones without CarPlay. Across seven controlled comparisons on two iPhones running iOS 27.0.1, we observed: Connecting CarPlay during a working SharePlay session causes the connected phone’s session to invalidate and GroupStateObserver.isEligibleForGroupSession to become false. With CarPlay already connected, the system SharePlay UI displays the session and allows an apparent join, but our app receives no GroupSession. This occurs whether the CarPlay phone is host or receiver and reproduces on either phone. It also occurs when audio remains routed to Bluetooth headphones rather than CarPlay. We observed the same user-facing behavior when testing Spotify’s remote SharePlay. Is this expected platform behavior, a known issue, or an application configuration requirement? If this combination is supported, what public API or configuration should applications use? If this combination is not supported, is there a supported path to allow synchronous remote audio while on carplay? We are asking about remote GroupActivities SharePlay, not Apple Music’s in-car passenger SharePlay feature.
Replies
0
Boosts
0
Views
165
Activity
3w
Background-triggered audio files: non-mixing AVAudioSession activation and CarPlay restrictions
We are developing an iOS app that plays individual prerecorded spoken-audio files in response to background triggers. The user explicitly enables this functionality while the app is in the foreground. Subsequently, playback may need to start while the app is backgrounded or the device is locked, with silent intervals between files. For this question, please assume that the app is legitimately executing in the background when a trigger arrives. We are not asking how to wake a suspended app or keep it running artificially. Desired behavior Temporarily interrupt other media playback while an audio file is playing. Release the audio session afterwards, allowing the other app to resume. Repeat this for subsequent triggers without requiring foreground interaction. We do not need to override phone calls, Siri, or other higher-priority system audio. Current configuration try session.setCategory( .playback, mode: .voicePrompt, options: [.duckOthers, .interruptSpokenAudioAndMixWithOthers] ) try session.setActive(true) After playback finishes: try session.setActive( false, options: .notifyOthersOnDeactivation ) This provides ducking for other music playback. However, we would prefer non-mixing playback during each file. We are considering .playback with .spokenAudio and no mixing options, but Apple's documentation describes cannotInterruptOthers when attempting to activate a non-mixable session from the background. Questions Is there a supported audio-session lifecycle that allows this intermittent, non-mixing background playback after the user initially enables the feature in the foreground? If we deactivate the session between files, does the background activation restriction apply again to every subsequent file, regardless of the earlier user interaction? Does implementing a CarPlay audio app with the appropriate entitlement change these restrictions? In particular, is there a distinction between playback explicitly initiated through the CarPlay interface and later background-triggered playback? If this behavior is not supported, is ducking/mixing the recommended approach for this use case? We want to use public APIs and avoid silent playback or retaining an active audio session solely to prevent other apps from playing. Any clarification on the intended behavior and recommended configuration would be appreciated. Thank you for your time and guidance! regards, Carsten :-)
Replies
0
Boosts
0
Views
340
Activity
3w
CarPlay BANNERS ?!
I downloaded the CarPlay Simulator from Additional Tools for Xcode 27, but I can't find a way to test the navigation banners on the left or right side Several users have complained, and one of them finally sent me a photo. It looks fine in my simulator but not on their CarPlay screen How do we test those edge cases scenarios? This is my Simulator, looks fine And this is user's photo clearly showing the navigation banners in a different position
Replies
1
Boosts
0
Views
172
Activity
3w
iPhone Duo + CarPlay: How can we prevent a second app window when UIApplicationSupportsMultipleScenes is required?
Hello, Summary: Navigation apps that support the CarPlay Dashboard and Instrument Cluster set UIApplicationSupportsMultipleScenes = true, which allows users to open a second app window on iPhone Duo. However, the app cannot close that window, because requestSceneSessionDestruction returns "This functionality is not supported for this device idiom." We would greatly appreciate your advice on the recommended approach. Our navigation app supports CarPlay, including the Dashboard and Instrument Cluster scenes. Following the example in the CarPlay Developer Guide, our scene manifest sets UIApplicationSupportsMultipleScenes to true. On the inner display of iPhone Duo, this setting also allows users to open a second window of our app (for example, via "Open in Split View"). Since our app is designed around a single main window, we would like to allow only one UIWindowSceneSessionRoleApplication scene while keeping all CarPlay scenes working. Here is what we have found so far (tested on the iPhone Duo simulator running iOS 27.1; we have not yet tested on a physical device): In a test app with UIApplicationSupportsMultipleScenes = false, a second window cannot be opened, as expected. With true, we detect the additional window scene in scene(_:willConnectTo:options:) and display a notice instead of the app UI. However, requestSceneSessionDestruction(_:options:errorHandler:) fails with the error "This functionality is not supported for this device idiom." As a result, we are unable to close the additional window programmatically. We would be grateful if you could help us with the following questions: Is UIApplicationSupportsMultipleScenes = true required for the CarPlay Dashboard and Instrument Cluster scenes, or can these scenes connect when it is set to false? If it is required, is there a supported way to keep the CarPlay scenes while limiting the app to a single phone window? If there is no such way, could you please advise on the recommended way to handle an unwanted second window scene on iPhone Duo, given that apps cannot destroy scene sessions there? Thank you very much for your time and help.
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
0
Boosts
2
Views
134
Activity
3w
CarPlay CPGridTemplate corrupt items
For some reason, Carplay 18.x works fine, however in under certain situations in our app, Carplay 26.x breaks. The expected grid layout should be : However, this is what we see in some cases when we update our templates. I have not been able to isolate the cause of this issue. Has anyone ever seen this happen on their CarPlay apps and discovered the cause? The data sets fed into the templates are identical, the difference is in some of the timing and update order...
Replies
2
Boosts
0
Views
725
Activity
3w
Wireless CarPlay pairing flow — carkitd exits before [connect CarPlay] on initial pairing (iOS 26.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
1
Boosts
0
Views
1.1k
Activity
3w