Craig Marvelley

Software and such

Three20, XCode 4 and the Case of the Missing Header Files.

After a good hour of hitting my head against a brick wall, I finally managed to get Facebook’s three20 iOS library integrated with my XCode 4 based project, documented here for posterity and the hope that it may save someone else from the raw, savage agony I’m currently feeling.

I followed the instructions on the three20 website to the letter, using the python installation script to add the library to my project, but whenever I tried to include the main Three20.h header file within my application code I got a ‘file not found’ warning which failed the build. After much trial and error / Stack Overflow searching I came across this post which seemed to suggest trying every header search path under the sun. Indeed, one of these finally worked – I narrowed it down to the $(BUILT_PRODUCTS_DIR)/../three20 entry, but YMMV.

As much as I like iOS, and XCode, Apple’s solution for integrating libraries is extremely error prone – and this was with a custom installation script. Hopefully once XCode 4 adoption has grown the process can be simplified, as newer libraries like RestKit seem to be less complicated to install.