it-swarm.com.ru

Apple Mach-O Linker & То же Ошибка - Xcode 8

Я только что обновил свой Xcode до Xcode 8 и теперь пытаюсь преобразовать код моего проекта в Swift 2.3. Мне удалось собрать пару раз, используя Xcode 8 без каких-либо ошибок. Теперь появились следующие ошибки:

Ошибка № 1: Ошибка компоновщика Apple Mach-O: Сбой команды компоновщика с кодом выхода 1

файл: файл не найден
clang: error: сбой команды компоновщика с кодом выхода 1 (используйте -v, чтобы увидеть вызов)

Я даже не знаю, что такое файл .o. Однако файл Swift для DownloadsViewController есть.

Ошибка № 2: ошибка Ditto: команда/usr/cin/ditto завершилась ошибкой с кодом выхода 1

то же самое: не могу получить реальный путь к источнику '/Users/Linus/Library/Developer/Xcode/DerivedData/MyApp-asdjeshhsetnfxbbciegrfdpdreneewgr/Build/Intermediates/MyApp.build/Debug-iphonesimjectppO MyApp-Swift.h»
Команда/usr/bin/ditto завершилась неудачно с кодом выхода 1

То же самое происходит 3 раза: для MyApp.swiftdoc, MyApp.swiftmodule и MyApp-Swift.h.

Заранее спасибо!

17
LinusGeffarth

Обновление

Xcode волшебным образом решил исправить ошибки самостоятельно. Мой проект запускается снова, без каких-либо ошибок.
Я не сделал ничего, что решило бы эту ошибку.

5
LinusGeffarth
  1. Выйти из Xcode
  2. Перезагрузите систему 
  3. Выберите Xcode -> Настройки. 
    Откроется всплывающее окно. Выберите «Местоположения». В локациях вы увидите «Производные данные». Нажмите на значок стрелки прямо рядом с путем.
    Откроется папка, содержащая «Производные данные», удалите ее.
  4. Очистить продукт и запустить 
41
RakeshDipuna

Убедитесь, что вы открываете проект из файла .xcworkspace вместо .xcodeproj

27
Agu Dondo

шаг 1 = клик по проекту в меню навигации

шаг 2 = выбрать проект

шаг 3 = настройки сборки 

шаг 4 = включить битовый код для поиска, если битовый код - да, затем изменить на Нет 

17
Parth Changela

Ни один из предыдущих ответов не решил мою проблему. Я думаю, что это происходит из-за изменений в podFile cocoapods, от использования фреймворков до их неиспользования 

Фреймворки еще напоминают в Target> General Properties> Linked Frameworks. Я удалил их Я также удаляю -framework и соответствующие фреймворки из других флагов компоновщика (сохраняя унаследованные и objC флаги)

Надеюсь, что это может помочь

9
Romain TAILLANDIER

Это случилось со мной после удаления приложения во время его работы.

Я решил это очистить проект.

Продукт> Очистить или Shift + Command + K

5
calosth

Это потому, что в какой-то момент какой-то файл проекта не был скомпилирован. В моем случае AppDelegate.Swift не было в компиляторе. Поэтому я добавил это вручную, и это сработало.

 enter image description here

4
Ewerson

Очистите XCode с помощью следующих cmds и пересоберите:

rm -rf ~/Library/Developer/Xcode/DerivedData/
killall Xcode 2> /dev/null
killall Instruments 2> /dev/null
killall 'iOS Simulator' 2> /dev/null
killall Simulator 2> /dev/null
killall 'Simulator (Watch)' 2> /dev/null
killall ibtoold 2> /dev/null
killall simctl 2> /dev/null
# There may be others
# Kill the service itself
Sudo killall -9 com.Apple.CoreSimulator.CoreSimulatorService
rm -rf ~/Library/*/CoreSimulator
1
Shijing Lv

Для моего собственного собственного приложения я удалил папку тестового проекта inProject Navigator и Targets Это решило мою проблему.

1
aolmez

Включение битового кода в «Нет» решило эту проблему. Это находится в настройках сборки.

1
PiKa

Если вы импортируете фреймворк через этапы сборки, попробуйте поместить его в папку вашего проекта и добавить в Link Binary с библиотеками. На самом деле, я уже сталкивался с этой проблемой раньше, я очень разочарован этой ошибкой, пока не узнал, что мне нужно поместить .framework в папку моего проекта ... 

1
vidalbenjoe

Не волнуйтесь, просто перейдите к цели вашего проекта, а затем настройте параметры и включите поиск, чтобы изменить битовый код, изменив его с ДА на НЕТ.

1
Sandip Mahajan

У меня была такая же проблема, когда я изменил Xcode с предыдущей версии 7 на новый XCode 8. В новом Xcode (сейчас 8.3.3) в компиляторе есть больше настроек. 

Когда вы обновляете настройки проекта в новый Xcode (используя Editor-> Validate Settings), эти новые настройки применяются и устанавливаются в значение по умолчанию YES. После этого обновления у меня была ошибка компоновщика!

В моем проекте я сравнил предыдущую версию файла .pbxproj с новой (после проверки настроек), используя Beyond Compare (или аналогичный).

Таким образом я могу видеть новые настройки, добавленные в новой версии XCode, и я установил новое значение Настройки в НЕТ. После этого обновления все было в порядке и ошибка компоновщика исчезла.

1
Lorenzo

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

ОБНОВЛЕНИЕ

Сборка преуспела, при запуске она просто рухнула. Чтобы решить эту проблему, я использовал File> Add Files to Project для GoogleService-Info.plist, и это сработало.

0
JeremyF

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

Чтобы переконвертировать ваш проект, вам нужно установить для параметра сборки Swift_version значение yes, чтобы ваша цель появилась в списке конверсий.

0
Chris Mitchelmore

Я получил ту же проблему, потому что я определил класс (используя @interface), но не предоставил реализацию (используя @implementation) для него. Это был простой класс, поэтому даже пустая реализация разрешила его.

0
CSawy

Проблема, обнаруженная в XCode 8.2.1 (версия 8C1002) после преобразования проекта в текущий синтаксис Swift (Swift 3). Мне просто нужно было восстановить его после очистки, и ошибки исчезли.

0
Darius Miliauskas

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

0
Rainer Niemann

Также просто проверьте, импортируете ли вы файл реализации "* .m" в любой из ваших классов, что может вызвать ту же проблему. 

Удаление оператора импорта может решить проблему

0
CaptainBluMagic