"Файл не найден", "команда компоновщика не выполнена с кодом выхода 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)
Не могли бы вы помочь мне решить эту ошибку компоновщика и протестировать приложение?
Ответы
Ответ 1
Эта ошибка привела меня в бешенство в течение 1,30 часа
Я изменил имя своего продукта и отключил параметр моментального снимка. Затем эта ошибка выскочит.
Ошибка ld: файл не найден:.././previousproductname.app/previousproductname
Шаги, которые я выполнил для отладки и исправления
Все вышеуказанные шаги действительны.
Тогда
Ответ 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 дважды и ожидает того же результата: |