I have an iOS 17+ app (SwiftUI lifecycle, @UIApplicationDelegateAdaptor) with the granted com.apple.developer.carplay-communication entitlement. It's a voice-message app for family (leave/listen to short audio messages).
The app does not appear in Settings → General → CarPlay, nor on the CarPlay Home grid, on a real head unit — across multiple TestFlight builds and full phone reboots. The iPhone app itself launches fine.
Verified:
- The App Store distribution provisioning profile carries com.apple.developer.carplay-communication.
- The build is signed with that entitlement.
- Info.plist declares a CPTemplateApplicationSceneSessionRoleApplication scene with UISceneClassName = CPTemplateApplicationScene, a UISceneConfigurationName, and UISceneDelegateClassName pointing to a CPTemplateApplicationSceneDelegate.
- The delegate synchronously sets a root CPListTemplate in templateApplicationScene(_:didConnect:).
My questions:
- Does a CarPlay Communication app require SiriKit messaging support (INSendMessageIntent, INSearchForMessagesIntent, INSetMessageAttributeIntent, the Siri entitlement, NSSiriUsageDescription, INIntentsSupported) in order to be registered/shown on the CarPlay dashboard? My app currently uses custom CPListTemplate rows with a direct audio recorder and no SiriKit intents.
- How can I confirm whether the App Store / TestFlight–re-signed build actually carries the carplay-communication entitlement at runtime?
- For an audio-message app that must never transcribe audio, is INOutgoingMessageType.outgoingMessageAudio the correct approach, and should playback use the SiriKit read flow rather than CPNowPlayingTemplate (which appears to require the Audio entitlement)?