XCode4.1 "strip debug symbols during copy"



我无法在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 product)
  • 使用单独条带-是(在下面调用带有附加条带标志的条带,不剥离复制的文件)
  • 附加条形标志- '-x'

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

由于XCode条带选项的行为不像预期的那样,我已经把它们全部关闭,并添加了一个运行脚本构建阶段,它做的是:

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

最新更新