Is iOS CarPlay API Public? How to Integrate CarPlay?

IosCarplay

Ios Problem Overview


Is the CarPlay API publicly available?

Where can we find a programming guide or the reference to these classes if it is?

Or will it integrate seamlessly with other APIs like Audio from AVFoundation?

Notes

  • This question is broad and may be flagged as so but please do not as though there is almost no information on the subject and a lot of people could find it useful at this stage
  • I live in Switzerland and want to go to Geneva to try out a demo app that I would write on a Ferrari lol.

Ios Solutions


Solution 1 - Ios

The MusicCarDisplayUI.framework framework is a private framework as of iOS 7.1. Taking a look at the runtime headers of the framework, one can guess why; it's just not ready yet for wide use. Whether Apple will make it public in the future is one's guess.

In the meantime, make sure to open a feature request or directly contact Apple here.


Update: If you wish to have a CarPlay-enabled app, contact Apple using this form.

Solution 2 - Ios

Update Oct, 2019:
A couple of years later, Apple opened up their designer guidelines and developer docs on CarPlay. As mentioned in some other comments as well, getting access to developer tools can be done on your mac as well.

Technically, depending on the type of app you want to be compatible with CarPlay, it requires different API's and frameworks. For example:

> The CarPlay framework is for use by navigation apps only. If you want to add CarPlay support to your audio app, use MPPlayableContentManager. For messaging apps, use SiriKit’s Messaging-related intents to support reading and sending messages in CarPlay through Siri. For VoIP calling apps, use CallKit with SiriKit’s VoIP Calling-related intents to make and answer audio calls on a CarPlay system.

Legally, however, still the MFi Program requires application and approval by Apple for you to get the appropriate permissions, signing profile etc. in order to deploy it on an actual device. Let alone release it to market. OR... you can try applying for access manually and explain your case.

Lastly, there is also some documentation on how to enable tools and simulator to work with CarPlay. For example, a small excerpt:

> CarPlay is supported by default when you run Simulator. However, you should configure the Simulator with extra options when developing a CarPlay navigation app. To enable extra options, enter the following command in Terminal before launching Simulator: defaults write com.apple.iphonesimulator CarPlayExtraOptions -bool YES.

But besides the documentation I can seriously recommend to read what the people at Flitsmeister blogged about on how to enable tooling on your local machine. Also, their road to finally getting approved was apparently tedious and far from smooth (I'm not affiliated with Flitsmeister), even though their use case is based on having lots of users (±1.5mln). Mentioning this to emphasise: CarPlay is apparently still not for the every day developer, just yet.


This question dates of early 2014. Let me update this with a mid 2016 answer:

> TL;DR - No, it is not publicly available.

In order to get the tools, documentation, technical specs and even the license itself to develop for (amonst others) Carplay, you need to be enrolled with Apple's MFi Program.

Apple's MFi Program ("Made for iPhone/iPod/iPad") is a licensing program for developers of hardware and software. This is a specific license targeted at manufacturers, mostly of "mass production" units, that has additional benefits over the regular developer accounts for companies. These benefits include hardware components, tools, docs, techsupport and of course the license that you are allowed to develop specifically for these devices and technologies, like Carplay.

The MFi Enrollment FAQ is a decent read that makes everything pretty clear. But before you get your hopes up, do note that -again- it is only available for manufacturers. Like the FAQ states:

> Q: Am I eligible to apply for the MFi Manufacturing License if my company does not own a manufacturing facility? > > A: No. The MFi Manufacturing License is intended solely for companies that own one or more manufacturing facilities.

There are some exceptions. For example if you're a contractor, or an engineering design firm, that develops MFi accessories for a client (who is a manufacturer).

But basically put, it is not for the average developer and admission is quite strict. This means, in a nutshell, that Apple Carplay is not available to developer for by the, say, 95% of us.

Solution 3 - Ios

Just worked on carplay project.

  1. You can find the api documents on apple's developer website. Like MPPlayableContentManager and MPContentItem.
  2. However only after registered on apple's website for carplay, will apple send you the "Carplay Programming Guide" telling you how to activate the car simulator and what classes to use and how to do things etc.

Solution 4 - Ios

Take a look at MediaPlayer Framework. There are a bunch of classes in there designed for CarPlay only. For example, MPPlayableContentManager, MPContentItem, etc. Obviously, you won't be able to deploy it via the AppStore without Apple's approval.

Solution 5 - Ios

Partially since iOS 12.0 : https://developer.apple.com/documentation/carplay

> The CarPlay framework is for use by navigation apps only. If you want to add CarPlay support to your audio app, use MPPlayableContentManager. For messaging apps, use SiriKit’s Messaging-related intents to support reading and sending messages in CarPlay through Siri. For VoIP calling apps, use CallKit with SiriKit’s VoIP Calling-related intents to make and answer audio calls on a CarPlay system.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionTibor UdvariView Question on Stackoverflow
Solution 1 - IosLéo NatanView Answer on Stackoverflow
Solution 2 - IosJuliënView Answer on Stackoverflow
Solution 3 - IosAaron ZhouView Answer on Stackoverflow
Solution 4 - IosBoonView Answer on Stackoverflow
Solution 5 - IosMehdi ChennoufiView Answer on Stackoverflow