XCode4.1“在复制期间剥离调试符号”

时间:2011-10-11 15:06:32

标签: xcode strip

我无法在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复制为。我尝试了各种设置组合(如下所示),但不能在复制之前使条带发生。

知道如何删除复制的文件吗?或许我只是误解了它的意图!

其他相关设置:

  • 部署后处理 - 是(必需或其他设置是 忽略)
  • 复制期间剥离调试符号 - 是
  • 剥离链接产品 - 是(剥离构建/发布/ foo.dylib产品)
  • 使用单独的条带 - 是(调用下面带有附加条带标记的条带,不剥离复制的文件)
  • 附加条形标志 - '-x'

如果复制期间的条带调试符号不起作用,我将尝试使用后构建脚本并自己调用条带。

1 个答案:

答案 0 :(得分:0)

由于XCode strip选项的行为不符合预期,我已将它们全部关闭,并添加了一个Run Script构建阶段来执行此操作:

if [ $CONFIGURATION = 'Stripped' ]
then
    strip -x -S $PRODUCT_NAME.dylib;
fi