Прежде всего, нам нужно время компиляции меры. Это важно, потому что, прежде чем вы увидите время компиляции, вы не сможете понять, что не так и что вам нужно изменить.

Для отображения вы должны включить таймер компиляции. Откройте командную строку, вставьте следующую строку кода и нажмите ввод.

defaults write com.apple.dt.Xcode ShowBuildOperationDuration -bool YES

А затем создайте проект, вы должны увидеть снимок экрана ниже. Возможно, вам нужно очистить проект (cmd + option + k) или удалить папку с производными данными проекта, чтобы измерить время сборки.

rm -rf ~/Library/Developer/Xcode/DerivedData

2- Найдите код, который медленно компилируется

если вы подозреваете свой метод или выражение, вы можете определить это, немного изменив в Xcode

Откройте настройки сборки проекта и добавьте следующие флаги в свой Other Swift Flags. Как на следующем скриншоте.

  • -Xfrontend -warn-long-function-bodies=<millisecond>
  • -Xfrontend -warn-long-expression-type-checking=<millisecond>

Первая строка показывает функцию того, сколько времени это займет.

Вторая строка показывает, сколько времени это займет.

Когда вы строите проект, вы можете видеть время предупреждения в журнале сборки Xcode. А затем вы можете исправить или реорганизовать эту функцию или выражения.

3- Настройка только активной архитектуры сборки

В разделе «Параметры сборки» своего проекта найдите «Только сборка активной архитектуры».

Когда вы запускаете свой проект в режиме отладки, вы должны «строить только активную архитектуру», для которого должно быть установлено «ДА». Если выбран режим спуска, необходимо установить значение «НЕТ».

4- Генерация кода (уровень оптимизации, режим компиляции)

Apple недавно представила «режим компиляции» и «уровень оптимизации», которые дают нам больше контроля над изменением механизма компилятора над сборками.

Параметр сборки «Уровень оптимизации» может быть установлен на «Без оптимизации» для отладочных сборок, а для сборок выпуска может быть установлен на «Оптимизировать для скорости».

В Xcode 10 для проверки размера кода можно использовать «Оптимизировать по размеру».

5- Xcode имеет новую систему сборки

В Xcode 9 Apple представила новую систему сборки, полностью написанную на Swift. По умолчанию выбрана «новая система сборки».

6- Управляемые и доступные зависимости

Реорганизуйте свою зависимость и стороннюю структуру. Увеличьте легкий доступ к вашей зависимости.

Если вы используете несколько модулей для нескольких целей, вы можете организовать зависимости, как показано ниже.

def shared_pods
   pod ‘ModellingSDK’, ‘1.7.0’
   pod ‘NetworkingSDK’
end
def sdk_pods
   source ‘https://github.com/CocoaPods/Specs.git'
   source ‘https://bitbucket.org/somesdk/somesdk.git'
   pod ‘Fabric’
   pod ‘Crashlytics’
end
target ‘mainTarget’ do
  platform :ios, ‘9.0’
  shared_pods
  sdk_pods
end
target ‘extensionTarget‘ do
  platform :ios, ‘10.3‘
  shared_pods
end

Используйте дополнительную стратегию кэширования для управления зависимостями, чтобы ускорить сборку. Добавьте неявные зависимости вместо явных. Выберите систему управления зависимостями, которая должна соответствовать вашим потребностям. (Коко-моллюски, Карфаген).

Если у вас есть критика, вопрос или предложение, не стесняйтесь размещать их в разделе комментариев ниже!

Спасибо за прочтение.

P.S .: и если вам понравилась моя статья, не забудьте аплодировать 👏

Следуйте за мной в Twitter и Linkedin

Несколько проектов с открытым исходным кодом, которые я создал.