2013-04-11 4 views
31

Разрабатывает существующее приложение iOS, и я должен написать блок-тесты для этого проекта. Он работает в Simulator 6.0. Всякий раз, когда я пытаюсь проверить проект, он показывает сообщение об ошибке ниже. Невозможно определить точную ошибку.«Файл не найден», «команда компоновщика не сработала с кодом выхода 1» в Xcode 4.5.1

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) 

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

ответ

0

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

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

+0

Hi. Я не могу видеть/Пользователи/Yuva/Library/потому что внутри папки Yuva Библиотека пропущена. Что я делаю, чтобы решить эту проблему? Можете ли вы помочь мне? Благодарю. –

+0

По какой-то причине код, который вы написали, считает, что там есть файл. Я знаю, что иногда папки DerivedData перепутались, и, возможно, просмотр пункта меню «Настройки» -> «Местоположения» Xcode может очистить его. –

+0

Благодарим вас за ответ. Теперь я получил папку Derived Data, а затем ваш гид. Есть много папок с Build, Index, info.plist, Logs, scm.plist и TextInex. Могу ли я удалить элементы папки DerivedData? Пожалуйста, помогите мне. Благодарю. –

0

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

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

35

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

Подробнее об этой установке можно найти на Adding Unit Tests to an existing iOS project with Xcode 4 я рассмотрел те же шаги, и это помогло мне исправить мой проект в Xcode 5.

+2

У меня была эта проблема после переименования , Изменение «Bundle Loader» в тестовых настройках сборки помогло мне исправить это. – derpoliuk

+0

То же самое: кто-то переименовал приложение, и компоновщик все еще искал старый. –

+1

Это сработало для меня. Для новичков, как я, действительно сохраняются в поиске «тест-мишень» от «Настройки проекта». Вы сразу увидите ошибочные «пусковые загрузчики» в разделе «linking», но это не стало причиной моей ошибки, поскольку эти записи относятся к «$ (TEST_HOST)». Прокрутите страницу вниз до раздела «Тестирование» и исправьте записи «тестового хоста», и это обновит раздел связывания. – Josh

81

Эта ошибка изгнали меня с ума 1,30 ч

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

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

шаги я следовал отладить и исправить

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

  2. Следуйте инструкциям на этой ссылке http://twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/ - такая же ошибка, не разрешена.

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

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

Затем

+14

Создайте новую схему для меня – onmyway133

+6

Создайте новую схему для меня тоже, спасибо большое! – Will

+18

У меня была такая же проблема - для меня создана новая схема. Шаги в XCode 6 Перейдите в раздел ПРОГРАММИРОВАНИЕ ТАБЛИЦЫ, затем перейдите к SCHEME, а затем перейдите к значку MANAGE SCHEME PRESS Minus, а затем +, чтобы создать новую схему. – user1154390

17

Удалите схему повторно создать его (нажмите новый значок или с помощью Autocreate из Xcode). Меня устраивает.

+0

это работает для меня, мой бог ив ударил головой, чтобы исправить это, Спасибо – arnold

+0

@haotang вы спасатель жизни ... Спасибо большое ... я пробовал так много но ничего не работало, кроме этого ... Ty :) –

+0

@NikhilLihla yw :) – haotang

14

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

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

enter image description here

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

Cheers !!

+0

ЭТО ЭТО !!!!! Спасибо, Kuldeep. –

+0

Всегда мое удовольствие @ ThomásC. :) – Kuldeep

+0

Это все .. произошло со мной, когда я добавляю пробел в Имя продукта. Помните, что вы должны изменить не только одно имя, но и два в одном и том же пути, например. от FlyApp.app/FlyApp до abcd.app/abcd – Bruce

0

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

5

На Xcode 6 вам нужно:

  1. перейти в папку продукции
  2. нажмите на файл .xctext
  3. на "мишенями" выбрать тесты
  4. и на узле Application выберите приложение.
  5. Нажмите кнопку «Создать приложение».

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

0

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

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

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

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

Смежные вопросы