Xcode 10 Новая проблема очистки системы сборки

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

Когда я возвращаюсь к «устаревшей» системе сборки, все работает нормально.

Есть у кого подобный опыт?

Спасибо

Это может быть проблема с Cocoapods. Потому что я сделал разблокированный подфайл и попытался отредактировать некоторые коды.


person Göktuğ Aral    schedule 25.09.2018    source источник
comment
У меня точно такая же проблема. Изменения в модулях разработки не сохраняются в новой сборке, если я не очистил все. fwiw Здесь есть соответствующее обсуждение (хотя на момент написания нет решения): группы. google.com/forum/#!topic/cocoapods/UyxOT5_GFfI   -  person de.    schedule 27.09.2018
comment
У меня та же проблема, это не ограничивается только изменением для модулей, когда я комментирую/раскомментирую одну строку в своем коде, изменение не отразится в новой сборке, если вы не нажмете Command+Shift+K. Когда я переключился на «Устаревшую систему сборки» в «Настройках рабочей области», у нее вообще не было этой проблемы. Моя среда — Xcode версии 10.0 (10A255), macOS MOjave версии 10.14 (18A391)   -  person infinity_coding7    schedule 03.10.2018
comment
та же проблема, за исключением того, что изменение, которое не принимается, находится в подпроекте, отличном от модуля. на самом деле: изменения, нарушающие компиляцию, обнаруживаются просто отлично: происходит сбой компиляции. но некритические изменения игнорируются. ржунимагу!   -  person orion elenzil    schedule 04.10.2018
comment
Ошибка присутствует так долго, а решения до сих пор нет :/   -  person fluidsonic    schedule 12.10.2018
comment
все еще получаю это в xcode 10.1   -  person orion elenzil    schedule 10.01.2019


Ответы (2)


В Xcode 10 новая система сборки сделана по умолчанию. Вы столкнетесь с проблемой в своем проекте после обновления Xcode 10. Apple знала об этих проблемах и упомянула об этом в примечаниях к выпуску Xcode 10.

https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes/build_system_release_notes_for_xcode_10

  • При выполнении xcodebuild clean в проекте, в котором используется настроенное расположение сборки за пределами каталога производных данных, и в котором есть более старые продукты сборки, созданные до Xcode 10, Xcode может сообщить об ошибке, указывающей, что он не будет удалять каталоги, не созданные новой системой сборки. . (40427159)

    Временное решение: удалите папку сборки вручную.


Для справки, вот полный раздел «Известные проблемы»; чистая ошибка последняя:

Известные проблемы:

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

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

  • После установки набора инструментов Swift Xcode не сразу обнаружит набор инструментов. (31360319)

    Временное решение. Закройте и снова откройте рабочую область.

  • Новая система сборки не поддерживает ресурсы по запросу (ODR). Если в вашем проекте используется ODR, устаревшую систему сборки можно снова включить в меню «Файл» > «Параметры рабочей области/проекта». (31508570)

  • Если параметры сборки определены в файле xcconfig, который наследует значения с помощью $(inherited) или $(), редактор параметров сборки показывает последнее назначенное значение для параметра вместо правильно составленного значения. (28572636)

  • Цели, которые имеют несколько каталогов активов, которые не находятся на одной и той же фазе сборки, могут вызвать ошибку, связанную с «дубликатом выходного файла». (39810274)

    Временное решение. Убедитесь, что все каталоги активов обрабатываются одной и той же фазой сборки в целевом объекте.

  • Новая команда «Сборка со сводкой по времени» не показывает время для некоторых задач, выполняемых в системе сборки во время сборки. (39801746)

  • Пользовательские системные плагины сборки, включая компилятор Intel ICC, пока не поддерживаются. (32795438, 33286594)

    Временное решение. При необходимости переключитесь на использование устаревшей системы сборки на странице «Файл» > «Параметры проекта/рабочей области».

  • Цели с этапами сборки копирования заголовков, упорядоченными после этапов сборки компиляции источников, могут не собраться и выдать диагностику относительно циклов сборки. (39880168)

    Временное решение. Расположите все этапы сборки копий заголовков перед этапами сборки компиляции источников.

  • При выполнении очистки xcodebuild в проекте, который использует настроенное расположение сборки за пределами каталога производных данных и имеет более старые продукты сборки, созданные до Xcode 10, Xcode может сообщить об ошибке, указывающей, что он не будет удалять каталоги, не созданные новой сборкой. система. (40427159)

    Временное решение: удалите папку сборки вручную.

person Manikandan    schedule 22.11.2019

Вам нужно сделать еще несколько дополнительных шагов, чтобы, наконец, успешно скомпилировать его. (Эти дополнительные шаги требовались даже в Xcode 9.)

Xcode: Файл -> Настройки рабочей области -> Система сборки: Устаревшая система сборки

Xcode: Продукт -> Очистить

Поверните, чтобы скомпилировать через различные типы эмуляторов, такие как «iPhone 8», «iPhone 8 Plus» и т. Д. (Они могут дать сбой, а могут и нет.)

Выполните этот шаг. Надеюсь, вы решите проблему после выполнения этого шага.

person Vishal Parmar    schedule 29.03.2019