Keeping directory structure when creating frameworks in xcode

Viewed 5381

I'm trying to create a framework in Xcode and have successfully done so, but as it turns out, Xcode flattens the directory structure of when copying headers in the Copy Headers build phase. I've tried adding the files as Folder References instead of the groups, but then it won't even recognize the header-files as header files!

So, how can I tell Xcode to keep the directory structure when copying the header files to my .framework-bundle?

5 Answers

If you cannot use a folder reference because the folders contain non-header-files, too, which you don't want to copy, add a Run Script build phase instead:

cd "${SRCROOT}/path/from/project/root/to/headers"

echo 'Copying headers into Framework..'
for H in `find . -name "*.h"`;  do
    echo "copying ${H} to ${BUILT_PRODUCTS_DIR}/${PUBLIC_HEADERS_FOLDER_PATH}/${H}"
    ditto "${H}" "${BUILT_PRODUCTS_DIR}/${PUBLIC_HEADERS_FOLDER_PATH}/${H}"
done

That will copy all .h files from the path you cd'd to into YourFramework.framework/Versions/A/Headers just like marking them as public would.

Related