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


105

Минулої ночі я оновив свій Xcode SDK до версії 10, а потім виявив, що не можу створити.

Я отримую цю помилку:

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

яких не було до мого оновлення, і я спокусився повернути назад, але хотів би дотримуватися версії 10, якщо я можу вирішити цю проблему.

Відповіді:


131

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


2
Приємно. Але мені все ще цікаво, що буде потім? Нам потрібно виправити наш проект, але як?
Тедді

1
@Teddy Я ще не знайшов рішення, і досі використовую це рішення
schmidt9

2
@ schmidt9 капелюхи зняті, дуже дякую, що ви рятувальник життя. по-друге, я не можу вважати, що ця нова система складання була проблемою. Я боровся з цим цілими днями. після оновлення до iOS 12 та XCode 10 автоматичне підписання було порушено. Я все спробував і навіть скасував і відтворив усі серти. та профілі. підписання було виправлено, але профіль резервування завжди НІКОЛИ. Я можу вручну підписати додаток, і воно спрацювало, але тоді контейнер iCloud та інші елементи відсутні у опублікованого додатку. все одно виправили мою проблему. добрий пане, як яблуко засмучує мене з кожним оновленням. ура!
Nexus

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

1
@Nexus ця проблема із системою нової збірки зберігається з моменту запуску Apple (xcode 8 або 9). Вибачте, що не займалися контейнерами iCloud, не можу сказати, у чому проблема,
schmidt9

89

Для файлів 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» та перейменуйте його на нове ім’я.
Тоні

58

Для мене в Xcode 10 ці рішення спрацювали як шарм. Просто перейдіть до папки «Відновлені посилання» та видаліть усі файли червоного кольору та додайте їх знову з належним посиланням.

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


10
Я не можу знайти "Відновлені посилання" для мого проекту
david m lee

4
Що ви маєте на увазі під "додавши його знову з належним посиланням" після того, як ми видалили червоні файли?
PrimeTimeTran

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

3
@davidmlee Я думаю, що цей хлопець означає іншими словами: "відкрийте всі ваші папки в проекті, видаліть червоний матеріал і додайте його знову". Не потрібно мати відновлену папку посилань.
bearacuda13

17

Це працювало для мене в Xcode 10:

  • Клацніть піктограму / ім’я проекту у проекті Xcode
  • Перейдіть на вкладку Загальні
  • Клацніть [Вибрати файл info.plist] у розділі Ідентичність
  • Виберіть файл info.Plist
  • Перевірте вкладку Інформація, щоб побачити, чи успішно завантажено info.plist
  • Побудувати та запустити

15

Як не дивно, закриття Xcode і його повторне відкриття також може бути досить.


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

Я думав, що це спосіб виправлення речей Visual Studio ... але він працював на мене.
SEG.Veenstra

14

Наведене рішення врешті-решт працює для мене; однак мені потрібно зробити ще кілька додаткових кроків, щоб, нарешті, зробити його успішним для компіляції. (Ці додаткові кроки були потрібні навіть на Xcode 9.)

  1. Xcode: Файл -> Налаштування робочої області -> Система побудови: Спадкова система збірки
  2. Xcode: Продукт -> Очистити
  3. Поверніть, щоб скласти через різні типи емуляторів, наприклад, "iPhone 8", "iPhone 8 Plus" тощо (вони можуть вийти з ладу або не бути).
  4. Врешті-решт компілюйте на "Загальному пристрої iOS"

Мені потрібно було пройти кілька цих кроків, щоб він також працював.
Лівен Чжао

13

Просто перевірте шлях до файлу .plist у Налаштуваннях побудови вашої цілі

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


Так - я перемістив список в окрему папку. Я думаю, що папки раніше були віртуальними, а тепер справжніми (річ із папок синього / жовтого). У будь-якому випадку ваша відповідь була точкою :-)
Пітер

10

Я вирішив цю проблему таким чином: перейдіть до фаз збірки вашого проекту (натисніть на піктограму проекту вгорі та натисніть на «Фази збірки»). Шукайте там свій файл. Якщо він є (він буде сірим), видаліть його. Потім очистіть (shift + alt + команда + k) і запустіть! Сподіваюся, це допомагає.


9

Якщо помилка говорить, що вона не може знайти Info.plist і виглядає неправильним шляхом , зробіть наступне:

  1. Виберіть проект з навігатора, а потім виберіть ціль
  2. Виберіть "Налаштування побудови" та шукайте "список"
  3. Повинна бути опція "Файл Info.plist". Змініть розташування на правильне.

