Add CarPlay support to your navigation app using CarPlay.

Posts under CarPlay tag

113 Posts
Sort by:

Post

Replies

Boosts

Views

Activity

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
350
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
559
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
335
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
642
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
551
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
492
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
672
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
1.2k
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
834
May ’24
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
500
Feb ’24
Apple Classical in CarPlay?
[posted January 30, 2024] Earlier this month, Apple Classical appeared as an app in CarPlay. Hallelujah!!! Three days later it disappeared after another update, apparently because all it did when activated via CarPlay was crash. OK, it was an oopsie (I get it. I spent 30 years in IT, and, well, it happens. They’re called “undocumented features”). Thing is: Apple hasn’t breathed a word about this event at all. Nothing. Nada. Zip. Zippo. Zilch. There’s a huge pent-up audience for this app in CarPlay. Is it coming? Please? Oh please oh please oh please?
1
0
842
1w
CarPlay call continuation on disconnection
Hi, We are developing an infotainment system that includes a wireless CarPlay. Can someone confirm the expected behavior when a device connected via wireless car play should do in the below scenario. iPhone connected through wireless car play and projection is active in he CarPlay projection a call is going on. Car play gets disconnected when user switches off the WiFi. After these steps , should the call only continue on the phone or should the connected get transitioned to HFP ( Hands free profile) and call continue though the head unit in the car. Do note, WiFi is switched OFF in phone so CarPlay can't restart without user switching it back ON
0
0
531
Feb ’24
Instrument cluster don't appear in a car
I'm working on Instrument cluster support for our CarPlay app. We already supported Dashboard and its working well. On the CarPlay simulator I see my Instrument cluster ok, but on the real car - not. I think, that were Apple Maps appear in Instrument Cluster - there and others app with Instrument Cluster support have to show, right? On the same car I see that Apple Maps showing in Instrument Cluster, but not my app. I've done everything from this video <key>CPSupportsInstrumentClusterNavigationScene</key> <true/> and even <key>UIApplicationSupportsMultipleScenes</key> <true/> What's else have to be done for showing my app in the Instrument Cluster?
0
1
716
Jan ’24
Driving Task Crash When Adding Action Sheet or Alert
I have a driving task app and am trying to show a CPActionSheetTemplate or a CPAlertTemplate. Both of these are crashing showing: Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unsupported object <CPActionSheetTemplate: 0x6000030319e0> <identifier: C744031B-99F6-4999-AF19-6ED43140502B, userInfo: (null), tabTitle: (null), tabImage: (null), showsTabBadge: 0> passed to pushTemplate:animated:completion:. Allowed classes: {( CPSearchTemplate, CPNowPlayingTemplate, CPPointOfInterestTemplate, CPListTemplate, CPInformationTemplate, CPContactTemplate, CPGridTemplate, CPMapTemplate )}' This is very strange, because in the docs all app types are allowed to show ActionSheets and Alerts. Why is this crashing?
1
0
679
Jan ’24
CPListImageRowItem customisation
Hi I was trying to design the above UI, But using the below code of CPListImageRowItem func templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene, didConnect interfaceController: CPInterfaceController) { self.interfaceController = interfaceController // Create a list row item with images let item = CPListImageRowItem(text: "Category", images: [UIImage(named: "cover.jpeg")!, UIImage(named: "cover2.jpeg")!, UIImage(named: "discover.jpeg")!, UIImage(named: "thumbnail.jpeg")!]) // Create a list section let section = CPListSection(items: [item]) // Create a list template with the section let listTemplate = CPListTemplate(title: "Your Template Title", sections: [section]) // Set the template on the interface controller interfaceController.setRootTemplate(listTemplate, animated: true) } I was getting only header and below image items but detailed text under images are no way to set. can any one help me out of this
1
1
832
Jan ’24