Короче, не беспокойся. Сама природа среды выполнения Objective C заключается в том, что доступны значительные метаданные.
Реальность такова, что кто-то очень редко может взять вашу платформу и попытаться внедрить / использовать ее.
Обратите внимание, что обфускаторы кода не очень хорошо работают; есть еще немало метаданных, которые должны быть представлены. Вы можете пойти по этому пути, но - как правило - это значительно усложняет анализ отладки / сбоев без фактического решения реальной проблемы.
<Ч />
Я вижу, что другие указали вам путь запутывания (хотя я подозреваю, что ответ #define someSelector mmmrrrggglll
на самом деле не был особо проверен).
Некоторые конкретные моменты, которые следует учитывать при переходе по этому пути (я уверен, что я пропустил многие):
если вы используете KVO / KVC, убедитесь, что вы запутываете все эти вызовы на addObserver:*
и т.п.
если вы нацелены на Mac OS X, не забывайте и о привязках!
Файлы xib Interface Builder часто будут содержать ссылки на переменные экземпляра и / или свойства и / или методы. Не забывайте о них!
Все, что использует самоанализ во время выполнения, также нуждается в запутывании.
убедитесь, что вы ничего не скрываете, что системные фреймворки зависят; не хотел бы подкласс NSView
, скажем, а затем запутать drawRect:
или initWithFrame:
.
В некоторых случаях Info.plist
может ссылаться на имена классов и точки входа. Не связывайтесь с ними!
Кроме того, убедитесь, что каждое использование @selector () также правильно запутано; ничего подобного настройке NSTimer на запуск метода, которого больше не существует.
Убедитесь, что ваши планы запутывания также включают инженерные работы, необходимые для создания не-обфускатора для журналов сбоев.
Вы также захотите подумать, как вы собираетесь отлаживать рабочий бинарный файл; Предположим, ваши следы стека будут запутаны. b mmmrrrggglll
ftw!
Если ваша инфраструктура имеет контроль экспорта символов, убедитесь, что также запутали их! Помните, что в некоторых случаях способы создания символов различаются в зависимости от архитектуры и компилятора.