Проблемы после обновления до Xcode 10: входной файл сборки не может быть найден


108

Вчера вечером я обновил свой Xcode SDK до версии 10 и обнаружил, что не могу собрать.

Я получаю такую ​​ошибку:

Не удается найти входной файл сборки: '/Users/call01/Library/Developer/Xcode/DerivedData/Comp-Lite-Apps-gytvmossqptokeafrddvvmnlzadk/Build/Products/Debug-iphoneos/SG11.app/SG11

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

Ответы:


136

Попробуйте снова переключиться на Legacy Build System( File > Project Settings > Workspace Settings > Legacy Build System)


2
Ницца. Но мне все еще интересно, что будет дальше? Нам нужно исправить наш проект, но как?
Тедди

1
@Teddy Я еще не нашел решения, все еще использую этот обходной путь
schmidt9 06

2
@ schmidt9 снимаю шляпу, спасибо тебе большое, ты спасатель. во-вторых, я НЕ МОГУ поверить, что эта новая система сборки была проблемой. Я боролся с этим несколько дней. после обновления до iOS 12 и XCode 10 автоматическая подпись перестала работать. Я все перепробовал и даже отозвал и воссоздал все сертификаты. и профили. подпись была исправлена, но профиль подготовки всегда НЕТ. Я МОГ вручную подписать приложение, и оно сработало, но тогда в опубликованном приложении отсутствовали контейнер iCloud и другие элементы. в любом случае, исправил мою проблему. Господи, как яблоко меня расстраивает с каждым обновлением. ура!
Nexus

Это устранило мою проблему с автоматической подписью и профилированием. но у меня все еще возникают проблемы с контейнерами iCloud. когда я устанавливаю приложение прямо на свой телефон, оно работает нормально. У меня есть контейнер iCloud, и я использую документы iCloud для прикрепления файлов из хранилища iCloud. но когда я передаю приложение TestFlight, оно не работает. молча терпит неудачу, как будто контейнер iCloud даже не присутствует в профиле распределенного приложения. невероятно расстраивает.
Nexus

1
@Nexus эта проблема с новой системой сборки сохраняется с тех пор, как Apple запустила ее (xcode 8 или 9). Извините, не разобрался с контейнерами iCloud, не могу сказать, в чем может быть проблема
schmidt9

94

Для файлов Swift или файлов, принадлежащих проекту, например:

Build input file cannot be found: PATH/TO/FILE/FILE.swift

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

Исправить это:

  1. Заходим в проект-навигатор, выбираем свой проект

  2. Выбрать Build Phasesвкладку

  3. В Compile Sourcesразделе проверьте файлы, на которые Xcode жалуется.

  4. Обратите внимание, что путь к файлу (-ам) неверный, и удалите их, щелкнув значок «минус».

  5. Повторно добавьте файл (ы), щелкнув значок плюса и выполните поиск в проекте.

  6. Продукт> Папка чистой сборки

  7. Построить

Обычно вы находите эти отсутствующие файлы в Recovered Referencesпапке Xcode в дереве проекта (найдите панель поиска в левом нижнем углу Xcode и найдите файл с жалобой):

Удаление их из этой папки также может решить проблему.


1
Спасибо! У нас были ссылки на удаленные файлы. Удаление только этих ссылок решило проблему
Джейсон

Иногда, когда я переименовываю из XCode, файл в Finder по-прежнему сохраняет старое имя. Найдите файл в Finder и переименуйте его с новым именем.
Тони

60

Для меня в Xcode 10 эти решения работали как шарм. Просто перейдите в папку «Восстановленные ссылки», удалите все файлы красного цвета и добавьте их снова с соответствующей ссылкой.

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


10
Я не могу найти «Восстановленные ссылки» в моем проекте
Дэвид Милли

4
Что вы имеете в виду, говоря «добавить еще раз с надлежащей ссылкой» после того, как мы удалили красные файлы?
PrimeTimeTran

@PrimeTimeTran Я имел в виду, что вы можете снова добавить эти ссылки на файлы в свой проект с помощью перетаскивания или копирования и вставки. Так же, как добавление нового файла в проект.
Кришна Тхакур

3
@davidmlee Я думаю, что этот парень другими словами имеет в виду: «открыть все свои папки в проекте, удалить красный материал и добавить его снова». Папка с восстановленными ссылками не требуется.
bearacuda13

17

Это сработало для меня в Xcode 10:

  • Щелкните значок / имя проекта в своем проекте Xcode
  • Перейдите на вкладку Общие
  • Нажмите [Выбрать файл info.plist] в разделе «Идентификация».
  • Выберите файл info.Plist
  • Проверьте вкладку Info, чтобы узнать, успешно ли загружен info.plist.
  • Сборка и запуск

16

