Add CarPlay support to your navigation app using CarPlay.

Posts under CarPlay tag

200 Posts

Post

Replies

Boosts

Views

Activity

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!
1
0
134
15h
CarPlay Video entitlement causes blank screen and no CPTemplateApplicationScene callbacks
I have CarPlay Video enabled for my account and App ID. I tested both my main app and a completely new minimal iOS app with a new Bundle ID. The minimal app only contains: UIApplicationDelegate CPTemplateApplicationScene configuration CPTemplateApplicationSceneDelegate A single CPListTemplate root Results: With com.apple.developer.carplay-audio only, CarPlay launches normally. When com.apple.developer.carplay-video is added, CarPlay opens a blank screen. No CarPlay callbacks are called: application(:configurationForConnecting:options:) CPTemplateApplicationSceneDelegate.templateApplicationScene(:didConnect:) CPApplicationDelegate.didConnectCarInterfaceController The signed app and embedded provisioning profile both contain com.apple.developer.carplay-video. Does CarPlay Video require an additional runtime allowlist, specific head unit support, a different scene configuration, or another entitlement beyond com.apple.developer.carplay-video?
5
1
1k
16h
iPhone Duo: CarPlay safeAreaInsets remain zero while guidance cards obscure the map
We are experiencing a CarPlay layout issue on a physical iPhone Duo using CPMapTemplate and CPNavigationSession. When guidance cards appear, safeAreaInsets remain zero on the supplied CPWindow, its root view, and our map view. The location marker therefore stays centered and is obscured by the guidance and ETA cards. On a working non-Duo iPhone, the left inset updates correctly and our app shifts the map center accordingly. Apple Maps also shifts the location marker correctly on the affected Duo and displays smaller guidance cards. Environment iPhone Duo iOS 27.1 Xcode 27.1 Is this a known issue? Is there a new public API or configuration requirement in iOS 27+ for obtaining the unobscured map area?
1
0
23
21h
iPhone Duo: CarPlay safeAreaInsets remain zero during navigation
We are experiencing a CarPlay layout issue on a physical iPhone Duo using CPMapTemplate and CPNavigationSession. When guidance cards appear, safeAreaInsets remain zero on the supplied CPWindow, its root view, and our map view. The location marker therefore stays centered and is obscured by the guidance and ETA cards. On a working non-Duo iPhone, the left inset updates correctly and our app shifts the map center accordingly. Apple Maps also shifts the location marker correctly on the affected Duo and displays smaller guidance cards. Environment iPhone Duo iOS 27.1 Xcode 27.1 Is there a new public API or configuration requirement in iOS 27+ for obtaining the unobscured map area? Thank you.
0
0
18
1d
Avoiding CPMapPanel overlap with maneuver cards during CarPlay navigation
I am developing a CarPlay navigation app using only public CarPlay APIs. During active turn-by-turn guidance, the app needs to keep the next planned charging stop visible and interactive so the driver can open it and review the remaining planned stops. The root template is a CPMapTemplate. The app starts a CPNavigationSession, supplies the current CPManeuver through upcomingManeuvers, and shows a CPMapPanel containing one interactive CPListItem for the next stop. let mapTemplate = CPMapTemplate() let session = mapTemplate.startNavigationSession(for: trip) session.upcomingManeuvers = [currentManeuver] let stopItem = CPListItem( text: "1. Charging stop", detailText: "4/6 available · 320 kW · 13% arrival" ) stopItem.handler = { _, completion in // Push a CPMapPanel containing the planned-stop hierarchy. completion() } let panel = CPMapPanel( title: nil, sections: [ CPMapPanelSection( title: nil, items: [CPMapPanelItem(listItem: stopItem)] ) ], buttonConfiguration: nil ) mapTemplate.showPanel(panel, completion: nil)On a wide CarPlay host, both the system-rendered maneuver/trip-estimate cards and the app's map panel occupy the leading side while a large trailing area remains free. CPMapPanel does not appear to expose a preferred side, layout priority, safe region, or collision policy. Changing the panel content and the navigation-bar buttons has not provided a vehicle-independent solution. Reproduction: Use a navigation-entitled app with a CPMapTemplate root. Start a trip and a native CPNavigationSession. Publish a CPManeuver in upcomingManeuvers. Show the interactive CPMapPanel above. Observe the system maneuver card, trip-estimate card, map controls, and map panel on a wide CarPlay host. Environment: Xcode 27.1 / iOS 27 SDK App build used for the latest vehicle reproduction: 69 A minimal UIKit/CarPlay/MapKit reproduction project is available and contains no credentials, user data, or third-party SDKs. Questions: Is a persistent interactive CPMapPanel supported while a CPNavigationSession displays maneuver guidance? Is there a documented layout contract that prevents a CPMapPanel from conflicting with system maneuver and trip-estimate cards across hosts? If panel placement is intentionally host-controlled, which public template or API is intended for a next-charging-stop entry that remains visible and interactive during guidance? Is CPMultiStopCardConfiguration in the ETA tray the intended architecture, even when the next stop should remain visible at a glance? Are there documented content or update-frequency limits that influence the panel layout? I do not want to use fixed coordinates, a custom touch overlay, or private APIs. The goal is a supported, driver-safe solution that works across different CarPlay hosts.
0
0
50
2d
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
965
1w
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
258
1w
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
222
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
120
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
3w
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
89
3w
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
182
3w
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
380
3w
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
788
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
199
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
171
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
347
3w
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
1
Boosts
0
Views
134
Activity
15h
CarPlay Video entitlement causes blank screen and no CPTemplateApplicationScene callbacks
I have CarPlay Video enabled for my account and App ID. I tested both my main app and a completely new minimal iOS app with a new Bundle ID. The minimal app only contains: UIApplicationDelegate CPTemplateApplicationScene configuration CPTemplateApplicationSceneDelegate A single CPListTemplate root Results: With com.apple.developer.carplay-audio only, CarPlay launches normally. When com.apple.developer.carplay-video is added, CarPlay opens a blank screen. No CarPlay callbacks are called: application(:configurationForConnecting:options:) CPTemplateApplicationSceneDelegate.templateApplicationScene(:didConnect:) CPApplicationDelegate.didConnectCarInterfaceController The signed app and embedded provisioning profile both contain com.apple.developer.carplay-video. Does CarPlay Video require an additional runtime allowlist, specific head unit support, a different scene configuration, or another entitlement beyond com.apple.developer.carplay-video?
Replies
5
Boosts
1
Views
1k
Activity
16h
iPhone Duo: CarPlay safeAreaInsets remain zero while guidance cards obscure the map
We are experiencing a CarPlay layout issue on a physical iPhone Duo using CPMapTemplate and CPNavigationSession. When guidance cards appear, safeAreaInsets remain zero on the supplied CPWindow, its root view, and our map view. The location marker therefore stays centered and is obscured by the guidance and ETA cards. On a working non-Duo iPhone, the left inset updates correctly and our app shifts the map center accordingly. Apple Maps also shifts the location marker correctly on the affected Duo and displays smaller guidance cards. Environment iPhone Duo iOS 27.1 Xcode 27.1 Is this a known issue? Is there a new public API or configuration requirement in iOS 27+ for obtaining the unobscured map area?
Replies
1
Boosts
0
Views
23
Activity
21h
iPhone Duo: CarPlay safeAreaInsets remain zero during navigation
We are experiencing a CarPlay layout issue on a physical iPhone Duo using CPMapTemplate and CPNavigationSession. When guidance cards appear, safeAreaInsets remain zero on the supplied CPWindow, its root view, and our map view. The location marker therefore stays centered and is obscured by the guidance and ETA cards. On a working non-Duo iPhone, the left inset updates correctly and our app shifts the map center accordingly. Apple Maps also shifts the location marker correctly on the affected Duo and displays smaller guidance cards. Environment iPhone Duo iOS 27.1 Xcode 27.1 Is there a new public API or configuration requirement in iOS 27+ for obtaining the unobscured map area? Thank you.
Replies
0
Boosts
0
Views
18
Activity
1d
Avoiding CPMapPanel overlap with maneuver cards during CarPlay navigation
I am developing a CarPlay navigation app using only public CarPlay APIs. During active turn-by-turn guidance, the app needs to keep the next planned charging stop visible and interactive so the driver can open it and review the remaining planned stops. The root template is a CPMapTemplate. The app starts a CPNavigationSession, supplies the current CPManeuver through upcomingManeuvers, and shows a CPMapPanel containing one interactive CPListItem for the next stop. let mapTemplate = CPMapTemplate() let session = mapTemplate.startNavigationSession(for: trip) session.upcomingManeuvers = [currentManeuver] let stopItem = CPListItem( text: "1. Charging stop", detailText: "4/6 available · 320 kW · 13% arrival" ) stopItem.handler = { _, completion in // Push a CPMapPanel containing the planned-stop hierarchy. completion() } let panel = CPMapPanel( title: nil, sections: [ CPMapPanelSection( title: nil, items: [CPMapPanelItem(listItem: stopItem)] ) ], buttonConfiguration: nil ) mapTemplate.showPanel(panel, completion: nil)On a wide CarPlay host, both the system-rendered maneuver/trip-estimate cards and the app's map panel occupy the leading side while a large trailing area remains free. CPMapPanel does not appear to expose a preferred side, layout priority, safe region, or collision policy. Changing the panel content and the navigation-bar buttons has not provided a vehicle-independent solution. Reproduction: Use a navigation-entitled app with a CPMapTemplate root. Start a trip and a native CPNavigationSession. Publish a CPManeuver in upcomingManeuvers. Show the interactive CPMapPanel above. Observe the system maneuver card, trip-estimate card, map controls, and map panel on a wide CarPlay host. Environment: Xcode 27.1 / iOS 27 SDK App build used for the latest vehicle reproduction: 69 A minimal UIKit/CarPlay/MapKit reproduction project is available and contains no credentials, user data, or third-party SDKs. Questions: Is a persistent interactive CPMapPanel supported while a CPNavigationSession displays maneuver guidance? Is there a documented layout contract that prevents a CPMapPanel from conflicting with system maneuver and trip-estimate cards across hosts? If panel placement is intentionally host-controlled, which public template or API is intended for a next-charging-stop entry that remains visible and interactive during guidance? Is CPMultiStopCardConfiguration in the ETA tray the intended architecture, even when the next stop should remain visible at a glance? Are there documented content or update-frequency limits that influence the panel layout? I do not want to use fixed coordinates, a custom touch overlay, or private APIs. The goal is a supported, driver-safe solution that works across different CarPlay hosts.
Replies
0
Boosts
0
Views
50
Activity
2d
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
965
Activity
1w
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
258
Activity
1w
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
222
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
120
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
3w
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
89
Activity
3w
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
182
Activity
3w
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
380
Activity
3w
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
788
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
199
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
171
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
347
Activity
3w