Ця відповідь також застосовується, якщо ви перейменовуєте папку / структуру програми. Дякую @keverly
Lorem

5

Ніщо з перерахованого вище не працювало для мене, але це:

  1. Відкрийте проект у Finder, клацніть правою кнопкою миші на .xcodeproj файл та покажіть вміст пакета
  2. Відкрийте project.pbxproj у текстовому редакторі
  3. Знайдіть посилання на ваш файл, що відсутній
  4. Відредагуйте path = "path/to/file.swift"фактичне місце на диску та збережіть файл.
  5. Побудуйте проект

Це те, що це виправляє ... неймовірне
Девід Шукайте

Те ж саме. Як, у пеклі, ти це зрозумів?
Пітер Шорн

2

відкрийте праву панель навігації, де існують ваші файли проекту АБО JSUT натисніть на cmd + 1. Потім знайдіть папку "Відновлені посилання". Відкрийте всі червоні файли.


2

У мене це сталося для побудови моїх тестових одиниць. Це могло статися, оскільки я видалив приклади тестів.

Я вийняв тестовий пакет Unit, потім повторно додав його, як показано на малюнках нижче, і все знову було добре.

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

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


2

Я зіткнувся з цією помилкою після перейменування файлу. Xcode якось неправильно перейменував фактичний файл на диску.

Тому файл не вдалося знайти. Інколи файли отримують виділення з червоним кольором тексту. В інший час значок Swift перед файлом отримував сіру накладку.

Виправити було просто.

  • Подивіться на помилку і перегляньте, який саме файл він не може знайти.
  • Виберіть файл, який неможливо знайти.
  • Перейдіть у "Інспектор файлів". Це на правій панелі навігації Xcode.
  • Натисніть на значок папки.
  • Виберіть правильний файл.
  • Очистіть збірку та запустіть її знову.

1

У мене була подібна проблема після оновлення до нової швидкої версії нещодавно. Переміщення файлів призвело до того, що мій проект xcode посилається на елементи, які вже не були в каталозі проектів, що дало мені файл введення для побудови коду помилки не знайдено.

У моїй ситуації я якось мав декілька файлів / зображень, на які посилався, як описано нижче:введіть тут опис зображення

На зображенні вище.

  • Перейдіть на сторінку Цілі.
  • Потім натисніть на вкладку Фази збірки у верхній частині.
  • Прокрутіть униз до Копіювання ресурсів групи
  • Знайдіть уражені файли та видаліть їх. (натисніть на видалити або виберіть їх і натисніть кнопку мінус)

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

Я сподіваюся, що це допомагає комусь іншому!


1

У мене було те саме питання. Проблема полягала в тому, що у мене не було жодного файлу під ціллю> Фази збірки> Компілювати джерела. Проблему було вирішено після того, як я додав у leas один файл до джерел компіляції.


1

Не те, щоб я зробив щось не так, але я зіткнувся з цим питанням з зовсім іншої причини і якось знаю, що це спричинило.

Раніше я використовував Finder і перетягував файл у каталог / папку свого проекту. Я не перетягнув у Xcode . Щоб Xcode включив цей файл у проект, мені довелося потім перетягнути його в Xcode.

Але коли я перейшов до нової гілки, у якій не було цього файлу (і не потрібно було), Xcode давав мені цю помилку:

Вхідний файл збірки неможливо знайти: '/ Користувачі / мед / Документи / xp / xpios / powerup / Розширення моделей / CGSize + Extension.swift'


Я зробив чисту папку збірки та видалив отримані дані, але це не спрацювало, поки я не перезапустив свій Xcode.


1

Це працювало для мене

  1. спробуйте видалити файли червоного кольору
  2. видалити файли з отриманих даних
  3. очистити папку збірки
  4. потім спробуйте створити, використовуючи "нову систему збірки" з налаштувань файлу> робочої області

1

У моєму випадку файл (і каталог), який згадував XCode, був невірним, і проблема почала виникати після злиття Git із відносно величезною гілкою. Щоб виправити те саме, я зробив наступні кроки:

  • Шукали файл у системі директорій XCode.
  • Знайдено помилковий файл, виділений червоним кольором (тобто він відсутній).
  • Клацніть правою кнопкою миші на файл і вилучив файл.
  • Я спробував створити свій код ще раз, і вуаля, це було успішно.

Я сподіваюся, що ці кроки допоможуть комусь вийти.


0
  1. Перейдіть до Xcode-> File -> Налаштування проекту
  2. Змінити систему збирання: - "Спадкова система збірки".
  3. Очистити, побудувати та натиснути Виконати.

