Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is iOS CarPlay API Public? How to Integrate CarPlay?

Tags:

ios

carplay

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.
like image 253
Tibor Udvari Avatar asked Mar 13 '14 07:03

Tibor Udvari


People also ask

How do you integrate CarPlay?

CarPlay IntegrationUse scenes to present your app's content on the vehicle's built-in screen. Make your CarPlay-enabled apps compatible with older system versions, such as iOS 13 and earlier. Configure Simulator to run and debug your CarPlay-enabled app. A CarPlay scene that controls your app's user interface.

How do I make an app compatible with Apple CarPlay?

To get it you must create a query and provide information about your app, including the CarPlay app category. You must also agree to the CarPlay Entitlement Addendum. Apple company will consider your request and in case your app fits the criteria for a CarPlay app, you will get permission to create an app.

How do I add Apple CarPlay to my car?

Simply connect your iPhone or Android to the INTELLIDASH+ via the USB port to enable CarPlay or Android Auto. It even charges your smartphone while you drive. This model is fully compatible with your smartphone's AI voice assistant — use it to make calls, play music, and more.

How do I enable CarPlay on iOS?

If your car supports wireless CarPlay, press and hold the voice command button on your steering wheel to set up CarPlay. Or make sure that your car is in wireless or Bluetooth pairing mode. Then on your iPhone, go to Settings > General > CarPlay > Available Cars and choose your car.


2 Answers

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.

like image 113
Juliën Avatar answered Sep 20 '22 00:09

Juliën


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.

like image 38
Léo Natan Avatar answered Sep 20 '22 00:09

Léo Natan