Полоска символов для приложения iPhone - PullRequest
9 голосов
/ 08 апреля 2009

Какие настройки в Xcode для удаления символов для приложения iphone?

Я использую эти настройки в XCode, но все еще вижу имена классов и их методы в исполняемый файл с использованием редактора двоичных файлов.

Развертывание:

1) Развертывание Постобработка (проверено)

2) Обрезать символы отладки во время копирования (проверено)

3) Полосатый связанный продукт (проверено)

4) Использовать отдельную полосу (проверено)

Связь:

5) Удаление мертвого кода (проверено)

GCC 4.0 - генерация кода

6) Создать символы отладки (НЕ проверено)

Ответы [ 2 ]

6 голосов
/ 08 апреля 2009

Информация о классе и методе Objective-C не может быть удалена - она ​​необходима для выполнения. Лучшее, что вы можете сделать, - это придумать какое-то запутывание, если хотите.

4 голосов
/ 14 августа 2013

Я сделал это.

Я проверил только три следующих параметра, другие значения не имеют значения.

1) Постобработка развертывания (проверено)

3) Полосатый связанный продукт (проверено)

4) Использовать отдельную полосу (проверено)

enter image description here

Конечно, вам нужно проверить версию "Распространение" в редакторе схем. enter image description here

Тогда убери !!! и построить.

Я также подтвердил, что команда "strip" вызывается Xcode: Показать журнал навигатора, выберите Build .... release, внизу я нашел описание прогресса:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip /Users/xxx/Library/Developer/Xcode/DerivedData/aaaaa-dytaamkvztdwfreoqteyeijwqdcu/Build/Products/Distribution-iphoneos/aaaaa.app/aaaaa

enter image description here

Наконец, я проверил результат командой "nm" до конечного файла продукта,

nm -a /Users/xxx/Library/Developer/Xcode/DerivedData/aaaaa-dytaamkvztdwfreoqteyeijwqdcu/Build/Products/Distribution-iphoneos/aaaaa.app/aaaaa

Все названия функций текущего приложения действительно удалены. Например, следующее имя функции:

000b0a00 т _pj_ioqueue_create

00092ae4 т ___ destroy_helper_block_200

00092af8 т ___ 68- [MyClass myMethod: param2] _block_invoke_21782

Примечание: метод метода и строка имени объекта C все еще создаются в файле приложения, но это не имя символа для загрузчика ОС, а просто метаданные класса Objective C.

...