Как ни странно, закрытия Xcode и его повторного открытия тоже может быть достаточно.


Я также удалил производные данные, но простого закрытия / повторного открытия могло быть достаточно.
Адам Джонс

Я думал, что это способ исправить ситуацию Visual Studio ... но у меня это сработало.
SEG.Veenstra 07

14

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

  1. Xcode: Файл -> Настройки рабочего пространства -> Система сборки: устаревшая система сборки
  2. Xcode: Продукт -> Очистить
  3. Поверните, чтобы скомпилировать эмуляторы разных типов, например «iPhone 8», «iPhone 8 Plus» и т. Д. (Они могут не работать, а могут и нет).
  4. В конце концов скомпилировать на "Generic iOS Device"

Мне нужно было пройти некоторые из этих шагов, чтобы он тоже заработал.
Liwen Zhao

13

Просто проверьте путь к файлу .plist в настройках сборки вашей цели

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


Ага - я переместил plist в отдельную папку. Я думаю, что раньше папки были виртуальными, а теперь они настоящие (старые сине-желтые папки). В любом случае ваш ответ был
Питер

10

Я исправил эту проблему следующим образом: перейдите к этапам сборки вашего проекта (щелкните значок проекта вверху, а затем выберите этапы сборки). Найдите там свой файл. Если он там (будет серым), удалите его. Затем очистите (shift + alt + command + k) и запустите! Надеюсь, поможет.


9

Если в сообщении об ошибке говорится, что Info.plist не найден и он ищет неправильный путь , выполните следующие действия:

  1. Выберите свой проект в навигаторе, затем выберите цель
  2. Выберите «Настройки сборки» и выполните поиск по «plist».
  3. Должна быть опция под названием Info.plist File. Измените местоположение на правильное.

Этот ответ также применим, если вы переименуете папку / структуру приложения. Спасибо @keverly
Lorem

5

Ничего из вышеперечисленного не сработало для меня, но это сработало:

  1. Откройте проект в Finder, щелкните правой кнопкой мыши файл .xcodeproj и покажите содержимое пакета.
  2. Откройте project.pbxproj в текстовом редакторе.
  3. Найдите ссылку на ваш пропавший файл
  4. редактировать path = "path/to/file.swift" в фактическом месте на диске и сохраните файл.
  5. Восстановить проект

ЭТО тот, который исправляет это ... невероятно
Дэвид Сик

Тоже самое. Как, черт возьми, ты это понял?
Питер Шорн,

2

откройте правую панель навигации, где существуют файлы вашего проекта ИЛИ JSUT нажмите cmd + 1 Затем найдите папку «Восстановленные ссылки», откройте все красные файлы (удалите их), тогда все будет работать так хорошо.


2

Это случилось со мной при создании модульных тестов. Это могло произойти из-за того, что я удалил примеры тестов.

Я удалил комплект Unit test, затем снова добавил его, как показано на рисунках ниже, и все снова стало хорошо.

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

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


2

Я столкнулся с этой ошибкой после переименования файла. Почему-то Xcode неправильно переименовал фактический файл на диске.

Таким образом, он не смог найти файл. Иногда файлы выделяются красным цветом текста. В других случаях значок Swift перед файлом накладывался серым цветом.

Исправить было просто.

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

1

У меня была аналогичная проблема после недавнего обновления до новой быстрой версии. Перемещение файлов привело к тому, что мой проект xcode ссылался на элементы, которых больше не было в каталоге проекта, что давало мне входной файл сборки с кодом ошибки не найден.

В моей ситуации у меня как-то было несколько файлов / изображений, на которые ссылались, как описано ниже:введите описание изображения здесь

На изображении выше.

  • Перейдите на свою страницу целей.
  • Затем щелкните вкладку «Фазы сборки» вверху.
  • Прокрутите вниз, чтобы скопировать ресурсы пакета
  • Найдите затронутые файлы и удалите их. (нажмите на них удалить или выберите их и нажмите кнопку минус)

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

Надеюсь, это поможет кому-то другому!


1

Я была такая же проблема. Проблема заключалась в том, что у меня не было файла в Target> Build Phases> Compile Sources. Проблема была решена после того, как я добавил хотя бы один файл в Compile Sources.


1

Не то чтобы я сделал что-то не так, но я столкнулся с этой проблемой по совершенно другой причине и вроде как знаю, чем это вызвано.

Раньше я использовал Finder и перетаскивал файл в каталог / папку моего проекта. Я не перетаскивал в Xcode . Чтобы Xcode включил этот файл в проект, мне пришлось позже снова перетащить его в Xcode.

Но когда я переключился на новую ветку, в которой не было этого файла (да и не нужно было), Xcode выдал мне эту ошибку:

Не удается найти входной файл сборки: '/ Users / honey / Documents / xp / xpios / powerup / Models Extensions / CGSize + Extension.swift'