0

Що скаржився на Xcode, це файл XIB, я працював над ним, перейшовши до Project -> Фази збірки -> Копіювати ресурси пакету, видаляючи "проблемний" XIB, очищаючи (CMD + Shift + K), будуючи та додаючи його знову.


0

Існує також одна можливість, що іноді, коли ви переміщуєте свої файли в іншу папку, а особливо, коли ви переміщаєте їх info.plistдо іншої папки, вам потрібно визначити розташування цього файлу. Щоб вирішити цю проблему, просто натисніть на синій значок вашого проекту вгорі, і ви побачите кнопку замість назви проекту та ідентифікатор пакета, натисніть на нього та знайдіть info.plistфайл там, очистіть і компілюйте щасливо.


0

Я зіткнувся з цією проблемою незабаром після оновлення до Xcode 10, але це не було проблемою.

Я спробував змінити систему збирання, але це дало мені окрему помилку, яка означала те саме. Взагалі кажучи, "Файл X знайти не можна".

Є кілька речей, щоб перевірити, коли файл неможливо знайти.

  1. Відновлені посилання Папка Apple робить цю приємну річ, коли якщо вона виявить посилання на файл, який не існує, додасть це посилання в групу під назвою "Відновлені посилання"

Це приємно від Apple, але це не завжди працює.

  1. Фази складання джерел компіляції У цьому списку можуть бути метадані для файлу, який проект передбачає компілювати, але файл насправді не існує, і він намагається знайти файл у вказаному шляху. У цьому списку вони будуть затемнені, видалені та повторно додані, переміщуючи цільові залежності файлу або видаляючи його вручну та перетягуючи.

  2. Шлях до файлу Двічі перевірте шлях файлу до друку помилки та шлях до файлу у пошуку. Це можна легко побачити, натиснувши на файл у коді Xcode та встановивши прапорець "Показати інспектор файлів" (сама ліва вкладка). Якщо ці стежки правильні, то ви добрі!

  3. Затемнені файли у вашому проекті, які не містять відновлених посилань або червоний. Цей мене озлобив, тому що це не очевидно щодо того, що сталося, але в основному, якщо ви зайшли в пошук і перемістили файл в інше місце з оновленням посилання в проекті це призведе до помилки, оскільки файл там уже не існує. Єдине вказівка, яке я знайшов для цього, - це те, що файл на вкладці «Навігатор проектів» (ліва частина вкладки) дуже злегка затемнений, але коли ви збираєтесь видалити цей файл, Xcode не пропонує вам видалити посилання або надіслати на сміття. Ви можете виправити це, видаливши файл та повторно додавши його до проекту або перейшовши на вкладку «Інспектор файлів» та натисніть на значок папки поруч із контуром та змініть його на потрібне місце.

Так чи інакше, помилка вказує на те, що він не може знайти файл, перехід на стару систему складання є основою для більш конкретної проблеми. Ми як розробники розуміємо, що компілятор просто хоче, щоб артефакт був перелічений в кінці шляху файлу. Десь шлях невірний! Ми повинні знайти, де це!

Мою проблему було вирішено з переліченого вище пункту 4. Сподіваюся, це комусь допомагає.


0

Файл> Налаштування проекту> Змінити системи побудови на застарілі системи збирання


3
Трохи пояснення було б корисно
vik_78

0

У моєму випадку я випадково видалив одну сторону папку xcodeproj, яку я використовував у своєму додатку.


0

Якщо ви спробували профілювання, а потім це не спрацювало, і тепер ви не можете його скласти, перейдіть до своєї цільової панелі (через піктограму проекту), перейдіть на вкладку Налаштування збірки, знайдіть ПРОФІЛЬ і встановіть для CLANG_USE_OPTIMIZATION_PROFILE значення "Ні".


0

У моєму випадку я створив нову тестову ціль і видалив швидкий файл за замовчуванням, щоб у нього залишилося просто info.plist. Додавання нового файлу виправлено це.


0

У моєму випадку у мене був сценарій збірки, який генерував бінарний файл .app (Buck). Сценарій побудови Buck виконувався паралельно з кроком збірки Swift Embed. Оскільки бінарний файл .app ще не був сформований, крок Swift провалиться.

У своєму сценарії збірки я додав "$BUILD_PRODUCTS_DIR/$EXECUTABLE_PATH"під "Output Files".

Це повідомляє новій системі збирання Xcode, що цей скрипт видасть додаток Бінарний, і, у свою чергу, Xcode обов’язково синхронізує будь-які етапи збирання, які залежать від цього артефакту.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.