Add CarPlay support to your navigation app using CarPlay.

CarPlay Documentation

Posts under CarPlay tag

92 Posts
Sort by:
Post not yet marked as solved
0 Replies
950 Views
My company already has a registered MFI member account, where can I download Carplay communication plug-in? Please provide a URL,thanks very much!
Posted
by
Post not yet marked as solved
1 Replies
569 Views
How to get list of current active CarPlay connections on iPhone programmatically ?
Posted
by
Post not yet marked as solved
3 Replies
1.8k Views
How can I show Map on carplay display in iOS 14.0 above. Is there any way to check map navigation on carplay display screen?
Posted
by
Post not yet marked as solved
5 Replies
2.7k Views
When I download my provisioning profile I can't find the com.apple.developer.carplay-audio entitlement in it. Here's what I did: For our app identifier on Apple Developer Portal in "Additional Capabilities" I enabled "CarPlay Audio App (CarPlay framework)". After that I generated a provisioning profile and downloaded it. In the provisional profile info on Apple Developer Portal I can see "CarPlay Audio App (CarPlay framework)" in "Enabled Capabilities". When I import the downloaded profile in Xcode, I can't see the CarPlay entitlement there. After I added the "com.apple.developer.carplay-audio" entitlement to my .entitlements file, I'm getting the "Provisioning profile ... doesn't include the com.apple.developer.carplay-audio entitlement.". When I'm opening the profile in my text editor, I also can't find "carplay-audio" there. Is there a way to solve this problem?
Posted
by
Post not yet marked as solved
3 Replies
736 Views
Hi, I have a media app that works fine when it is launched from the phone and the menu buttons work perfectly. However the reverse scenario does not work i.e. if the app is not launched on phone but the App icon shows up on the screen - clicking on the icon does not launch the app. Any ideas what could be going on? Thanks
Posted
by
Post marked as solved
2 Replies
1.5k Views
Assuming that I have an iOS app which is managing the payment method of the user (e.g. credit card), what is preventing me to build a CarPlay app (e.g. EV charging app) with a button that triggers the payment of the charging station? I mean, what are the advantages that will be introduced with iOS 16 that will allow the payment of gas stations from CarPlay?
Posted
by
Post not yet marked as solved
7 Replies
4.1k Views
I am trying to run my navigation app on a physical device, and want to view it using CarPlay Simulator (through XCode additional tools, NOT Hardware->Display->CarPlay), however, when I try to use the app, device has a Red dot next to it, and the simulator shows nothing. What I've tried: Running on a real CP device(my car): App works as intended, but want to run simulator so I can have live debugging Forgetting CP device and reconnecting All Steps of "Troubleshooting CP Simulator" (Updating to latest iOS, restarting phone, turn off hotspot, not connected to any other CP devices, ensure Firewall allows incoming connections) Tried both Xcode 13 CP sim and Xcode 14 beta CP sim Tried both work and personal laptops/phones Ideas: I am running on a M1 laptop, which could be messing with something. I am also running my Xcode in Rosetta(app has packages that cannot compile without Rosetta), but I don't believe this should be a problem because I am running on a physical device not Xcode simulator. Also can't run on Hardware->Display->CarPlay because of Application does not implement CarPlay template application lifecycle methods in its scene delegate and I can't figure out how to fix ("EXCLUDED_ARCHS[sdk=iphonesimulator*]"= "arm64" does not work)
Posted
by
Post not yet marked as solved
1 Replies
690 Views
Hi all, I am trying to use the new CarPlay Simulator (the one provided with the Xcode Additional Tools) to test an application that uses a protocol string. My question is: is there a way to edit this protocol string on this application? Because as of right now, my app is not shown in the CarPlay Simulator, as it does not have the required protocol string. I've used the Xcode simulator, and protocol strings can be added using: defaults write com.apple.iphonesimulator CarPlayProtocols -array-add <protocol-string> But I've not found a way to do this on the standalone application. Thank you all in advance
Post not yet marked as solved
8 Replies
6.2k Views
If I’m listening to music or podcasts in my vehicle using CarPlay (whether through usb or Bluetooth) and I open an Amazon app (amazon.com, Alexa, etc), the sound coming from my speakers changes. I don’t know how to explain it…it has less bass and is quieter…almost like listening to a record player. The AC also turns down (like if I was on a phone call). This also happens whenever I pull into my driveway. It’ll change for like 30 seconds when I get close to my house then it’ll go back to normal. I figure that has something to do with being in close vicinity to my Alexa devices in my home? Has anyone else had this problem? I have a 2022 Chevy suburban and an iPhone 13 running iOS 15.6.
Posted
by
Post not yet marked as solved
1 Replies
1.4k Views
In my app, which gives voice prompts and sound warnings while driving, I test if the audio session is connected to CarPlay in order to use CarPlay settings for AVAudioSession by doing: BOOL found = NO; for (AVAudioSessionPortDescription * portDescr in [AVAudioSession sharedInstance].currentRoute.outputs) { if ([portDescr.portType isEqualToString:AVAudioSessionPortCarAudio]) found = YES; } This has worked for several years. But now, in iOS 16, when the app is in background, it won't detect that the iPhone is connected to CarPlay most of the times by using this method. Therefore, I will set up the audio session in a way which won't play any sound to the user. I have seen this happening in other apps such as Google Maps. So my guess is that something is not working in iOS 16 an AVAudioSession in background. Has anyone experienced this? Any workaround? I tried notifications to detect a change in a route, but sometimes I wouldn't get the notification if the app was in background when connecting to CarPlay. So this workaround didn't work either. Any ideas? Thank you.
Posted
by
Post not yet marked as solved
3 Replies
1.9k Views
I am developing CarPlay addition on our app. Which is distributed with the Enterprise In distribution method, so we do not have a product in the App Store. I am wondering if CarPlay support can be provided in applications distributed with the Enterprise in distribution method? If this is not possible, I will inform management that this is not possible. I am waiting for your answers, thanks.
Posted
by
Post not yet marked as solved
3 Replies
1.3k Views
The documentation for CarPlay (https://developer.apple.com/documentation/carplay/requesting_carplay_entitlements) tells you to disable automatic signing in the section titled "Import the CarPlay Provisioning Profile": Click All in the scope bar, and then deselect “Automatically manage signing”. There have also been other posts in the past about the inability to use automatic signing with CarPlay: https://developer.apple.com/forums/thread/63468 However in a recent post of mine (https://developer.apple.com/forums/thread/717429?login=true&page=1#732392022) I was instructed how to set it up so that I could use automatic signing for the new user-assigned-device-name entitlement and it worked so I thought "Can I do the same thing for CarPlay?" and it seems to be working so far. Is automatic signing with CarPlay now possible? We have been able to use automatic signing to archive successfully and run to real devices and verify that CarPlay is working. I'm crossing my fingers that we'll be able to submit and get the build approved and never have to touch manual signing again. Hopefully it works and the documentation is just out of date.
Posted
by
Post not yet marked as solved
2 Replies
1.6k Views
Why is "CarPlay.app" text shown in Location Services? All other app listings display an icon instead of text - so this looks suspicious. It may be a bug though. Has anyone else seen this? I’ve filed this via Apple Feedback app but no response from Apple yet. Device is running iOS 16.2beta.
Posted
by
Post not yet marked as solved
3 Replies
3.2k Views
Hi I identified an issue that I cannot resolve with CarPlay. I am now rewriting an existing app that I initially created with ObjectiveC/Swift/UIKit. The new app should be super elegant, and of course SwiftUI based. The thing is, if I use the old App Lifecycle (using App Delegates or Scene Delegates) without SwiftUI, everything works fine and smooth. However, I don't really want that, but rather have a single code base and not mess with ****** workarounds. The funny thing is, if I place the @main item to the SwiftUI part, it tells me the life cycle would not be implemented, but it is. Anybody has an idea? Or this is a bug in SwiftUI / CarPlay? I was trying to find some original code reference from Apple related to SwiftUI base apps and having a CarPlay 'extension' but couldn't find any - the latest WWDC code example was still based on the old framework Thanks Marco Here are the files import UIKit import SwiftUI @main // < == if @main is here, it DOES NOT WORK fine -- using non Swift UI app cycle /*  2022-11-11 12:24:34.516461+0100 CarPlayTutorial[49059:1094508] *** Terminating app due to uncaught exception 'NSGenericException', reason: 'Application does not implement CarPlay template application lifecycle methods in its scene delegate.'  ...  CoreSimulator 857.13 - Device: iPhone 14 Pro (A32C27BF-48D7-48EA-A32B-26A6CC562201) - Runtime: iOS 16.1 (20B72) - DeviceType: iPhone 14 Pro  *** Terminating app due to uncaught exception 'NSGenericException', reason: 'Application does not implement CarPlay template application lifecycle methods in its scene delegate.'  (lldb)  */ struct testappApp: App {  @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate   var body: some Scene {         WindowGroup {             ContentView()         }     } } struct ContentView: View {     var body: some View {         Text("Hallo")     } } //@main // < == if @main is here, it works fine -- using non Swift UI app cycle class AppDelegate: UIResponder, UIApplicationDelegate {     func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {         return true     }     func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {         if (connectingSceneSession.role == UISceneSession.Role.carTemplateApplication) {             let scene =  UISceneConfiguration(name: "CarPlay", sessionRole: connectingSceneSession.role)             scene.delegateClass = CarPlaySceneDelegate.self             return scene         } else {             return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)         }     }     func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {     } } the Scene Delegate that I used, but is largely ignored is import UIKit class SceneDelegate: UIResponder, UIWindowSceneDelegate {     var window: UIWindow?     func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {         print(scene.debugDescription)         print(session.debugDescription)         print(connectionOptions.debugDescription)         guard let _ = (scene as? UIWindowScene) else { return }     }     func sceneDidDisconnect(_ scene: UIScene) {         print(scene.debugDescription)     }     func sceneDidBecomeActive(_ scene: UIScene) {         print(scene.debugDescription)     }     //... } The CarPlay delegate is this class CarPlaySceneDelegate: UIResponder  {     var interfaceController: CPInterfaceController? } extension CarPlaySceneDelegate: CPTemplateApplicationSceneDelegate {     func templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene, didConnect interfaceController: CPInterfaceController) {         self.interfaceController = interfaceController         self.interfaceController?.delegate = self     }     private func templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene, didDisconnect interfaceController: CPInterfaceController) {         self.interfaceController = nil     } } extension CarPlaySceneDelegate: CPTabBarTemplateDelegate {     func tabBarTemplate(_ tabBarTemplate: CPTabBarTemplate, didSelect selectedTemplate: CPTemplate) {     } } extension CarPlaySceneDelegate: CPInterfaceControllerDelegate {     func templateWillAppear(_ aTemplate: CPTemplate, animated: Bool) {         print("templateWillAppear", aTemplate)     }     func templateDidAppear(_ aTemplate: CPTemplate, animated: Bool) {         print("templateDidAppear", aTemplate)     }     func templateWillDisappear(_ aTemplate: CPTemplate, animated: Bool) {         print("templateWillDisappear", aTemplate)     }     func templateDidDisappear(_ aTemplate: CPTemplate, animated: Bool) {         print("templateDidDisappear", aTemplate)     } } the info plist section: <dict> <key>UIApplicationSupportsMultipleScenes</key> <false/> <key>UISceneConfigurations</key> <dict> <key>UIWindowSceneSessionRoleApplication</key> <array> <dict> <key>UISceneConfigurationName</key> <string>Default Configuration</string> <key>UISceneDelegateClassName</key> <string>$(PRODUCT_MODULE_NAME).SceneDelegate</string> </dict> </array> <key>UIWindowSceneSessionRoleExternalDisplay</key> <array> <dict> <key>UISceneClassName</key> <string>CPTemplateApplicationScene</string> <key>UISceneConfigurationName</key> <string>CarPlay</string> <key>UISceneDelegateClassName</key> <string>$(PRODUCT_MODULE_NAME).CarPlaySceneDelegate</string> </dict> </array> </dict> </dict>
Posted
by
Post not yet marked as solved
3 Replies
1.5k Views
I have an app with the "Driving Task" CarPlay entitlement. When I ask for permission for notifications in CarPlay (UNAuthorizationOptionCarPlay), and I check "carPlaySetting" in the UNNotificationSettings after granting permission, it get a value "UNNotificationSettingNotSupported" (the setting is not available to your app). Is this a bug? It feels like one. The app shows distances to some locations, and provides warnings to the user when approaching those locations. It is common for my users to use it at the same time they use a navigation app and switch between the two apps. But when they have the navigation app in foreground, they ask why my app is not showing notifications when giving an audio warning. The notifications are not even shown on the screen of the iPhone, the screen is turned off in iPhone 14 Pro when connecting to CarPlay, and the screen does not turn on when the app is in background in CarPlay and tries to show a notification.
Posted
by
Post not yet marked as solved
1 Replies
657 Views
Dear Apple, I am currently working on a project related to the CarPlay framework and I have stuck to the problem that CPGridTemplate does not work as you have written in documentation https://developer.apple.com/documentation/carplay/cpgridtemplate. "When there are more than four buttons, the template balances the display of the buttons betweem two rows." I need exact the same behavior, to have only four elements in a row. However, now it can fit up to 8 images in a row if the text below the button is short. When you keep adding more text, the grid buttons move one by one to the second row. And if there are too many text the grid can go to the third row. Why it is not strictly aligning the buttons 4 to 4 If I want an exact number of buttons in a row, how can I achieve it? Why should I depend on the text size to move my grid buttons to the next row?
Posted
by
Post not yet marked as solved
1 Replies
728 Views
I am getting badge count when we have the apns notification on carplay but notification not displayed on the carplay screen. I have set mutable-content:1 also...Is there anything else to do get notification on carplay screen. In Iphone enabled carplay notification . Please help me
Posted
by
Post not yet marked as solved
1 Replies
630 Views
CarPlay Simulator not receiving microphone input (Siri) Running carplay simulator Version 1.1 (480.26) Running on: M1 Macbook Pro running macOS Ventura 13.3.1 Connected to: iPhone 13 pro max running iOS 16.4 (20E246) When launching Siri by "Hey Siri", the, the siri indicator apppears and I am able to communicate and send a command, such as "send a text". Then, the Siri will say "who do you want to message", but it is no longer able to hear my voice as input.
Posted
by