我无法在XCode中获得“复制期间的条带调试符号”选项,以便我认为它应该如何工作。文档说:
“激活此设置会导致在构建期间复制的二进制文件(例如,在复制包资源或复制文件构建阶段)被剥离调试符号。”
但是,在实践中似乎发生的情况是,在复制发生后,剥离仅在链接的二进制文件上执行,因此复制的文件永远不会被剥离。例如:构建日志的内容如下:
Compile main.c...
Link /Users/snowcrash/proj/blah/build/Release/foo.dylib
Copy bar/foo.dylib
Strip build/Release/foo.dylib
根据nm
bar/foo.dylib
,其中仍然包含调试符号,因为您希望在剥离之前将foo.dylib
复制为。我尝试了各种设置组合(如下所示),但不能在复制之前使条带发生。
知道如何删除复制的文件吗?或许我只是误解了它的意图!
其他相关设置:
如果复制期间的条带调试符号不起作用,我将尝试使用后构建脚本并自己调用条带。
答案 0 :(得分:0)
由于XCode strip选项的行为不符合预期,我已将它们全部关闭,并添加了一个Run Script构建阶段来执行此操作:
if [ $CONFIGURATION = 'Stripped' ]
then
strip -x -S $PRODUCT_NAME.dylib;
fi