We are currently looking into enabling CarPlay for a navigation app. The navigation app allows complex trip planning (not focussed on A-B planning like Apple Maps).
As we found the guidelines somewhat loose in this area, we are wondering, if it is allowed to have a navigation app that only offers the navigation feature, so no planning?
Any route planning actions needs to be done on the iOS device. So, if you haven't planned/loaded a route, you would only see your location on a map and can drive freely, but without guidance.
The Car App programming guideline mentions the select destination as explicit flow of a navigation app. Which makes us think that it might be required to support that flow.
Posts under CarPlay tag
113 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
Using either of these with CarPlay now the phone must remain open and unlocked and the maps must be active. Of the maps app for either of these apps gets closed, on Google Maps the map freezes and will not do anything. I also am unable to keep my phone open and unlocked using Google maps.
on Waze the maps screen just turns off if the phone is locked or the Waze app isn’t open and active. Additionally when starting Waze on the split screen where it shows music, maps, and the next turn on CarPlay, the next turn screen appears as if the Waze app is just open but not headed in a specific direction So it just says search. You have to open to the full screen Waze app on the car play screen then back to the split screen for it to work.
Google maps is effectively broken while Waze can be used with a work around. Though Waze also randomly stops the directions and goes back to just showing the maps and you have to get directions again to restart it telling you the turn by turn. Screen on phone and CarPlay just goes into the mode as if you just started Waze with no destination.
I tested the official demo, it will be the same, is there a problem with CarPlay release?
This is the code for creating a list of 50 elements
var listItems = [CPListItem]()
for _ in 0..<50 {
autoreleasepool {
var item: CPListItem
item = CPListItem(text: "标题", detailText: "标题22222", image: UIImage(named: "local_album_no"))
listItems.append(item)
}
}
let listTemplate = CPListTemplate(title: "最近播放", sections: [])
let section = CPListSection(items: listItems)
listTemplate.updateSections([section])
self.carplayInterfaceController?.pushTemplate(
listTemplate, animated: true, completion: nil)
When I exit the page, but the page does not free, causing memory to keep increasing.
I have also tested the official demo, and there are problems that will not be released.
Can you check if this is a bug in the system.
What can I do to avoid this problem?
This is the CarPlay page, and the phone is running iOS17.5
The template creation code is as follows:
CPListTemplate *listTemplate = [[CPListTemplate alloc] initWithTitle:@"最近播放" sections:sections];
listTemplate.delegate = self;
[_interfaceController pushTemplate:listTemplate animated:YES completion:^(BOOL success, NSError * _Nullable error) {
}];
sections have many CPListItem.
When I exit the page, but the page does not free, causing memory to keep increasing.
I tried to refresh empty sections after exiting the page and memory freed for me, which confused me.
Do we have to manage the memory ourselves?
My code is as follows
[_interfaceController pushTemplate:template animated:YES completion:^(BOOL success, NSError * _Nullable error) {
}];
push a template, and the memory will increase accordingly, but after clicking exit, the memory will not drop down, resulting in continuous accumulation
And my page is a list, each item contains an image, memory is growing very fast
Does template need to manage memory by itself?
My Iphone is connected to the car via wireless carplay. Technically, the onboarding works via bluetooth, then via the car's hotspot (SSID from the car).
I have noticed that an SSID appears under the "known networks" that has no name.
The SSID can no longer be deleted, not even with a network reset on the Iphone. I asked my car dealer if he could reproduce the problem with his Iphone and another car. And he can! So it's not my device, it's an Apple problem. To be precise: The fact that you can no longer delete the SSID is Apple's problem, why the car stores an SSID without a name on the Iphone when connecting is possibly the problem of the car manufacturer. Here are a few more screens on this case.
Hi,
we are developing a carpooling app. In our app, once, the car driver enters his car, the app connects automatically in the background to the car. The connection to the car is done either via CarPlay or Bluetooth. Currently, when setting up the app, the user has to define how the connection to the car is established. He can choose between three options: either 1)CarPlay, or 2)Bluetooth or 3)both.
Is it correct, that starting with the AccessoyKit of IOS18, the user will only have to choose the device, he wants the app to be connected with? However, he no longer has to define the kind of connection, i. e. CarPlay or Bluetooth by which to connect to the device?
So in future, users will be able to connect to their Car, but they do not even know, whether the connection is via Bluetooth or CarPlay?
If that is the case, it would make our lives much easier;)
Many thanks for your help!
Greets, Simon
Is there a reason why the active mute indicator is different between CarPlay and iPhone? The iPhone active mute indicator is a button with a white background and a red icon whereas the CarPlay active mute indicator is a button with a white background and black icon.
We make a CallKit app that supports CarPlay and that's how this was noticed, however the Apple phone app behaves the same. I suspect this is intentional as to cut down on distractions for drivers.
Any further explanation would be appreciated.
Thanks
I’ve been using iOS beta 3 for a few days, and I’ve began to notice that I am not able to send messages through CarPlay. At first, I thought it was a bug with my phone, so I restarted it. Then, I removed my car from CarPlay and reconnected, then connected it to a family members car and still have the same issues.
The issue being whenever I try to send a message using Siri, she replies with “There is not an app for that, download one when not in the car.” Or something along those lines. If anyone else is having the same issue, or knows a fix, please let me know.
I have the CarPlay Entitlement "Driving Task" and two of my apps use it.
Now, in both apps, I have implemented Navigation. I requested the Navigation CarPlay Entitlement when the feature was mature and builds were available in Test Flight, since I wanted to release the new versions of the apps with navigation available both on the iPhone and in CarPlay.
I got no answer to my request, so I decided to release the apps with only navigation in the iPhone and the Driving Task functionality in CarPlay, thinking that maybe being live with navigation in the App Store was a requirement. I have asked permission again, and so far, the request is being ignored again.
What are the requirements to get the Navigation CarPlay Entitlement?
If the app is approved for navigation, is there something else the app must do to get the entitlement?
Requirements for CarPlay Entitlements seem quite obscure, are they listed anywhere?
Is there a technical problem to move from an existing CarPlay Entitlement to another? Can that be the reason the entitlement has not been granted?
Some of my competitors have the CarPlay Navigation entitlement. My use case is the same (in a better app in my opinion, of course). But I am only getting bad reviews because "the app does not include the map in CarPlay" after the big investment in implementing navigation in the apps.
Any help or insight would be appreciated.
Greetings,
I am currently conceptualizing an application designed to interface with Carplay, enabling control over aftermarket automotive fragrance systems and ambient lighting within vehicles. Having perused your development guidelines, I am interested in understanding how my project might be classified within your framework. Specifically, I am exploring whether it would be appropriate to categorize this endeavor under the 'Driving Task' category, given its direct interaction with the vehicle environment.
Your insights on this matter would be greatly appreciated.
Best regards!
I am working on a communications CarPlay app and am implementating a calling tab. I want to display calls that are missed in red text vs answered in the default text color. Is there a way to change the color of CPListItem.text or is this not allowed by design?
Hi,
I'm trying to investigate if there is any way to have an app that displays an automaker app when the Carplay environment has the automaker protocol string, and displays a Carplay App (Driving Task) when there isn't the automaker protocol string.
I was able to start developing an automaker app, but with an iOS16.0 deprecated method (with UIScreen Notifications), I'm not able to do it via the scene delegate... There is any kind of documentation of how to do it?
I think the clue may be in the scene delegate with the property Preferred Default Scene Session Role, where I think the automaker app is a Window Application Session Role, but the scene delegate is not triggered when I open the Carplay App in the simulator.
So am I missing something? Is there a way to do it or have I to publish two apps in order to use the two kind of carplay apps... ?
Thank you very much.
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.
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.
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.
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.
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
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?
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.