Xcode 4.2: How to import .h file from subproject

ios, xcode

Solution

Maybe your header file is also in a subdirectory.

Imagine the following directory setup:

- Desktop
    - MyProject
        - MyProject.xcodeproj
        - main.m

        - MyLibrary
            - MyLibrary.xcodeproj
            - MyHeaderFile.h      <-- wanted header file

If main.m has these contents:

#include "MyHeaderFile.h"

int main() {
    return 0;
}

The compiler (gcc) will think that MyHeaderFile.h is located in the same directory as main.m, from which it is included. To tell the compiler you mean the header file in a subfolder, you have can do two things.

- You can add a directory to the gcc compiler that says: "hey, also look in that folder". You can do this by using the `-iquote myFolder` flag.

- You can include the directory in the include-statement: `#include "MyLibrary/MyHeaderFile.h"`

There could of course be another problem, but this seams like the most straightforward one.

Problem

I am new to Xcode subprojects. In my iPhone app project `MyProject`, I am trying to refactor some common code to a static library project called `MyLibrary`. After I create `MyLibrary` and move the code, `MyProject` is no-longer compiling. The error is that the `MyProject` cannot see the .h files in `MyLibrary`. The error `MyLibraryConfig.h: No such file or directory` is coming in the line: ``` #import "MyLibraryConfig.h" ``` - How to import the `MyLibrary` .h files in `MyProject` ? - What is the best practice here? Assuming I have multiple such libraries, it is tedious to add these to header search paths to the parent project.

Original source