Apple Mach-O Linker & Ditto Error - Xcode 8

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

Ошибка №1: Ошибка компоновщика Apple Mach-O: сработала команда Linker с кодом выхода 1

ld: файл не найден:/Users/Linus/Library/Developer/Xcode/DerivedData/MyApp-asdjeshhsetnfxbegcsbcipdreneewgr/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/x86_64/DownloadsViewController. о
clang: ошибка: команда компоновщика не удалась с кодом выхода 1 (используйте -v для вызова вызова)

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

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

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

Ошибка ditto возникает 3 раза: для MyApp.swiftdoc, MyApp.swiftmodule и MyApp-Swift.h.

Спасибо заранее!

Ответы

Ответ 1

UPDATE

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

Ответ 2

  • Выйти из Xcode
  • Перезагрузите систему.
  • Выберите Xcode → Настройки.
    Это откроет всплывающее окно. Выберите "Местоположения". В разделе "Местоположения" вы увидите "Производные данные". Нажмите на значок стрелки рядом с дорожкой. Это откроет папку, содержащую "Производные данные", удалите ее.
  • Очистите продукт и запустите

Ответ 3

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

Ответ 4

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

Шаг 2 = выберите проект

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

шаг 4 = бит для поиска, если биткод да, чем изменение на No

Ответ 5

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

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

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

Ответ 6

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

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

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

Ответ 7

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

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

Ответ 8

Очистить XCode с помощью следующих командлетов и перестроить:

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

Ответ 9

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

Ответ 10

Не волнуйтесь, просто перейдите в свой проект, а затем создайте настройку и измените бит бит, чтобы изменить значение YES на NO.

Ответ 11

Превращение биткода в "Нет" решило эту проблему. Это можно найти в настройках сборки.

Ответ 12

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

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

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

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

Ответ 13

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

Ответ 14

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

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

Ответ 15

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

Ответ 16

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

Ответ 17

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

Ответ 18

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

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

Ответ 19

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

UPDATE

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

Ответ 20

Убедитесь, что у вас есть следующие изменения в настройках рабочего пространства в вашем xcode:

Перейдите к настройке рабочего пространства и внесите следующие изменения:

Настройка рабочего пространства:  Система сборки:    Устаревшая система сборки

За -User рабочее пространство DerivedData:   Относительное расположение рабочего пространства Система сборки   Использовать настройки пользователя

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

Ответ 21

Выполните следующие шаги:

step1: перейдите на вкладку "Фаза сборки", а затем разверните ссылку "Бинарное соединение с библиотекой"

step2: Затем перейдите на вкладку "Общие", затем разверните связанную структуру и библиотеку (потому что Yourprojectname.framework отключен)