XCode4.1 "убрать символы отладки во время копирования" - PullRequest
3 голосов
/ 11 октября 2011

Я не могу получить опцию «раздели символы отладки во время копирования» в 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 было скопировано до зачистки.Я испробовал различные комбинации настроек (ниже), но не могу заставить полосу произойти перед копированием.

Есть идеи, как заставить скопированный файл удалить?Или, может быть, я просто неправильно понял, что он должен делать!

Другие соответствующие настройки:

  • Постобработка развертывания - Да (обязательно или другие настройки игнорируются)
  • Обрезать символы отладки во время копирования - Да
  • Обрезать связанный продукт - Да (обрезает продукт build / Release / foo.dylib)
  • Использовать отдельную обрезку - Да (вызывает полосу с дополнительными флагами обрезки, не удаляет скопированный файл)
  • Дополнительные флажки удаления - '-x'

Если символы отладки во время копирования просто не работают, я постараюсь использовать сообщение-создать скрипт и вызвать стриптиз сам.

1 Ответ

0 голосов
/ 25 ноября 2011

Поскольку параметры полосы XCode не работают должным образом, я отключил их все и добавил фазу сборки Run Script, которая делает это:

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