Add CarPlay support to your navigation app using CarPlay.

Posts under CarPlay tag

91 Posts
Sort by:

Post

Replies

Boosts

Views

Activity

The next generation of CarPlay
Hi, We saw the next generation of CarPlay architecture in the WWDC24 video. It's so amazing and exciting! But in the latest CarPlay spec. R9 and Communication Plug-in R18A, we do not find information about the new capabilities such as the next generation CarPlay UIs and compositor. When can we get the documentation and codes for the next-generation CarPlay on the MFi Portal? Thanks.
0
0
59
3d
Carplay CPTabBarTemplate custom icons
Hello, I am a product designer trying to understand the UI design limitations of CarPlay. I am designing a scene where a CPTabBarTemplate will appear. From what I can read in the CarPlay development documentation, I understand that it should be possible to assign a custom icon for each tab with tabImage: UIImage?, if I am not mistaken. However, any reference I have found always uses SF Symbols, which makes me wonder if they can actually be customized. And on the other hand, if they are customizable, could any PNG be used for the tab that might compromise the driver's safety? Thank you in advance.
1
0
197
3d
Carplay Developer Documentation with examples
Hello, I am a product designer trying to understand the UI design limitations of CarPlay. Since CarPlay renders templates in a single way and there isn't any option to change any component, is there any way to see in the documentation how that component will look once rendered? For example, if I want to incorporate a primaryButton: CPTextButton? in my CPPointOfInterest. How could I know how each CPTextButtonStyle will be displayed? Is there an accessible place where I can check how each component will be visualized? Thank you in advance.
0
0
147
4d
Carplay Design Resources
Hello, I am a product designer and I am currently working on a project that incorporates functionalities in CarPlay. Given the UI limitations that exist for app development with CarPlay, are there any pre-designed templates in Figma or any other resources that can be used to design the screens? This way, I can adhere to those templates knowing what the limits are. Thank you very much for your attention.
1
1
279
5d
"Error: Intent of type INStartCallIntent is not supported for this app category"
I am trying to make a voip car play app using siri let assistant = CPAssistantCellConfiguration(position: .top, visibility: .always, assistantAction: .startCall) let siriTmeplate = CPListTemplate(title: "Siri", sections: [sectionItems, loadingSection], assistantCellConfiguration: assistant) siriTmeplate.tabSystemItem = .recents siriTmeplate.showsTabBadge = false Using the above code gives me the error "Error: Intent of type INStartCallIntent is not supported for this app category" on app luanch I have INStartCallIntent in my apps info plist and I have all the entitlements and I have "business" as the app category, I can fine 0 help online with this. what does this error really mean and how can I fix it please
2
0
115
6d
CarPlay integration for a VoIP app without a template
Our VoIP app already implements CallKit and Siri. So, within the iPhone, we can start calls using Siri. These are prerequisites for the CarPlay integration. Our deployment target is iOS 14, so to integrate CarPlay, the implementation of scenes is a requirement. However, our app should remain a single-window app. So, I've implemented scenes adding a single main scene. When I tap on my app in the CarPlay Simulator, it opens a blank window. Then, it crashes with the error: "Application does not implement CarPlay template application lifecycle methods in its scene delegate." All the third-party VoIP apps I've tried, instead of opening a window, ask you through Siri who you would like to call. So, it seems to be possible to avoid implementing a CarPlay template and just activate Siri. How can I obtain this behavior?
2
0
152
1w
CarPlay - CPListItem long text going over chevron indicator
I'm using CPListItem to display different items in CarPlay, things like Addresses that the user can navigate to for example. Sometimes these addresses are too long and go over the chevron indicator. I was trying to find a way to truncate the title, or use lineBreakMode similar to labels but couldn't find a way to do so. Any help is appreciated here. See the screenshot below for more details on the problem.
1
0
174
2w
CarPlay Simulator Accessory Not Support
This issue is a bit strange. On one machine at work, attempting to use the Xcode 15.0 CarPlay simulator results in devices saying "Accessory Not Supported". The redesigned 15.3 simulator crashes on launch. We have tried 5 different phones with USB C, Lightning to USB C, Lighting to USB A, etc and the same result occurs on all of the above. Taking the same phones and cables to 4 other laptops works fine. The non functioning machine connects to any other USB device just fine. We even tried different partitions, installing Xcode, different macOS versions, etc. There are some suspicious parts of the log on the non working machine: default 09:18:10.075726-0400 mobileactivationd Client certification requested by CarPlay Simulator error 09:18:10.088862-0400 CarPlay Simulator Failed to obtain valid certificates from server: <private> error 09:18:10.103753-0400 CarPlay Simulator Incoming message ID 0xaa04 AuthenticationFailed and error 09:18:09.452387-0400 CarPlaySimulatorDeviceLink RemotePairing.framework is not available. default 09:18:09.452419-0400 CarPlaySimulatorDeviceLink RemotePairing.framework not found. Meanwhile the working machines according to Activity Monitor is loading /Library/Apple/System/Library/PrivateFrameworks/RemotePairing.framework/Versions/A/RemotePairing just fine. The non working machine does have that file on disk, so that's not the issue. The non working machine is a 2019 i9 16" MBP. Working machines include a 2018 i7 13" MBP, 2021 M1 Max 16" MBP, and 2020 M1 13" MBP.
0
0
145
May ’24
I'm developing a CarPlay music app and encountering a crash when trying to present a CPActionSheetTemplate using presentTemplate on the CPInterfaceController in iOS 15.2. The app functions as expected on iOS 17*.
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unsupported object <CPActionSheetTemplate: 0x600000883720> <identifier: 154853B1-42C9-4A2E-A2AA-8431664FCDC4, userInfo: (null), tabTitle: (null), tabImage: (null), showsTabBadge: 0> passed to presentTemplate:animated:completion:. Allowed classes: {( CPGridTemplate, CPListTemplate, CPNowPlayingTemplate, CPTabBarTemplate, CPAlertTemplate, CPVoiceControlTemplate )} Thanks in advance!
2
0
282
May ’24
Carplay Pin Image Anchor Point
When setting a custom pinImage on a CPPointOfInterest the anchor point is in the center of the image, the default pin is positioned so that the bottom of the pin is at the point on the map as expected In an attempt to resolve this issue we have modified our custom pin images in code to offset them to add transparency so that the bottom of the pin locates correctly on the map This however has introduced issues with how CarPlay resizes the icons, we are of course correctly utilising the carTraitCollection to get the information we need for the screen scale of the CarPlay device and using that in the UIGraphicsImageRendererFormat Is there a way to correctly set the anchor point of a custom pinImage on CPPointOfInterest?
0
0
157
May ’24
CPGridTemplate/ CPListImageRowItem support on iOS13
I want to create a CPListImageRowItem/CPGridTemplate for the audio app which supports from iOS 13. for iOS14 and above I can able to do that with CPGridTemplate/ CPListImageRowItem but in iOS 13 how can we do? Because to support audio app from iOS13 I am using MPPlayableContentManager. So, are we able to achieve it iOS 13? Grid Should look like below image Please Suggest any way to achieve this kind of design? Thanks in advance.
1
0
344
Apr ’24
Adding CarPlay support for audio app below iOS14
I am Trying to build a audio app which supports from iOS 13 and above. iOS 13 - com.apple.developer.playable-content, iOS 14 - com.apple.developer.carplay-audio I have added above entitlements to support my app for below and above iOS 14 version. <key>UIApplicationSceneManifest</key> <dict> <key>UIApplicationSupportsMultipleScenes</key> <false/> <key>UISceneConfigurations</key> <dict> <key>CPTemplateApplicationSceneSessionRoleApplication</key> <array> <dict> <key>UISceneClassName</key> <string>CPTemplateApplicationScene</string> <key>UISceneConfigurationName</key> <string>CarPlay</string> <key>UISceneDelegateClassName</key> <string>$(PRODUCT_MODULE_NAME).CarSceneDelegate</string> </dict> </array> <key>UIWindowSceneSessionRoleApplication</key> <array> <dict> <key>UISceneClassName</key> <string>UIWindowScene</string> <key>UISceneConfigurationName</key> <string>Phone</string> <key>UISceneDelegateClassName</key> <string>$(PRODUCT_MODULE_NAME).PhoneSceneDelegate</string> </dict> </array> </dict> </dict> </dict> </plist> This is how I added UIApplicationSceneManifest but problem here is that when we launch app on below ios14 im getting "Unable to Connect Error" But if i add maps support entitlements i can able to render Grid or list templates. So My question is how to add support for below and above iOS14 versions for audio app in same code base. Thanks In advance.
2
0
314
Mar ’24
CPInterfaceController dismissTemplate(animated:, completion:) does not release presented CPTemplate from memory
Description I present a template to the CPTemplateApplicationSceneDelegate with CPInterfaceController presentTemplate(, animated:, completion:). After this there are two ways to dismiss the template: In case the presented template has a built-in "Cancel" / "Back" button (like CPVoiceControlTemplate), by pressing the button the template disappears. You can call CPInterfaceController dismissTemplate(animated:, completion:), which could be connected to some underlying logic. Calling this also makes the template disappear correctly. The issue can be seen in the Debug Memory Graph under the CarPlay section. In case: After I dismiss the template by pressing the built-in button the presented template GOES OUT OF MEMORY (disappears from the Debug Memory Graph). After I dismiss the template with the given function the presented template REMAINS IN MEMORY (stays in the Debug Memory Graph). This is an unexpected behaviour in my opinion. If I recreate the template before presenting it, a new instance is added to the memory every time. In case of CPVoiceControlTemplate I had animated images in my voiceControlStates. These images take up significant memory and by always remaining in the memory leads to a memory issue. My expectation is that both the built-in button press and the dismissTemplate(animated:, completion:) function should release the template from the memory. Reproduction: A: Present a CPVoiceControlTemplate with CPInterfaceController.presentTemplate(). Press the built-in "Cancel" button in top leading corner of the template. Check Debug Memory Graph under CarPlay section. ➡️ CPVoiceControlTemplate is NOT PRESENT in memory ✅😎 B: Present a CPVoiceControlTemplate with CPInterfaceController.presentTemplate(). Call CPInterfaceController.dismissTemplate() after a timeout. Check Debug Memory Graph under CarPlay section. ➡️ CPVoiceControlTemplate is PRESENT in memory ❌😞 Source code // // CarPlaySceneDelegate.swift // EVNavigationCarplay // // Created by Ákos Morvai on 2023. 02. 21.. // import CarPlay import UIKit class CarPlaySceneDelegate: NSObject { var interfaceController: CPInterfaceController? private func presentTemplate() { let template = CPVoiceControlTemplate(voiceControlStates: []) interfaceController?.presentTemplate(template, animated: true, completion: nil) DispatchQueue.main.asyncAfter(deadline: .now() + 5) { [weak self] in self?.interfaceController?.dismissTemplate(animated: true, completion: nil) } } } extension CarPlaySceneDelegate: CPTemplateApplicationSceneDelegate { func templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene, didConnect interfaceController: CPInterfaceController, to window: CPWindow) { self.interfaceController = interfaceController presentTemplate() } func templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene, didDisconnect interfaceController: CPInterfaceController, from window: CPWindow) { } } extension CarPlaySceneDelegate: CPTemplateApplicationDashboardSceneDelegate { func templateApplicationDashboardScene(_ templateApplicationDashboardScene: CPTemplateApplicationDashboardScene, didConnect dashboardController: CPDashboardController, to window: UIWindow) { } func templateApplicationDashboardScene(_ templateApplicationDashboardScene: CPTemplateApplicationDashboardScene, didDisconnect dashboardController: CPDashboardController, from window: UIWindow) { } } Debug Memory Graph after programmatic dismiss Affected Xcode version I currently use Xcode 15.2 but it happened in earlier versions as well.
0
0
324
Mar ’24
iOS 17 CarPlay message notification navigating to app instead of announcing messages
After the update to iOS 17, tapping on message notification shown on CarPlay Dashboard is navigating to the CarPlay app instead of announcing the message notification. Announce Notifications turned ON Announce Messages turned ON Announce New Messages option is selected Other apps message notifications are announced as expected when tapping on the notification implying that the settings are set as required. Enabled com.apple.developer.carplay-communication Class CustomCarPlaySceneDelegate: UIResponder, CPTemplateApplicationSceneDelegate { func templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene, didConnect interfaceController: CPInterfaceController) func templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene, didDisconnectInterfaceController interfaceController: CPInterfaceController) func scene(_ scene: UIScene, willContinueUserActivityWithType userActivityType: String) }
0
0
500
Mar ’24
CarPlay present CPActionSheetTemplate Crash
Application Specific Information: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unsupported object <CPActionSheetTemplate: 0x2819a4480> <identifier: CD077C44-7F3F-46CC-B713-35A0259124EA, userInfo: (null), tabTitle: (null), tabImage: (null), showsTabBadge: 0> passed to presentTemplate:animated:completion:. Allowed classes: {( CPAlertTemplate, CPVoiceControlTemplate, CPGridTemplate, CPListTemplate, CPNowPlayingTemplate, CPTabBarTemplate )}' [[NMCarPlayEventManage shareManage].carplayInterfaceController dismissTemplateAnimated:NO]; [[NMCarPlayEventManage shareManage].carplayInterfaceController presentTemplate:sp animated:YES];
2
0
801
Mar ’24
Launching iPhone app when CarPlay app opened
A feature of my CarPlay navigation app requires the iPhone app to be open, or recently backgrounded, to function. It requires access to the AppDelegate. Is there any way to quietly launch the iPhone app in the background from CarPlay. I have tried deep linking, but the action of opening the URL requires the iPhone app to be active in the first place.
3
0
472
3w
Apple Maps turn by turn voice on CarPlay only in mono
Hi! I'm sorry, if this is the wrong place to ask this. Please advice if you know a better place. I recently bought a new Hyundai which comes with CarPlay. When I connect my iPhone with a cable, CarPlay is running fine and the Music is played in stereo on the car's speakers. But when I start Apple Maps I can hear turn by turn voice commands in German. But they are only played in mono on he box next to the driver's seat. They are not played anywhere else, but the music stops for all boxes. I tried to figure out, what the issue can be and how to communicate the issue to Apple. So I think it's related to this thread: https://forums.developer.apple.com/forums/thread/732202 Anything I can do? Is there a hidden setting to change that? For me it feels like a bug, I doubt that this is expected. Thank you!
0
0
381
Feb ’24