I'm working through a Ray Wenderlich tutorial at the moment and it's going good. However, I don't understand why I had to add header paths and linker flags. Download the gdata-objective-c client library. Unzip the file, navigate to Source\XMLSupport, and drag the two files GDataXMLNode.h and GDataXMLNode.m into your project. In XCode, click Project\Edit Project Settings and make sure All Configurations are checked. Find the Search Paths\Header Search Paths setting and add /usr/include/libxml2 to the list. Finally, find the Linking\Other Linker Flags section and add -lxml2 to the list. Test out that everything is working by adding the following to the top of XMLTestAppDelegate.h: What does step 4 and 5 actually do? If I'm linking to external resources, why do it this way? Why not drag them into the visible bundle in the folder structure?