59

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.
Léo Natan
  • 56,823
  • 9
  • 150
  • 195
Tibor Udvari
  • 2,932
  • 3
  • 23
  • 39
  • 1
    No, this API is currently not public. It's most likely invite only, basically like Apple TV. I doubt that it will work but if you have a really awesome idea you might get access to car play (and we might see you on stage during wwdc) if you pitch your idea to Apples developer relations. This will most likely lead nowhere, but as they say: if you don't try you will never know. ;-) – Matthias Bauch Mar 13 '14 at 07:46
  • hmm, Geneva, Carplaydemo and Ferrari, Super jealous dude, but unfortunately `Carplay APIs` aren't published yet. – Tarek Hallak Mar 13 '14 at 07:50
  • It's not true - CarPlay API is published in iOS 7.1, via MediaPlayer framework. https://developer.apple.com/library/ios/documentation/MediaPlayer/Reference/MediaPlayer_Framework/_index.html – Boon May 14 '14 at 18:13
  • @Boon I just skimmed the doc of the MediaPlayer framework. From what I understand it can be used for media playback; which I am guessing would work with a car. This is definitely useful to know, but the question was referring more to the ability of your app to be able to be shown in a CarPlay UI, potentially playing back something different than in your sound lib. For example a twitter feed reader that shows the current tweet being read. From the MP library I am not seeing anything being able to do that. Please correct me if I'm wrong. – Tibor Udvari May 15 '14 at 06:20
  • @TiborUdvari I could be wrong but I don't think CarPlay is designed to be used as a general platform because there are driving safety concerns and regulations. As such, your Twitter ability probably won't pass the approval even if you can do it. That said, perhaps things will move slowly, going from media to other things. – Boon May 15 '14 at 16:39
  • Hey Tibor, Can you guide me how to start Integrating Car play in an existing iOS app? – Sundeep Saluja Feb 08 '16 at 07:04

5 Answers5

23

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.

Léo Natan
  • 56,823
  • 9
  • 150
  • 195
23

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.

Juliën
  • 9,047
  • 7
  • 49
  • 80
  • How we will develop application which support car play features? Is there any SDK available for it or we have to use Xcode itself? @Moriarty – Gajendra Rawat Dec 07 '16 at 09:25
  • @morroko Request the MFi license and Apple will guide you with appropriate tooling for it. If you're not eligable for that license, then you are out of luck the official way. – Juliën Dec 07 '16 at 11:15
  • Is MFi license also required for developing iOS appfor Car Play or only required for Car Play Hardware? – Gajendra Rawat Dec 07 '16 at 11:25
  • 1
    You do not have to enrol to the MFI program to create a CarPlay app. You need to have an existing app on the App Store that is either an audio, map or messaging app. Then you have to do is go to https://developer.apple.com/contact/carplay/ and tell Apple why your app is a good CarPlay candidate. Then if you are accepted you will get the programming guide and entitlements so that you can build to device. – Sebbo May 15 '19 at 10:31
6

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.
Aaron Zhou
  • 71
  • 1
  • 4
  • Were you able to test carplay app on actual device? Actually I am able to test on carplay simulator, But I did not see my app on actual head unit device. – Sundeep Saluja Oct 31 '18 at 10:06
  • @SundeepSaluja Make sure you have added the Apple-provded 'CarPlay' entitlement to your provisioning files. This is required for the icon to show app. – DrMickeyLauer Feb 05 '19 at 16:27
  • I will update it to the current times. Point 2 is here: https://developer.apple.com/carplay/documentation/CarPlay-Navigation-App-Programming-Guide.pdf – Nat Aug 05 '19 at 13:02
5

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.

DrMickeyLauer
  • 4,455
  • 3
  • 31
  • 67
Boon
  • 40,656
  • 60
  • 209
  • 315
2

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.

Mehdi Chennoufi
  • 2,193
  • 2
  • 11
  • 16