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

"Файл не найден", "команда компоновщика не выполнена с кодом выхода 1" в Xcode 4.5.1

Я разрабатываю существующее приложение iOS, и мне приходится писать unit test для этого проекта. Он работает в Simulator 6.0. Всякий раз, когда я пытаюсь протестировать проект, он показывает сообщение об ошибке ниже. Я не могу определить точную ошибку.

id: file not found: /Users/Yuva/Library/Developer/Xcode/DerivedData/FlyApp-aexukpgtbathuadgxlnm/Build/Products/Debug-iphonesimulator/FlyApp.app/FlyApp
clag: error: linker command failed with exit code 1 (use -v to see invocation)

Не могли бы вы помочь мне решить эту ошибку компоновщика и протестировать приложение?

4b9b3361

Ответ 1

Эта ошибка привела меня в бешенство в течение 1,30 часа

Я изменил имя своего продукта и отключил параметр моментального снимка. Затем эта ошибка выскочит.

Ошибка ld: файл не найден:.././previousproductname.app/previousproductname

Шаги, которые я выполнил для отладки и исправления

  • Открытый организатор удалил производные данные, перезапустил Xcode. - не разрешено

  • Последующие шаги этой ссылки http://twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/ - та же ошибка, не разрешена.

  • Наконец-то изменилось имя схемы, удалили мою старую схему и добавили новые, решили мою проблему.

Все вышеуказанные шаги действительны.

Тогда

Ответ 2

Я столкнулся с тем же сообщением об ошибке. Оказалось, что я переименовал цель своего приложения и не обновил тестовую цель, "Настройки сборки", "Установка загрузчика пакетов" на свое новое имя приложения.

Подробнее об этом параметре можно узнать в Добавление тестов устройств в существующий проект iOS с Xcode 4. Я рассмотрел те же шаги, и это помогло я исправляю свой проект в Xcode 5.

Ответ 3

Удалите свою схему, затем заново создайте ее (щелкните новый значок или используйте автосоздание xcode). Это работает для меня.

Ответ 4

Вы, должно быть, изменили название своего продукта. Из-за неправильного совпадения имени вашей рабочей области и имени продукта (приложения) возникает эта ошибка.

Вам просто нужно заменить имя рабочей области на имя продукта (приложения) в настройках TEST HOST Build для параметра ProjectName-Tests, как указано на изображении. Чтобы догнать это, выберите цель ProjectName-Tests, выберите "Настроить параметры", найдите "Test Host".

enter image description here

Это стандартное решение для этой ошибки.

Ура!!

Ответ 5

В xcode 6 вам необходимо:

  • перейти в папку продуктов
  • нажмите на файл .xctext
  • в разделе "ЦЕЛИ" выберите Тесты
  • а в Host Application выберите ваше приложение.
  • Нажмите "Создать".

Работает для меня!

Ответ 6

Ваш компоновщик ищет файл по адресу:/Users/Yuva/Library/Developer/Xcode/DerivedData/FlyApp-aexukpgtbathuadgxlnm/Build/Products/Debug-iphonesimulator/FlyApp.app/FlyApp

Вы следили за тем, чтобы узнать, есть ли файл? Обратите внимание, что FlyApp.app, вероятно, является пакетом, и вам придется "видеть содержимое пакета", если вы просматриваете Finder. Если это не так, либо 1) вам нужно сначала создать FlyApp.app, либо 2) у вас есть что-то в вашем тестовом коде, которое зависит от его присутствия, которое не может быть определено из вашего вопроса.

Ответ 7

Ответ лежит на записи "Настройки сборки" > "Поиск в библиотеке". Убедитесь, что в нем нет полностью определенных путей. Украсьте их идиомой $SRCROOT и приложите путь двойными кавычками. Если есть какие-либо обратные косые черты, обязательно удалите их.

Сделайте "Чистое", а затем "Сборка", и вы должны вернуться в бизнес. Это похоже на проблему с Xcode 5.x

Ответ 8

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

Ответ 9

ARGH! Это ужасно неприятная проблема, которая возникла из-за моего XCode 8.2

В моем случае это сводилось к удалению моей цели тестов из схемы, созданию и запуску основного приложения, а затем считыванию целевого теста в раздел "Тест".

Похоже, что цель "Тесты" пыталась найти что-то, что она захотела в Derived Data, которая еще не была построена. Запуск приложения без попытки создания тестов также позволил подготовить ранее отсутствующие данные.

... Insanity делает то же самое в XCode дважды и ожидает того же результата: |