如何获得“复制文件”构建阶段以遵循DSTROOT的构建设置?

时间:2019-04-27 19:23:58

标签: xcode xcode10.2

我有一个构建图书馆的项目。 Xcode设置DSTROOT设置为默认的/tmp/$(PROJECT_NAME).dst,Xcode将库放置在此处。我有一个复制阶段来添加手册页。它的目标设置为“绝对路径”,路径设置为$(DSTROOT)/ usr / local / share / man / man3。当我运行它时,它尝试将手册页复制到“ / usr / local / share / man / man3”,因此我被拒绝了权限。换句话说,它的作用就像未设置DSTROOT。我尝试显式设置DSTROOT值,而不使用默认值。一样。

如何获得此复制文件构建阶段以使用DSTROOT值?

1 个答案:

答案 0 :(得分:1)

请勿使用绝对路径。一种方法是选择Wrapper作为目的地,并使用“ ../../usr/local/share/man/man3”作为相对路径。假定包装路径是默认的/ Applications / $(PRODUCT_NAME).app。

另一种方法是根本不使用“复制文件”构建阶段。使用运行脚本构建阶段。将外壳设置为/bin/bash并使用类似以下脚本:

set -x
mandir="$DSTROOT/usr/local/share/man/man3"
mkdir -p "$mandir"
i=0
while [$i -lt ${SCRIPT_INPUT_FILE_COUNT}] ; do
    name="SCRIPT_INPUT_FILE_$i"
    cp "${!name}" "$mandir/"
    let i=i+1
done

复制文件后,您可能想要chmod和/或chown

确保将要复制的文件作为输入添加到构建阶段,并将输出路径(可以基于${DSTROOT})添加为输出。

相关问题