Я очистил папку сборки и удалил производные данные, но это не сработало, пока я не перезапустил свой Xcode.


1

Это сработало для меня

  1. попробуйте удалить файлы красного цвета
  2. удалить файлы в производных данных
  3. очистить папку сборки
  4. затем попробуйте построить с помощью «новой системы сборки» из файла-> настройки рабочего пространства

1

В моем случае файл (и каталог), который упоминал XCode, был неправильным, и проблема начала возникать после слияния Git с относительно большой веткой. Чтобы исправить то же самое, я сделал следующие шаги:

  • Искал файл в системе каталогов XCode.
  • Обнаружен файл с ошибками, выделенный красным цветом (т. Е. Он отсутствует).
  • Щелкните файл правой кнопкой мыши и удалите файл.
  • Я снова попытался построить свой код, и вуаля, все прошло успешно.

Я надеюсь, что эти шаги кому-то помогут.


1

В моем случае у меня был сценарий сборки, который генерировал двоичный файл .app (Buck). Скрипт сборки Buck выполнялся параллельно с этапом сборки Swift Embed. Поскольку двоичный файл .app не был создан, шаг Swift завершился ошибкой.

В моем сценарии сборки я добавил "$BUILD_PRODUCTS_DIR/$EXECUTABLE_PATH"в"Output Files" .

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

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


0
  1. Перейдите в Xcode-> File -> Project Setting.
  2. Изменить систему сборки: - «Устаревшая система сборки».
  3. Очистить, построить и нажать «Выполнить».

0

Xcode жаловался на XIB-файл. Я заставил его работать, перейдя в Project -> Build Phases -> Copy Bundle Resources, удалив «проблемный» XIB, очистив (CMD + Shift + K), построив и снова добавив его.


0

Существует также одна возможность, что иногда, когда вы перемещаете свои файлы в другую папку, особенно когда вы перемещаете их info.plistв другую папку, вам нужно определить местоположение этого файла. Чтобы решить эту проблему, просто нажмите на синий значок вашего проекта вверху, и вы увидите кнопку вместо имени проекта и идентификатора пакета, нажмите на нее и найдите там info.plistфайл, очистите и скомпилируйте успешно.


0

Я столкнулся с этой проблемой вскоре после обновления до Xcode 10, но проблема была не в этом.

Я попытался изменить систему сборки, но это дало мне отдельную ошибку, которая означала то же самое. Обычно говорят: «Файл X не может быть найден».

Если файл не может быть найден, нужно проверить несколько вещей.

  1. Папка восстановленных ссылок Apple делает эту замечательную вещь: если она обнаруживает ссылку на несуществующий файл, она добавляет эту ссылку в группу под названием «Восстановленные ссылки».

Это хорошо со стороны Apple, но не всегда работает.

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

  2. Путь к файлу. Дважды проверьте путь к файлу, в котором выводится ошибка, и путь к файлу в поисковике. Вы можете легко увидеть это, щелкнув файл в Xcode и проверив вкладку «Показать инспектор файлов» (крайняя левая вкладка). Если эти пути верны, то у вас все хорошо!

  3. Затененные файлы в вашем проекте, которых нет в восстановленных ссылках или красных. Это меня разозлило, потому что неясно, что произошло, но в основном, если вы войдете в поисковик и переместите файл в другое место без обновления ссылки в проекте он выдаст ошибку, поскольку файл больше не существует. Единственное указание, которое я нашел для этого, заключается в том, что файл на вкладке «Project Navigator» (крайняя левая вкладка) очень немного затемнен, но когда вы идете, чтобы удалить этот файл, Xcode не предлагает вам удалить ссылку или отправить на мусор. Вы можете исправить это, удалив файл и повторно добавив его в проект или перейдя на вкладку «Инспектор файлов», щелкнув значок папки рядом с путем и изменив его на нужное место.

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

Моя проблема была решена с помощью пункта 4, указанного выше. Надеюсь, это кому-то поможет.


0

Файл> Параметры проекта> Изменить системы сборки на устаревшие системы сборки


3
Было бы полезно небольшое пояснение
vik_78

0

В моем случае я случайно удалил одну стороннюю папку xcodeproj, которую использовал в своем приложении.


0

Если вы попробовали профилирование, но оно не сработало, и теперь вы не можете выполнить сборку, перейдите на панель «Цель» (с помощью значка проекта), перейдите на вкладку «Параметры сборки», выполните поиск по запросу «ПРОФИЛЬ» и установите для параметра CLANG_USE_OPTIMIZATION_PROFILE значение «Нет».


0

В моем случае я создал новую тестовую цель и удалил быстрый файл по умолчанию, поэтому в нем остался только файл info.plist. Это исправило добавление нового файла.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.