在xcode中创建框架时保持目录结构

Eri*_*off 13 xcode frameworks directory-structure header

我正在尝试在Xcode中创建一个框架并且已经成功完成了,但事实证明,Xcode在复制标构建阶段复制标头时的目录结构变得平坦.我已经尝试将文件添加为文件夹引用而不是组,但它甚至不会将头文件识别为头文件!

那么,在将头文件复制到我的.framework-bundle时,如何告诉Xcode保留目录结构?

Pau*_*ien 11

在Build Phases UI中使用Copy Files而不是Copy Headers.

为所需的每个输出文件夹创建单独的复制文件(编辑器 - >添加构建阶段).

  • 太好了,这个有效!但答案需要更多细节.我发现*Destination*需要设置为*Wrapper*并且*Subpath*必须是(或以"Headers"开头),如果您希望将头文件复制到框架的公共头文件夹或其子文件夹中. (6认同)

cti*_*tze 5

如果您无法使用文件夹引用,因为文件夹也包含您不想复制的非头文件,请改为添加运行脚本构建阶段:

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
Run Code Online (Sandbox Code Playgroud)

这会将所有文件从您想要的.h路径复制到,就像将它们标记为公共一样。cdYourFramework.framework/Versions/A/Headers


Jug*_*ang 0

这个问题的接受答案来看:

右键单击“资源”,添加现有文件,选择您的目录,然后选择“为任何添加的文件夹创建文件夹引用”。