Как уменьшиться, время изготовления / ускоряет время компиляции в XCode?

Какие стратегии могут использоваться в целом для уменьшения времени изготовления для какого-либо проекта XCode? Я главным образом интересуюсь XCode определенные стратегии.

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

В настоящее время я:

  • При пользовании Статическими Библиотеками для создания его, таким образом, большая часть моего кода не должна быть скомпилирована каждый раз, я чищу и разрабатываю свой основной проект

  • Удалили большинство ресурсов из моего приложения и теста с твердым кодированным путем файловой системы в средстве моделирования iPhone, когда это возможно, таким образом, мои ресурсы не должны постоянно упаковываться, поскольку я вношу изменения в них.

Я заметил, что "фаза" Зависимостей от Проверки, кажется, занимает больше времени, чем я хотел бы. Любые подсказки для уменьшения этого также ценились бы!

68
задан Cœur 17 February 2019 в 18:14
поделиться

4 ответа

Часто самое большое, что вы можете сделать, - это контролировать включение файлов заголовков.

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

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

54
ответ дан 24 November 2019 в 14:12
поделиться

Лично я переключил компилятор на LLVM-Clang для своих проектов разработки Mac и заметил резкое сокращение времени сборки. Также есть компилятор LLVM-GCC, но я не уверен, что это поможет со временем сборки, но вы тоже можете попробовать это, если LLVM-Clang не работает для компиляции приложений для iPhone.

Я не уверен на 100%, что LLVM поддерживается для разработки на iPhone, но я помню, как читал в ленте новостей, что это так. Это не оптимизация, которую вы можете реализовать в своем коде, но попробовать стоит!

17
ответ дан 24 November 2019 в 14:12
поделиться

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

Следует проявлять осторожность, чтобы избежать проблем, если в вашем проекте используется несколько типов компиляции (например, Obj-C, Obj-C ++, C ++).

2
ответ дан 24 November 2019 в 14:12
поделиться

Простой ответ: добавьте еще одну машину с Xcode в вашу локальную сеть. Xcode включает distcc для выполнения распределенных компиляций. Он даже может использовать Bonjour для поиска других хостов сборки, что значительно упрощает процесс настройки. Для больших сборок распространение может увеличить скорость, которая почти линейно пропорциональна количеству машин сборки (2 машины занимают половину времени, три - третью и так далее).

Чтобы увидеть, как это настроить, вы можете обратиться к этой документации по разработке . Он также предлагает другие полезные стратегии улучшения времени сборки, такие как использование предварительно скомпилированных заголовков и прогнозных сборок.

Изменить: К сожалению, похоже, что Apple удалила эту функцию в Xcode 4.3: http://lists.apple.com/archives/xcode-users/2012/Mar/msg00048. html

Xcode 5 имеет серверную версию, которая может выполнять CI, но я сомневаюсь, что это принесет какую-либо пользу для специальных сборок для разработчиков. Однако есть некоторые необъявленные функции, которые должны резко сократить время сборки.

11
ответ дан 24 November 2019 в 14:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: