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

Documentation

Posts under CarPlay subtopic

Post

Replies

Boosts

Views

Activity

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()) } } }
0
0
34
1d
CarPlay Video entitlement: approval timeline?
Hi everyone, I recently submitted a request for the CarPlay Video App entitlement (com.apple.developer.carplay-video) via Apple's CarPlay entitlement request form. I submitted the request about a week ago, but I haven't received any update yet — no approval, rejection, or request for additional information. About the app: It is a video player designed for user-provided M3U/M3U8 playlists and locally imported media files. The app does not host, provide, or stream any built-in content itself. It follows Apple's CarPlay Video APIs and is intended to support video playback only when the vehicle permits video playback, such as when parked. I've noticed recent discussions from developers who already hold the CarPlay Video entitlement, but details regarding the review timeline seem quite limited. For developers who have successfully obtained the CarPlay Video entitlement: Approximately how long did it take from submitting the request form to receiving the entitlement decision? Did Apple reach out for additional details or clarification during the review process? Did you need an active TestFlight build or App Store submission prior to receiving the entitlement? Is there any dashboard or portal to track the status of a CarPlay entitlement request, or is email the only channel? Any insights from your experience would be greatly appreciated! Thanks!
0
0
82
5d
CarPlay Simulator (from Additional tools) stuck on "Connecting to phone" since March 4th
We're experiencing an issue where the CarPlay Simulator (from Apple Developer Additional Tools) stopped connecting to our iPhones as of March 4th, 2025. The simulator gets stuck indefinitely on "Connecting to phone" and never completes the pairing. Environment App: Oracle Field Service iOS app (with CarPlay support) Tool: CarPlay Simulator from Apple Developer Additional Tools (developer.apple.com/download/all/) Issue start date: Wednesday, March 4th, 2025 Tested on: Multiple Mac machines, multiple iPhones Multiple CarPlay Simulator versions tested What's happening The CarPlay Simulator launches but displays "Connecting to phone" indefinitely. It was working correctly prior to March 4th with no changes on our end. What still works CarPlay functions correctly when the same iPhone is connected to a real car, confirming the issue is specific to the simulator. Troubleshooting steps already attempted Reset permissions and re-added the simulator Forgot the simulator and re-paired it Changed the USB cable Tested on multiple Mac machines Tested on multiple iPhones Tried multiple versions of the CarPlay Simulator Confirmed no VPN is in use Confirmed with IT, no OS updates or enterprise restrictions were applied Questions Has anyone else experienced this since March 4th? Was there a change in CarPlay Simulator behavior or a requirement on the Apple side (certificate, entitlement, protocol) around that date? Is there a known workaround or fix?
5
7
1.7k
5d
iOS 27: CPNowPlayingTemplate does not follow the active Now Playing client between an app's own client and its ApplicationMusicPlayer client (FB24840951)
On iOS 27, an app of mine that plays both its own audio and Apple Music tracks has two Now Playing clients in MediaRemote, as any app using ApplicationMusicPlayer.shared does: its own process's MPNowPlayingInfoCenter.default(), and MusicKit's player hosted out of process by com.apple.MediaPlayer.RemotePlayerService. MediaRemote elects between them correctly - the client whose process is making sound becomes active - and both the Lock Screen and the CarPlay dashboard follow the change. My CPNowPlayingTemplate does not. It stays on whichever client it was on when the change happened, so during an Apple Music track the car shows my own (now stale) entry with the clock frozen and a play glyph while music is audible; in some sessions the reverse, where my own audio after a track gets a blank template whose play presses are delivered to MusicKit's empty player and interrupt playback. From mediaremoted on iOS 27, handlePlaybackQueueRequest from CarPlayTemplateUIHost returns for (pid) > default throughout a track, and no contentItemChange for the RemotePlayerService path is ever posted to CarPlayTemplateUIHost, though it is posted to springboard, CarPlayApp and MediaRemoteUI. On iOS 26.6.1 with the same build, the same template host reads and commands RemotePlayerService/ during the track and > default afterwards. So the routing of commands to the active client is not what changed - what the template reads and sends to is. Filed as FB24840951 with mediaremoted captures from both OS versions, full sysdiagnose archives and screen recordings of the car screen beside the Lock Screen. Two questions: Is there a supported way for an audio app to tell CPNowPlayingTemplate which of its Now Playing clients to display? MPNowPlayingSession looks like the intended mechanism but accepts only AVPlayer instances, so it cannot represent either an AVAudioEngine graph or MusicKit's player; tested with a dormant AVPlayer it reported isActive == true every time and moved the template on some tracks and not others. Does the new MiniPlayer affect this? WWDC26's "Rev up your CarPlay app" says the MiniPlayer is new in iOS 27 and appears automatically for every app that shows now playing. Since the template was reworked in the same release this regressed in, does CPNowPlayingTemplate.shared.allowsMiniPlayer = false change which client is read? I have not tested it yet and will report back either way. Meanwhile the only thing that moves the car is republishing my own entry once a second as a new content item, which the template does re-read, so the clock steps instead of freezing. That ships in PodMelody 1.1.4, a workaround for an OS bug rather than a fix - and it doesn't resolve the mismatched play/pause glyph. If you have an audio app using ApplicationMusicPlayer and CarPlay, I would be glad to know whether you see the same thing, and in which car - duplicates on the Feedback are what get these prioritised.
0
0
124
1w
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.
1
0
149
1w
CarPlay: App Icon doesn't display badge count.
On the CarPlay view of our iOS app, we cannot get our CarPlay app icon to show a red badge count like our regular iPhone app icon does. This is using either UNUserNotificationCenter.current().setBadgeCount() and also relying on the content.badge value in local notifications. I see other non-Apple apps (WhatsApp for eg) can display badge counts on their icons, so know it must be possible. Our app is Driving Task category app. Is there some restriction on this category of app that would prevent badge counts showing? Is there some other user setting that would prevent badge counts showing?
0
0
95
1w
Low-latency, high-quality audio route w/wireless CarPlay?
Is there a supported way for a CarPlay audio app to request a lower-latency wireless playback route without communications-style audio processing or restricted volume behavior? .playback + .default on wired CarPlay gets you ~60ms latency route. The same on wireless CarPlay gets you ~1100ms latency. I know that wireless CarPlay can support faster connections as I have tested them. playAndRecord + .default and .playback + .voicePrompt negotiate approximately 160 ms output/presentation latency. However, on this head unit those paths have unacceptable side effects: The duplex route negotiates 24 kHz mono and removes or severely attenuates bass/haptic-engine content. The voice-prompt route alters volume semantics: steering-wheel/head-unit volume does not control our app’s level, and it appears to apply voice-oriented EQ or other processing. These routes therefore cannot substitute for full-bandwidth media playback, even though their latency is much better. 24 kHz mono would actually work for our app, if only it preserved the signal without voice/telephony EQ, bass removal, or special prompt-bus volume policy. Is there a documented, supported public API or AVAudioSession configuration (or other API even) that lets a CarPlay audio app request that kind of low-latency wireless media route? If not, is this an intentional limitation of wireless CarPlay media playback, and is there an appropriate enhancement-request path for real-time audio applications?
0
0
179
1w
CarPlay steering wheel Answer/End Call buttons not working on iPhone 17 Pro Max – buttons work over Bluetooth and with another iPhone
I’m experiencing a specific issue with Apple CarPlay and the steering-wheel phone controls in my 2026 Chery FX HEV. The problem is that when my iPhone 17 Pro Max is connected to CarPlay, I cannot answer or end phone calls using the steering-wheel Answer/End Call buttons (green/red phone buttons). The important part is that the buttons and the vehicle itself appear to be working correctly: When the iPhone is connected through Bluetooth only, without CarPlay, the steering-wheel Answer/End Call buttons work normally. When using CarPlay, I can still answer/end the call from the vehicle’s touchscreen, so calling itself works. Siri/voice control from the steering wheel works while CarPlay is active. I tested another iPhone (iPhone 14 running a non-beta/stable iOS version) in the same vehicle, and the steering-wheel Answer/End Call buttons worked correctly with CarPlay. Therefore, this appears to be specific to the interaction between my iPhone/iOS version and CarPlay rather than a defective steering-wheel button. What I have already tried I have tried: Removing/forgetting the vehicle from the iPhone and setting up CarPlay again multiple times. Removing and reconnecting Bluetooth. Restarting/force restarting the iPhone. Testing wireless CarPlay. Testing wired CarPlay using a USB cable. Testing Bluetooth without CarPlay — steering-wheel phone buttons work correctly. Testing another iPhone in the same car — the buttons work correctly with CarPlay. Testing short and long presses of the steering-wheel phone buttons. Checking Siri/voice control — this works correctly through the steering wheel. Answering calls directly from the CarPlay/vehicle touchscreen — this also works correctly. I also tried using a wired connection while attempting to remap/reconfigure the steering-wheel button, but this did not solve the problem. Any suggestions for additional troubleshooting, logs, diagnostics, or a way to reset/remap the CarPlay steering-wheel call controls would be appreciated.
1
0
199
2w
CPListItem and CPListImageRowItem text limited to 1 line on iOS 27
On iOS 27, CPListItem.text and CPListImageRowItem.text` are rendered as single-line with ellipsis truncation, regardless of the available vertical space. On iOS 26 and earlier, these properties wrapped to 2 lines before truncating. There is no public API (numberOfLines, lineLimit, or similar) on CPListItem, CPListImageRowItem, or CPListSection to control the number of text lines. The change appears to be a platform-level rendering default with no app-side opt-out. Steps to Reproduce Create a CPListTemplate with sections containing CPListItem or CPListImageRowItem items. Set the text property to a string long enough to require wrapping. Present the template via CPInterfaceController. Run on iOS 27. Expected Results The text property should wrap to multiple lines (2-3 lines) before truncating with an ellipsis, consistent with iOS 26 behavior. Row height should adjust dynamically to accommodate the wrapped text. Actual Results The text property is truncated to a single line with ellipsis. Row height remains fixed at a larger size, creating excessive vertical spacing between items. Environment iOS 27.0 (CarPlay) - issue present Xcode 27.0 beta 4 (27A5218g) Tested on physical CarPlay head unit and CarPlay Simulator
5
0
1.2k
2w
tabbar creating issue when loading an Empty CPListTemplate
I NEED TO DISPLAY two tabs in a CarPlay TabBarTemplateBuilder: Tab 1: Initially shows an empty list with a loading message, then updates with data when API call completes Tab 2: Immediately displays proper sections with data without waiting for Tab 1 to load Issues Occurring Issue #1: Second Tab Selection Unreliable Tapping the second tab doesn't switch tabs on some devices Only swiping left/right switches tabs (workaround) Behavior is inconsistent across devices **Issue #2: Second** Tab Title Not Visible Until Tab 1 Loads Even though Tab 2 loads its data asynchronously and independently Tab 2's title doesn't appear in the tab bar until Tab 1 finishes loading and populating This creates a poor user experience with missing/delayed tab labels
0
0
1.1k
Aug ’26
CarPlay - getting Progress Indicator on Image Row Condensed Element?
In our CarPlay implementation, I've been trying to get the progress indicator to appear on an image row item using the condensed element style. Is this possible? I have been able get spinners to appear on regular list items, but not on image row condensed elements. Trying to figure out what this means from the docs for listImageRowHandler: "CarPlay displays an asynchronous progress indicator until you call the completion closure." https://developer.apple.com/documentation/carplay/cplistimagerowitem/listimagerowhandler Here is a snippet of my code for the handler: let elements = myShortcuts.enumerated().map { index, shortcut in let element = CPListImageRowItemCondensedElement( // code here... ) return element } let row = CPListImageRowItem(text: nil, condensedElements: elements, allowsMultipleLines: true) row.listImageRowHandler = { [weak self] _, index, completion in self?.operate(at: index) { completion() } }
0
0
285
Aug ’26
includeAllNetworks still breaks wired CarPlay
I'm an developer and a fans of Apple, writing because you handled a forum thread that exactly matches an issue I can still reproduce today: "VPN causes CarPlay to not work" (developer.apple.com/forums/thread/712441), filed as FB11285432 back in August 2022. Summary: When any Packet Tunnel VPN with includeAllNetworks enabled is active, wired CarPlay fails to establish a connection. The phone charges normally, but the head unit never detects CarPlay. Steps to reproduce (iPhone on iOS [iOS 26.5.2], [Volkswagen's universal in-vehicle infotainment system for the 2023 and 2024 model years] head unit, USB-C wired CarPlay): Start a VPN configured with includeAllNetworks = true (reproduced with Shadowrocket; other users report the same with ExpressVPN, Google One VPN, etc.) Plug in the USB cable Result: CarPlay never connects. Charging works. Additional observations: With the VPN off, the same phone/cable/car connects instantly, ruling out hardware. If CarPlay is established first and the VPN is enabled afterward, the existing session keeps working — only the initial handshake/discovery is blocked. Consistent with thread 712441, excluding local networks does not help. This suggests includeAllNetworks blocks the mDNS/discovery traffic on the USB virtual Ethernet interface that CarPlay needs, with no exemption available. Two questions: Is there any supported configuration that allows includeAllNetworks and first-time CarPlay connection to coexist? If not, is FB11285432 still tracked? I'd be happy to file a new Feedback report referencing it with current repro details if that helps prioritization. Thanks for your time — your forum posts on Network Extension have been invaluable in diagnosing this.
0
0
708
Aug ’26
TabBar icons not displayed
Working on a CarPlay app (Driving App) and despite setting tab bar icons, they don’t display in either the simulator or two physical devices (one no older than 2024 and with a very large screen), I only see the textual description/name of the tab. Am I missing something ?
1
0
345
Aug ’26
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.
1
0
1.1k
Jul ’26
CarPlay: Is vehicle microphone capture without entering communications audio mode supported for third-party apps?
Hello, I am developing a native CarPlay application and would appreciate some clarification regarding AVAudioSession behaviour when using the vehicle microphone. The application is intentionally simple and designed to minimise driver distraction. The user presses a single button on the CarPlay screen, the application performs a brief (approximately five second) audio capture, performs application-specific processing on the captured audio, displays a simple confirmation to the user, and immediately releases the audio session. The goal is to allow the driver to continue their journey with as little interaction as possible. Because the audio being captured is often originating from the vehicle’s native DAB/FM radio rather than from the iPhone itself, preserving the existing listening experience during the brief capture is fundamental to the intended design. To better understand what is supported by CarPlay, I have carried out a number of controlled experiments. Test Environment Native CarPlay application Swift AVFoundation AVAudioSession AVAudioRecorder Vehicle connected via CarPlay Vehicle playing its native DAB radio Experiment 1 Configuration Category: AVAudioSession.Category.playAndRecord Mode: AVAudioSession.Mode.default Observed Route Input: CarPlay — CarAudio Output: CarPlay — CarAudio Result Recording succeeds using the vehicle microphone. Native DAB audio is muted during recording. The vehicle changes from “Audio Volume” to “Voice Volume”. When recording finishes and the AVAudioSession is deactivated, DAB resumes normally. Experiment 2 Changed only the session mode to: AVAudioSession.Mode.measurement Result Behaviour was identical to Experiment 1. Experiment 3 Changed only the session mode to: AVAudioSession.Mode.videoRecording Observed Route Input: iPhone microphone Output: CarPlay — CarAudio Result Input automatically switched from the vehicle microphone to the iPhone microphone. The vehicle remained in normal “Audio Volume”. However, the head unit switched away from its native DAB source to the CarPlay media source. Observation These experiments appear to suggest that the behaviour is specifically related to using the CarPlay “CarAudio” microphone route, rather than audio recording itself. Question Is this the expected behaviour for third-party CarPlay applications? More specifically: Is there any supported AVAudioSession configuration or CarPlay API that allows a third-party CarPlay application to perform a brief, user-initiated audio capture using the vehicle microphone without causing the head unit to enter its communications/voice audio mode or interrupt the vehicle’s native radio playback? If this behaviour is by design and no supported mechanism exists to achieve this, confirmation of that would be extremely valuable, as it would allow us to design the application accordingly. If additional information, sample code, AVAudioSession logs or detailed reproduction steps would be helpful, I would be more than happy to provide them. Thank you very much for your time. Kind regards, Neil Jenner Developer, HearSave
7
0
1.4k
Jul ’26
CarPlay Dashboard navigation scene only appears after starting route guidance
Hi, I’m developing a CarPlay navigation app using the CarPlay Maps/Navigation entitlement. The app works correctly as a full CarPlay navigation app: The main CarPlay scene connects. The app displays a map template. Free-drive / map-following mode works in the full CarPlay app. Turn-by-turn navigation works. The Dashboard navigation scene works during active route guidance. The issue is with the CarPlay Dashboard/home screen behavior. Other navigation apps such as Waze or ABRP can appear automatically in the CarPlay Dashboard navigation widget when CarPlay starts, even when no active route guidance is running. My app’s Dashboard navigation scene only appears once route guidance has started. When no route guidance is active, the CarPlay Dashboard does not show my app as the navigation widget provider. My questions are: Is there any additional public API, entitlement, plist key, or runtime state required for a navigation app to be selected by CarPlay as the Dashboard navigation provider at CarPlay startup? Is the Dashboard navigation widget expected to launch the last-used third-party navigation app automatically, even when there is no active navigation session? Does an app need to keep some kind of navigation session, navigation metadata, free-drive state, or passive navigation session active for CarPlay to treat it as eligible for the Dashboard widget? Are there differences in this behavior between development builds installed via Xcode and TestFlight/App Store builds? Is the Dashboard navigation scene supposed to be created only during active route guidance, or can CarPlay create it for a free-drive/map-following state with no route? The relevant behavior I’m seeing is: The app works as a full CarPlay navigation app. The Dashboard scene is declared in the app configuration. The app is signed with the CarPlay Maps entitlement. The Dashboard scene appears during route guidance. Without active route guidance, CarPlay Dashboard falls back to another navigation app instead of showing my app’s free-drive map. Any clarification on the expected lifecycle and eligibility rules for third-party navigation apps in the CarPlay Dashboard would be appreciated.
3
0
719
Jul ’26
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.
0
0
852
Jul ’26
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
0
Boosts
0
Views
34
Activity
1d
CarPlay Video entitlement: approval timeline?
Hi everyone, I recently submitted a request for the CarPlay Video App entitlement (com.apple.developer.carplay-video) via Apple's CarPlay entitlement request form. I submitted the request about a week ago, but I haven't received any update yet — no approval, rejection, or request for additional information. About the app: It is a video player designed for user-provided M3U/M3U8 playlists and locally imported media files. The app does not host, provide, or stream any built-in content itself. It follows Apple's CarPlay Video APIs and is intended to support video playback only when the vehicle permits video playback, such as when parked. I've noticed recent discussions from developers who already hold the CarPlay Video entitlement, but details regarding the review timeline seem quite limited. For developers who have successfully obtained the CarPlay Video entitlement: Approximately how long did it take from submitting the request form to receiving the entitlement decision? Did Apple reach out for additional details or clarification during the review process? Did you need an active TestFlight build or App Store submission prior to receiving the entitlement? Is there any dashboard or portal to track the status of a CarPlay entitlement request, or is email the only channel? Any insights from your experience would be greatly appreciated! Thanks!
Replies
0
Boosts
0
Views
82
Activity
5d
CarPlay Simulator (from Additional tools) stuck on "Connecting to phone" since March 4th
We're experiencing an issue where the CarPlay Simulator (from Apple Developer Additional Tools) stopped connecting to our iPhones as of March 4th, 2025. The simulator gets stuck indefinitely on "Connecting to phone" and never completes the pairing. Environment App: Oracle Field Service iOS app (with CarPlay support) Tool: CarPlay Simulator from Apple Developer Additional Tools (developer.apple.com/download/all/) Issue start date: Wednesday, March 4th, 2025 Tested on: Multiple Mac machines, multiple iPhones Multiple CarPlay Simulator versions tested What's happening The CarPlay Simulator launches but displays "Connecting to phone" indefinitely. It was working correctly prior to March 4th with no changes on our end. What still works CarPlay functions correctly when the same iPhone is connected to a real car, confirming the issue is specific to the simulator. Troubleshooting steps already attempted Reset permissions and re-added the simulator Forgot the simulator and re-paired it Changed the USB cable Tested on multiple Mac machines Tested on multiple iPhones Tried multiple versions of the CarPlay Simulator Confirmed no VPN is in use Confirmed with IT, no OS updates or enterprise restrictions were applied Questions Has anyone else experienced this since March 4th? Was there a change in CarPlay Simulator behavior or a requirement on the Apple side (certificate, entitlement, protocol) around that date? Is there a known workaround or fix?
Replies
5
Boosts
7
Views
1.7k
Activity
5d
iOS 27: CPNowPlayingTemplate does not follow the active Now Playing client between an app's own client and its ApplicationMusicPlayer client (FB24840951)
On iOS 27, an app of mine that plays both its own audio and Apple Music tracks has two Now Playing clients in MediaRemote, as any app using ApplicationMusicPlayer.shared does: its own process's MPNowPlayingInfoCenter.default(), and MusicKit's player hosted out of process by com.apple.MediaPlayer.RemotePlayerService. MediaRemote elects between them correctly - the client whose process is making sound becomes active - and both the Lock Screen and the CarPlay dashboard follow the change. My CPNowPlayingTemplate does not. It stays on whichever client it was on when the change happened, so during an Apple Music track the car shows my own (now stale) entry with the clock frozen and a play glyph while music is audible; in some sessions the reverse, where my own audio after a track gets a blank template whose play presses are delivered to MusicKit's empty player and interrupt playback. From mediaremoted on iOS 27, handlePlaybackQueueRequest from CarPlayTemplateUIHost returns for (pid) > default throughout a track, and no contentItemChange for the RemotePlayerService path is ever posted to CarPlayTemplateUIHost, though it is posted to springboard, CarPlayApp and MediaRemoteUI. On iOS 26.6.1 with the same build, the same template host reads and commands RemotePlayerService/ during the track and > default afterwards. So the routing of commands to the active client is not what changed - what the template reads and sends to is. Filed as FB24840951 with mediaremoted captures from both OS versions, full sysdiagnose archives and screen recordings of the car screen beside the Lock Screen. Two questions: Is there a supported way for an audio app to tell CPNowPlayingTemplate which of its Now Playing clients to display? MPNowPlayingSession looks like the intended mechanism but accepts only AVPlayer instances, so it cannot represent either an AVAudioEngine graph or MusicKit's player; tested with a dormant AVPlayer it reported isActive == true every time and moved the template on some tracks and not others. Does the new MiniPlayer affect this? WWDC26's "Rev up your CarPlay app" says the MiniPlayer is new in iOS 27 and appears automatically for every app that shows now playing. Since the template was reworked in the same release this regressed in, does CPNowPlayingTemplate.shared.allowsMiniPlayer = false change which client is read? I have not tested it yet and will report back either way. Meanwhile the only thing that moves the car is republishing my own entry once a second as a new content item, which the template does re-read, so the clock steps instead of freezing. That ships in PodMelody 1.1.4, a workaround for an OS bug rather than a fix - and it doesn't resolve the mismatched play/pause glyph. If you have an audio app using ApplicationMusicPlayer and CarPlay, I would be glad to know whether you see the same thing, and in which car - duplicates on the Feedback are what get these prioritised.
Replies
0
Boosts
0
Views
124
Activity
1w
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
1
Boosts
0
Views
149
Activity
1w
CarPlay: App Icon doesn't display badge count.
On the CarPlay view of our iOS app, we cannot get our CarPlay app icon to show a red badge count like our regular iPhone app icon does. This is using either UNUserNotificationCenter.current().setBadgeCount() and also relying on the content.badge value in local notifications. I see other non-Apple apps (WhatsApp for eg) can display badge counts on their icons, so know it must be possible. Our app is Driving Task category app. Is there some restriction on this category of app that would prevent badge counts showing? Is there some other user setting that would prevent badge counts showing?
Replies
0
Boosts
0
Views
95
Activity
1w
Low-latency, high-quality audio route w/wireless CarPlay?
Is there a supported way for a CarPlay audio app to request a lower-latency wireless playback route without communications-style audio processing or restricted volume behavior? .playback + .default on wired CarPlay gets you ~60ms latency route. The same on wireless CarPlay gets you ~1100ms latency. I know that wireless CarPlay can support faster connections as I have tested them. playAndRecord + .default and .playback + .voicePrompt negotiate approximately 160 ms output/presentation latency. However, on this head unit those paths have unacceptable side effects: The duplex route negotiates 24 kHz mono and removes or severely attenuates bass/haptic-engine content. The voice-prompt route alters volume semantics: steering-wheel/head-unit volume does not control our app’s level, and it appears to apply voice-oriented EQ or other processing. These routes therefore cannot substitute for full-bandwidth media playback, even though their latency is much better. 24 kHz mono would actually work for our app, if only it preserved the signal without voice/telephony EQ, bass removal, or special prompt-bus volume policy. Is there a documented, supported public API or AVAudioSession configuration (or other API even) that lets a CarPlay audio app request that kind of low-latency wireless media route? If not, is this an intentional limitation of wireless CarPlay media playback, and is there an appropriate enhancement-request path for real-time audio applications?
Replies
0
Boosts
0
Views
179
Activity
1w
CarPlay steering wheel Answer/End Call buttons not working on iPhone 17 Pro Max – buttons work over Bluetooth and with another iPhone
I’m experiencing a specific issue with Apple CarPlay and the steering-wheel phone controls in my 2026 Chery FX HEV. The problem is that when my iPhone 17 Pro Max is connected to CarPlay, I cannot answer or end phone calls using the steering-wheel Answer/End Call buttons (green/red phone buttons). The important part is that the buttons and the vehicle itself appear to be working correctly: When the iPhone is connected through Bluetooth only, without CarPlay, the steering-wheel Answer/End Call buttons work normally. When using CarPlay, I can still answer/end the call from the vehicle’s touchscreen, so calling itself works. Siri/voice control from the steering wheel works while CarPlay is active. I tested another iPhone (iPhone 14 running a non-beta/stable iOS version) in the same vehicle, and the steering-wheel Answer/End Call buttons worked correctly with CarPlay. Therefore, this appears to be specific to the interaction between my iPhone/iOS version and CarPlay rather than a defective steering-wheel button. What I have already tried I have tried: Removing/forgetting the vehicle from the iPhone and setting up CarPlay again multiple times. Removing and reconnecting Bluetooth. Restarting/force restarting the iPhone. Testing wireless CarPlay. Testing wired CarPlay using a USB cable. Testing Bluetooth without CarPlay — steering-wheel phone buttons work correctly. Testing another iPhone in the same car — the buttons work correctly with CarPlay. Testing short and long presses of the steering-wheel phone buttons. Checking Siri/voice control — this works correctly through the steering wheel. Answering calls directly from the CarPlay/vehicle touchscreen — this also works correctly. I also tried using a wired connection while attempting to remap/reconfigure the steering-wheel button, but this did not solve the problem. Any suggestions for additional troubleshooting, logs, diagnostics, or a way to reset/remap the CarPlay steering-wheel call controls would be appreciated.
Replies
1
Boosts
0
Views
199
Activity
2w
iOS 27 CarPlay section headers disappear with detail text or images
Adding an image or detail text to a CPListSection makes the whole header disappear. With no detailText or headerImage With detailText or headerImage FB24061858 open but no response.
Replies
1
Boosts
1
Views
314
Activity
2w
How can I request the Carplay Navigation entitlement?
I need the Carplay Navigation App entitlement (com.apple.developer.carplay-maps) but I can't see it listed in the Capability Request list in App Store Connect. What shoul I do to request it?
Replies
0
Boosts
0
Views
223
Activity
2w
CPListItem and CPListImageRowItem text limited to 1 line on iOS 27
On iOS 27, CPListItem.text and CPListImageRowItem.text` are rendered as single-line with ellipsis truncation, regardless of the available vertical space. On iOS 26 and earlier, these properties wrapped to 2 lines before truncating. There is no public API (numberOfLines, lineLimit, or similar) on CPListItem, CPListImageRowItem, or CPListSection to control the number of text lines. The change appears to be a platform-level rendering default with no app-side opt-out. Steps to Reproduce Create a CPListTemplate with sections containing CPListItem or CPListImageRowItem items. Set the text property to a string long enough to require wrapping. Present the template via CPInterfaceController. Run on iOS 27. Expected Results The text property should wrap to multiple lines (2-3 lines) before truncating with an ellipsis, consistent with iOS 26 behavior. Row height should adjust dynamically to accommodate the wrapped text. Actual Results The text property is truncated to a single line with ellipsis. Row height remains fixed at a larger size, creating excessive vertical spacing between items. Environment iOS 27.0 (CarPlay) - issue present Xcode 27.0 beta 4 (27A5218g) Tested on physical CarPlay head unit and CarPlay Simulator
Replies
5
Boosts
0
Views
1.2k
Activity
2w
tabbar creating issue when loading an Empty CPListTemplate
I NEED TO DISPLAY two tabs in a CarPlay TabBarTemplateBuilder: Tab 1: Initially shows an empty list with a loading message, then updates with data when API call completes Tab 2: Immediately displays proper sections with data without waiting for Tab 1 to load Issues Occurring Issue #1: Second Tab Selection Unreliable Tapping the second tab doesn't switch tabs on some devices Only swiping left/right switches tabs (workaround) Behavior is inconsistent across devices **Issue #2: Second** Tab Title Not Visible Until Tab 1 Loads Even though Tab 2 loads its data asynchronously and independently Tab 2's title doesn't appear in the tab bar until Tab 1 finishes loading and populating This creates a poor user experience with missing/delayed tab labels
Replies
0
Boosts
0
Views
1.1k
Activity
Aug ’26
CarPlay - getting Progress Indicator on Image Row Condensed Element?
In our CarPlay implementation, I've been trying to get the progress indicator to appear on an image row item using the condensed element style. Is this possible? I have been able get spinners to appear on regular list items, but not on image row condensed elements. Trying to figure out what this means from the docs for listImageRowHandler: "CarPlay displays an asynchronous progress indicator until you call the completion closure." https://developer.apple.com/documentation/carplay/cplistimagerowitem/listimagerowhandler Here is a snippet of my code for the handler: let elements = myShortcuts.enumerated().map { index, shortcut in let element = CPListImageRowItemCondensedElement( // code here... ) return element } let row = CPListImageRowItem(text: nil, condensedElements: elements, allowsMultipleLines: true) row.listImageRowHandler = { [weak self] _, index, completion in self?.operate(at: index) { completion() } }
Replies
0
Boosts
0
Views
285
Activity
Aug ’26
includeAllNetworks still breaks wired CarPlay
I'm an developer and a fans of Apple, writing because you handled a forum thread that exactly matches an issue I can still reproduce today: "VPN causes CarPlay to not work" (developer.apple.com/forums/thread/712441), filed as FB11285432 back in August 2022. Summary: When any Packet Tunnel VPN with includeAllNetworks enabled is active, wired CarPlay fails to establish a connection. The phone charges normally, but the head unit never detects CarPlay. Steps to reproduce (iPhone on iOS [iOS 26.5.2], [Volkswagen's universal in-vehicle infotainment system for the 2023 and 2024 model years] head unit, USB-C wired CarPlay): Start a VPN configured with includeAllNetworks = true (reproduced with Shadowrocket; other users report the same with ExpressVPN, Google One VPN, etc.) Plug in the USB cable Result: CarPlay never connects. Charging works. Additional observations: With the VPN off, the same phone/cable/car connects instantly, ruling out hardware. If CarPlay is established first and the VPN is enabled afterward, the existing session keeps working — only the initial handshake/discovery is blocked. Consistent with thread 712441, excluding local networks does not help. This suggests includeAllNetworks blocks the mDNS/discovery traffic on the USB virtual Ethernet interface that CarPlay needs, with no exemption available. Two questions: Is there any supported configuration that allows includeAllNetworks and first-time CarPlay connection to coexist? If not, is FB11285432 still tracked? I'd be happy to file a new Feedback report referencing it with current repro details if that helps prioritization. Thanks for your time — your forum posts on Network Extension have been invaluable in diagnosing this.
Replies
0
Boosts
0
Views
708
Activity
Aug ’26
CarPlay CPListItem.accessoryImage display incorrectly on IOS 27 beta 4
I'm testing iOS 27 and face this issue that the accessoryImage on the CPListItem is no longer shown properly. It works fine up until iOS 26.5 but on 27 it is way to small. Check attached screen shot for details. Also filed FB23903072, hope this gets fixed before iOS 27 final arrives. 🤞
Replies
3
Boosts
0
Views
817
Activity
Aug ’26
TabBar icons not displayed
Working on a CarPlay app (Driving App) and despite setting tab bar icons, they don’t display in either the simulator or two physical devices (one no older than 2024 and with a very large screen), I only see the textual description/name of the tab. Am I missing something ?
Replies
1
Boosts
0
Views
345
Activity
Aug ’26
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
1
Boosts
0
Views
1.1k
Activity
Jul ’26
CarPlay: Is vehicle microphone capture without entering communications audio mode supported for third-party apps?
Hello, I am developing a native CarPlay application and would appreciate some clarification regarding AVAudioSession behaviour when using the vehicle microphone. The application is intentionally simple and designed to minimise driver distraction. The user presses a single button on the CarPlay screen, the application performs a brief (approximately five second) audio capture, performs application-specific processing on the captured audio, displays a simple confirmation to the user, and immediately releases the audio session. The goal is to allow the driver to continue their journey with as little interaction as possible. Because the audio being captured is often originating from the vehicle’s native DAB/FM radio rather than from the iPhone itself, preserving the existing listening experience during the brief capture is fundamental to the intended design. To better understand what is supported by CarPlay, I have carried out a number of controlled experiments. Test Environment Native CarPlay application Swift AVFoundation AVAudioSession AVAudioRecorder Vehicle connected via CarPlay Vehicle playing its native DAB radio Experiment 1 Configuration Category: AVAudioSession.Category.playAndRecord Mode: AVAudioSession.Mode.default Observed Route Input: CarPlay — CarAudio Output: CarPlay — CarAudio Result Recording succeeds using the vehicle microphone. Native DAB audio is muted during recording. The vehicle changes from “Audio Volume” to “Voice Volume”. When recording finishes and the AVAudioSession is deactivated, DAB resumes normally. Experiment 2 Changed only the session mode to: AVAudioSession.Mode.measurement Result Behaviour was identical to Experiment 1. Experiment 3 Changed only the session mode to: AVAudioSession.Mode.videoRecording Observed Route Input: iPhone microphone Output: CarPlay — CarAudio Result Input automatically switched from the vehicle microphone to the iPhone microphone. The vehicle remained in normal “Audio Volume”. However, the head unit switched away from its native DAB source to the CarPlay media source. Observation These experiments appear to suggest that the behaviour is specifically related to using the CarPlay “CarAudio” microphone route, rather than audio recording itself. Question Is this the expected behaviour for third-party CarPlay applications? More specifically: Is there any supported AVAudioSession configuration or CarPlay API that allows a third-party CarPlay application to perform a brief, user-initiated audio capture using the vehicle microphone without causing the head unit to enter its communications/voice audio mode or interrupt the vehicle’s native radio playback? If this behaviour is by design and no supported mechanism exists to achieve this, confirmation of that would be extremely valuable, as it would allow us to design the application accordingly. If additional information, sample code, AVAudioSession logs or detailed reproduction steps would be helpful, I would be more than happy to provide them. Thank you very much for your time. Kind regards, Neil Jenner Developer, HearSave
Replies
7
Boosts
0
Views
1.4k
Activity
Jul ’26
CarPlay Dashboard navigation scene only appears after starting route guidance
Hi, I’m developing a CarPlay navigation app using the CarPlay Maps/Navigation entitlement. The app works correctly as a full CarPlay navigation app: The main CarPlay scene connects. The app displays a map template. Free-drive / map-following mode works in the full CarPlay app. Turn-by-turn navigation works. The Dashboard navigation scene works during active route guidance. The issue is with the CarPlay Dashboard/home screen behavior. Other navigation apps such as Waze or ABRP can appear automatically in the CarPlay Dashboard navigation widget when CarPlay starts, even when no active route guidance is running. My app’s Dashboard navigation scene only appears once route guidance has started. When no route guidance is active, the CarPlay Dashboard does not show my app as the navigation widget provider. My questions are: Is there any additional public API, entitlement, plist key, or runtime state required for a navigation app to be selected by CarPlay as the Dashboard navigation provider at CarPlay startup? Is the Dashboard navigation widget expected to launch the last-used third-party navigation app automatically, even when there is no active navigation session? Does an app need to keep some kind of navigation session, navigation metadata, free-drive state, or passive navigation session active for CarPlay to treat it as eligible for the Dashboard widget? Are there differences in this behavior between development builds installed via Xcode and TestFlight/App Store builds? Is the Dashboard navigation scene supposed to be created only during active route guidance, or can CarPlay create it for a free-drive/map-following state with no route? The relevant behavior I’m seeing is: The app works as a full CarPlay navigation app. The Dashboard scene is declared in the app configuration. The app is signed with the CarPlay Maps entitlement. The Dashboard scene appears during route guidance. Without active route guidance, CarPlay Dashboard falls back to another navigation app instead of showing my app’s free-drive map. Any clarification on the expected lifecycle and eligibility rules for third-party navigation apps in the CarPlay Dashboard would be appreciated.
Replies
3
Boosts
0
Views
719
Activity
Jul ’26
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
0
Boosts
0
Views
852
Activity
Jul ’26