Arduino on Xcode Project — Official Thread

embedXcode on Dangerous Prototypes!

Read at

Please find the new release of embedXcode

Sep 01, 2012 • Support for Arduino Leonardo

As the Arduino Leonardo requires a specific reset procedure due to its ATmega32U4, I had to develop a reset script in Python.

Also included in this release, support for Xcode 4.4.1 and for newly released Energia 0101E0008 and a fix for GraphWiz 2.28 crashing on Mountain Lion.

As always, find documentation and download at

New! Installation Package

embedXcode is now installed with a standard installation package. Installation is faster and easier.

The Installation Guide and User Manual has changed for User Manual.

The package includes the templates, the code snippets, and the User Manual.

Find it at the download page!

As Arduino 1.0 is now stabilised and wide-spread, should embedXcode continue to support Arduino 23?

Answer the poll :)

Please note this is not going to affect other platforms, like chipKIT MPIDE which is still based on Arduino 23 and continues to be supported as it.

Thank you for your input. The poll opens for one week.

Dear avenue33, I'm a complete newbie on Xcode but since I wanted to have a bit more advance IDE than the Arduino provided one and I'm on a Mac, I went for Xcode and your template embedXcode. I've tried to follow your installation guide but I must say it could be more extensive when it comes to where a certain dropdown menu is instead of just saying "the dropdown menu", like on page 37 when selecting a target. And the pictures could also be of higher resolution so one can actually se what's written in them. But I'm not just wining, I'm giving you hopefully constructive feedback because I really want this to work! :)

Also, when I build the default code in a new project I get the following error message: Argument list too long: recursive header expansion failed at /Applications/

And loads of messages of the following type: Warning: no rule to process file '$(PROJECT_DIR)/TestOfXcode/Arduino/cores/arduino/Arduino.h' of type sourcecode.c.h for architecture i386

Any hints to get in the right direction?

Dear Hasse,

What is the target selected?

According to the message, it seems the Index target is selected.

The Index target is a dummy target and should not be used. It always throws the error you mention.

Please select the Build target to compile only, and the All target to compile and upload.

About the quality of the images, the full quality PDF is 6 GB. I'm obliged to reduce the size because the host for the website limits the size of the files. Uploading larger files would require a non-free plan.

Please don't consider my user manual is an introduction to Xcode. There are excellent books about Xcode: for example, I recommend Xcode 4 Unleashed by Fritz F. Anderson I've purchased thanks to contributions.

The user manual I wrote only focuses on how to use the template. Xcode, like all other professional IDEs —to name a few: Visual Studio, Eclipse, NetBeans, Qt, ...—, has a steep learning curve. The magic of the Arduino IDE relies in its instant plug-and-play gratification.

As a matter of fact, I'm still using the Arduino IDE when I don't need the power of Xcode.

Thanks for the quick reply! :) Yeah, once I got the target right it all works like a charm! Cheers

New release 16 of embedXcode supports the FraunchPad MSP430FR5739.

embedXcode • Sep 25, 2012 release 16 • Support for FraunchPad

The Document target now builds a PDF file along with HTML and docset files.

Documentation is here and download there.

Obsolescence Notice The following features are planned to become obsolete in a future release:

  • Support for Arduino 0023 is planned to be be discontinued.
  • The code for multiple platforms is managed in two ways: the MCU variables like AVR_ATmega328P and the IDE variables like ARDUINO=101. The MCU variables are going to be suspended in favour the IDE variables. This enables a more compact code and an easier maintenance.

Has this latest version:

embedXcode • Sep 25, 2012 release 16 • Support for FraunchPad,

been tested with xCode 4.5?


Yes, it is compatible with Xcode 4.5 and even 4.5.1 :)

Updated User Manual and Support for Xcode 4.5.1

I updated the user manual based on the feed-back I've received about the following two sections: installation and target selection.

embedXcode now supports Xcode 4.5.1.

The package includes the templates, the code snippets, and the User Manual.

As always, documentation is here and download there!

