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

Xcode 8 перекомпилирует полный код каждый раз

При любом изменении кода (хотя файл не находится в .pch), полный проект перекомпилируется каждый раз.

4b9b3361

Ответ 1

Обновление 2017/1/2

Эта проблема не была решена в Xcode 8.2.1 (для моего проекта)

Как выжить?

Code IDE: Xcode/Atom
Build: xcrun
Debug: Xcode (Control + Command + R)

Обновление 2016/12/17

Эта проблема не была решена в Xcode 8.2.

Обновление 2016/12/12

Atom для кода и командной строки для сборки и отладки - это мой выбор сейчас. Надежда Apple скоро исправит эту ошибку.

Обновление 2016/12/04

Эта проблема кажется разрешена с помощью Xcode 8.2 (beta 2).

Но для меня его не решить, я сталкиваюсь с этой проблемой, даже когда я использую Xcode 8.2. Вы можете попробовать (скачать Xcode8.2 beta2 здесь)

Система сборки • Xcode не будет восстанавливать целую цель, когда только небольшие произошли изменения. (28892475)


Старый ответ: Это работа вокруг:

введите описание изображения здесь Вкладка "Настройка сборки" → "Языковой диалект языка C" → Изменить его на "По умолчанию компилятора".

Для справки:

В диалоговом окне "C Language Dialect" вместо "Компилятор" установлено значение "GNU99" По умолчанию ". Раньше стандартом был GNU99, но теперь его нет. точка Xcode не правильно выполнила миграцию параметров проекта библиотеки и поэтому он был установлен в GNU99. Как только я сменил его на GNU99, он остановился перекомпилировать весь мой код каждый раз!

Ответ 2

Перейдите в раздел Product → Scheme → Edit Scheme. Выберите "Сборка" в столбце слева и снимите флажок "Найти неявные зависимости"

Но этот флаг должен оставаться включенным, когда вы строите проект в первый раз.

Ответ 3

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

  • Удалите импорт из заголовка префикса, который является файлами из каталога встроенных продуктов, чтобы вы могли изменить параметр сборки для этого ( "Предварительно скомпилированный заголовок использует файлы из каталога сборки" ) до "Нет". Убедитесь, что он не косвенно импортируется и из других импортных товаров.
  • Удалить импорт из заголовка префикса, в котором используются модули Clang (библиотеки или фреймворки с файлом module.modulemap в их каталоге заголовков, поэтому вы можете написать код типа @import MyModule). (Для меня это и шаг 1 были одно и то же.)
  • Установите для параметра сборки для разделения заголовков префикса значение "Да". (Я не думаю, что это необходимо, и это не должно иметь никакого эффекта в моем собственном проекте. Я просто заявляю об этом, потому что я изменил его, потому что я был готов попробовать что-нибудь.:))
  • Выйдите из Xcode и удалите каталог DerivedData/ModuleCache (настроенный для работы в ~/Library/Developer, если я правильно помню).

Если это все еще не работает, вы можете попробовать удалить еще больше импорта из заголовка вашего префикса. Может быть, что-то сработает...

Ответ 4

Похоже, они активно работают над ним в соответствии с https://forums.developer.apple.com/thread/62737, но обходным путем является добавление

HEADERMAP_USES_VFS = YES

в настройках сборки вашей цели (Project → Target → Настройки сборки → Пользовательские настройки).

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

EDIT: по-прежнему иногда перекомпилировать все, хотя это, как представляется, делает это гораздо реже при определении этого параметра.

Ответ 5

Apple выпустила новую бета-версию Xcode вчера (14 ноября)

Xcode 8.2 beta 2

И эта проблема была отмечена как разрешенная в примечании к выпуску.

Система сборки

• Xcode не будет восстанавливать целую цель, когда только небольшие произошли изменения. (28892475)

Он работает для меня. Скорость сборки вернулась, как обычно. Все, кто сталкивается с этой проблемой, должны попробовать!

https://developer.apple.com/download/

Ответ 6

