Для текущей версии Xcode (выше 12), когда я архивирую приложение для выпуска, удаляется ли неиспользуемый код в блоках?

#ios #swift #xcode #minimize

Вопрос:

Сегодня разработчики iOS используют множество сторонних разработчиков для ускорения разработки. У меня есть вопрос по процессу архивирования Xcode.

Когда Xcode архивирует приложение для выпуска, когда я выбираю оптимизацию для наименьшего и быстрого, бесполезного кода не будет в файле ipa? или бесполезный код, также заархивированный в ipa?

Для Android Studio эта процедура может называться минимизацией? Делает ли Xcode это автоматически для ipa выпуска?

Спасибо

Комментарии:

1. Ознакомьтесь с содержимым IPA-файла самостоятельно. Вы можете увидеть это с помощью BBEdit или чего-то еще.

Ответ №1:

В Xcode нет настроек сборки, которые удаляют неиспользуемый/бесполезный код для ipa

Кроме того, настройки компилятора, которые вы использовали

Самый быстрый и самый маленький [-Os] решает эту проблему: компилятор выполняет все оптимизации, которые обычно не увеличивают размер кода. Это предпочтительный вариант для доставки кода, поскольку он обеспечивает меньший объем памяти для вашего исполняемого файла.

Это поможет только уменьшить объем памяти вашего приложения, оно не удалит неиспользуемый код

Чтобы рассмотреть поближе, и если вы используете динамические фреймворки, вы можете проверить содержимое вашего .ipa, вы увидите папку с именем Framework, внутри которой вы найдете все модули как .framework, и вы даже можете увидеть файлы и ресурсы внутри них.

Итак, ответьте на ваш вопрос, делает ли Xcode это автоматически для ipa выпуска? -> НЕТ

Ответ №2:

Я не уверен, что «минимизировать» — это термин, используемый в Android, разве это не сокращение кода или сотрясение дерева? Другие термины включают устранение мертвого кода и удаление кода.

Чтобы ответить на этот вопрос, кажется, что ни то, ни другое не сделано: я добавил зависимость (пакет Swift, в частности, SQLite.swift) в целевой объект в проекте Xcode, и размер приложения (при архивировании/ с конфигурацией сборки выпуска) увеличился с 4,3 МБ до 6,6 МБ.


Это то, о чем я, к сожалению, не очень заботился, и ваш вопрос хорош. Я надеюсь, что кто-то другой ответит лучшим ответом.