I've downloaded the latest guide and embedXcode after downloading the Arduino 1.0.1 IDE, but I'm a little lost as to where my Sketchbook\Libraries folder is (mentioned on page 23). When I launched Arduino, it created a ~\Documents\Arduino directory, but seemingly nothing else.

I see in the guide and this forum that 1.0 is supposed to be supported, and with 1.0.1 being a minor point release, I figured perhaps it would be fine. Is 1.0.1 not supported?

I loaded 1.0 and then re-ran the embedXcode installer. I still have no "Library" or "Libraries" folder under that Sketchbook path.

Any ideas where I must have gone off the road?

Thank you all for your dedication and time.


embedXcode supports Arduino 1.0.1.

The Sketchbook/Library folder is not created by embedXcode but managed by the Arduino IDE.

Please refer to Installing Additional Arduino Libraries on how to install the Sketchbook/Library folder.

Once the Sketchbook/Library folder exists, - run Arduino - and define the path of the sketchbook in the menu Arduino > Preferences > Sketchbook location as explained page 6.

Now, launch embedXcode, create a new project and follow the instructions page 22: - Open the Sketchbook group on the project hierarchy. Right-click to obtain the contextual menu. - Choose Add file to... - ?Select the Library sub-folder on the sketchbook folder, tick Add to target > Index and validate with Add.

Xcode is a whole new environment and, as other advanced IDEs, requires some learning. I recommend the book Xcode 4 Unleashed by Fritz F. Anderson I've purchased thanks to contributions.

Enjoy ;)

Right - I knew that the Library directory was for the Arduino IDE, but the instructions in the guide regarding it confused me. It made me think that the Arduino IDE was going to also create and insert its default libraries there. And then by some quirk of the whole X Code template situation, I might need to add (but not copy) those libraries so that the compiler can find everything. In digging into the template though, I see that all default Arduino libs are actually included as part of the project.

Anyhow, my mistake. It seems this step is only relevant if one actually has additional libraries they want to include at the time of creating their project.

So just to make sure I understood everything so far, should the SKETCHBOOK_DIR be pointed at my ~/Documents/Arduino path (where the IDE identifies the Sketchbook and where Library will soon be) or the X Code project's Sketchbook directory?

Thanks again.

The SKETCHBOOK_DIR should be pointed at your ~/Documents/Arduino path to take into account your personal libraries.

Once again, Xcode is a professional IDE and, as so, requires some learning.

I strongly recommend the book Xcode 4 Unleashed by Fritz F. Anderson I've purchased thanks to contributions.

Please keep in mind the embedXcode User Guide is not an introduction to Xcode. It implies some fluency with Xcode.

Enjoy ;)


At this point I can build the Build target, but code sense is still not working on PDE files despite having their type set to C++ Source and re-indexing 3 times now.

None of the other standard C/C++ file types are having this issue. It's as if the if-def header isn't being processed properly in specifically the PDE file despite it otherwise being treated like a C/C++ file.

EDIT - Per your suggestion, I eliminated the larger if-def block in place for just Android.h since that's the only platform I am working with. After re-indexing, everything seems to be fine.

Thank you so much for setting this whole thing up.

Normally, code-sense should work after the first build even for the pde or ino file.

Try closing the project and opening it again.

Xcode has sometimes strange behaviours.

Please find the new release of embedXcode

Oct 21, 2012 • Selection of pde, ino or cpp extension for the sketch

When creating a new project, select the extension on the drop-down list: • Choose pde for Arduino 0023, chipKIT MPIDE, Wiring and Leaflabs Maple, • Choose ino for Arduino 1.0 and Energia, • Choose cpp optionally for a standard C++ file.

Using a pde or ino extension allows to edit the sketch with the standard IDEs of the boards.

Find documentation at and download from

Enjoy ;)

I'm implementing support for Due on embedXcode.

Building and linking work fine.

Unfortunately, I can't proceed with the uploading tests as I don't own an Arduino Due board.

Learn more :)

Same here. The amazing invisible board :)