Проверьте весь свой код в директивах @IBDesignable в моем конкретном случае Xcode build project все время, потому что у меня были некоторые взгляды на мою раскадровку, содержащую в ней эти атрибуты @IBDesignable. Во-вторых, у меня также есть своя раскадровка, открытая в отдельном окне (не tab), которое навсегда заставляет мои Xcode создавать сборки для всех симуляторов.

Ответ 7

Перейдите к настройкам вашей целевой сборки и установите Defines Module на Yes.

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

Ответ 8

Исправить для меня было только закрытие раскадровки, у меня был исходный файл, открытый с помощью редактора помощи и открытого файла раскадровки (закрытие раскадровки --- так как я не делал никаких изменений) удалил все ненужные компиляция

Ответ 9

Если вы внесли изменения в файл Swift, создайте приложение, перейдите на последнюю вкладку и щелкните по журналу сборки, во время этапа "Проверить зависимости" остановите сборку и запустите ее снова. Во втором запуске он должен только создавать файлы, которые вы изменили. Если все сделано правильно, я обнаружил, что он работает каждый раз. Не нужно изменять настройки проекта.

Это, по-видимому, ошибка в Xcode.

введите описание изображения здесь

Если вы видите, что приложение выполняет полную сборку, прекратите сборку и снова попробуйте этот трюк.

Если вы не внесли никаких изменений в код, используйте CMD + CTRL + R для запуска без создания приложения, которое прикрепляет отладчик. Не будет создавать приложение, но может помочь сэкономить ненужное время.

Ответ 10

Мадхури Мане совершенно прав. Чтобы добавить немного большей ясности, обратите внимание на некоторые важные моменты:

Это ТОЛЬКО применимо, если у вас есть неявные зависимости от библиотек/фреймворков, на которые опирается ваша цель.

Если "Найти неявные зависимости" отключено:

Результат: библиотека не будет создана до создания цели приложения. Не удалось создать целевой объект приложения.

Исправление: чтобы второй сценарий не выполнялся, вы должны добавить необходимые цели в список целей и упорядочить их правильно.

Источник и дальнейшее чтение по теме: https://pewpewthespells.com/blog/managing_xcode.html#scheme-action

Теперь, если весь ваш проект размещен в одной цели, и для компиляции требуется 4 минуты, вы не можете сделать этого, кроме как разбить его на фреймворки, чтобы воспользоваться вышеизложенным или выяснить, где компиляция отстает. Если вы используете что-то вроде PaintCode или имеете большие куски кода UIKit в swift, измените его на Objective-c, он быстрее компилируется

Ответ 11

Проблема с моей стороны исправлена ​​устранением ошибки "Найти неявные зависимости".

НО помните, если вы используете cocoapods, чтобы применить эти настройки также к проекту pod, выбрав его из

Product → Scheme → Pods- "yourProjectName"

также применяются в:

Продукт → Схема → "yourProjectName"

Это помогает мне, поэтому я надеюсь, что этот намек поможет кому-то еще.

Спасибо

Ответ 12

Пожалуйста, перейдите к настройке сборки проекта и измените "Диалог языка C".

Когда вы обновляете версию xcode, в диалоговом окне "C Language Dialect" вместо "Compiler Default" установлен "GNU99". В какой-то момент Xcode не правильно перенастроил параметры проекта библиотеки, поэтому он был установлен в GNU99. Это решит проблему.

Ответ 13

Попробуйте:  1. Перейдите к проекту  2. Нажмите "Настроить параметры"  3. Убедитесь, что для параметра "ОптимизацияLevel" установлено значение "Нет" для отладки.  4. Нажмите "Добавить пользовательскую настройку".  5. Установите для параметра SWIFT_WHOLE_MODULE_OPTIMIZATION значение YES.

введите описание изображения здесь

Ответ 14

чтобы соответствовать времени компиляции xcode, может использовать IRAMDISK (диск виртуальной памяти). Очень полезное и эффективное средство сокращения времени компиляции.

Также можно использовать для ускорения часто используемого приложения.

обратитесь к следующей ссылке для загрузки и использования: http://iramdisk.findmysoft.com/mac/