Подтвердить что ты не робот

Каковы наилучшие методы для уменьшения размера статических библиотек в objective-c?

При создании статической библиотеки objective-c я заметил, что файл .a(жирный файл с симулятора и iPhone) довольно большой. В частности, это было первоначально 5.7mb. Я нашел этот пост и установил мои настройки сборки Generate Debug Symbols на No, уменьшив размер lib до 1.7mb.

Это было большим улучшением, но есть ли что-нибудь еще, что можно сделать? Только файлы реализации и заголовка занимают ~ 100 кб.

4b9b3361

Ответ 1

Если это часть вашей озабоченности, статическая библиотека - это только соответствующие файлы .o, заархивированные вместе, а также некоторые бухгалтерские операции. Таким образом, статическая библиотека размером 1,7 МБ, даже если код внутри нее - всего 1,7 Мбайт, обычно не добавляет к вашему продукту 1,7 МБ. Будут применяться обычные правила удаления дескриптора кода.

Кроме того, вы можете уменьшить встроенный размер вашего кода. Следующий, вероятно, не полный список.

В настройках вашей целевой сборки найдите "Уровень оптимизации". Переключив его на "Самый быстрый, самый маленький-O", вы разрешите компилятору пожертвовать некоторой скоростью для размера.

Убедитесь, что вы создаете для большого пальца, более компактный ARM-код. Предполагая, что вы используете LLVM, это означает, что вы не имеете -mno-thumb в любом месте своих настроек проекта.

Также рассмотрим, какие архитектуры вы хотите построить. Apple не позволяет отправлять приложения, поддерживающие как ARMv6, так и экран iPhone 5, и полностью отказались от поддержки ARMv6 от последнего Xcode. Так что, вероятно, нет смысла включать в этот момент.