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

Сбой команды Linker с кодом выхода 1 (используйте -v для вызова вызова), Xcode 8, Swift 3

Я не могу избавиться от этой ошибки!

Я пробовал все виды вещей, таких как очистка производных данных (Preferences-> Locations-> щелкнуть серой стрелкой, чтобы открыть папку производных данных в Finder-> щелчок правой кнопкой мыши, перейти в корзину), очистить проект (CMD + Shift + K или Product-> Очистить), обновив карфаген и зависимости, проверил другие ответы в StackOverflow (в основном это настройки в Build Settings/Phases) и отозвал приложение из github и т.д.

Этот же проект работает на компьютерах моих сотрудников.

РЕДАКТИРОВАТЬ: Из текущего ответа с самым высоким рейтингом я смог отладить немного дальше... Я все еще не уверен, как исправить, хотя. Похоже, у меня есть что-то в проекте дважды? Я посмотрел и не могу найти ничего, что появляется дважды!

Вот картинка из бревна:

4b9b3361

Ответ 1

i столкнулась с такой же проблемой сегодня в xcode 8 версии 8.3.2

щелкните правой кнопкой мыши по проблеме → раскройте в журнале

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

то вы можете проверить, что вызывает эту проблему.

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

Ответ 2

Возможно, вы установили файл подкачки, и вы все еще пытаетесь построить из файла .xcodeproj вместо .xcworkspace

Ответ 3

Единственное, что сработало для меня, это запустить pod deintegrate и pod install

Ответ 4

Вы попробовали чистую? cmd + shift + k

Ответ 5

Хорошо... Итак, вот что решило мою проблему...

в файле делегата приложения:

#import "AppDelegate.h"
#import "DarkSkyAPI.h"
//#import "Credentials.h"

Я импортировал Credentials.h уже в файле DarkSkyAPI.m в моем проекте. Комментируя дополнительный импорт, ошибка исчезла!

Некоторые вещи, которые можно упомянуть и, возможно, помогут кому-либо в будущем. Ответ @umairqureshi_6 помог мне в этом процессе, но не решил его. Он привел туда, где я смог выкопать информацию. Я продолжал видеть файлы AppDelegate и DarkSkyAPI, появляющиеся в журнале ошибок, и информация, которую он вытаскивала из файла Credentials, вызывала ошибку. Я знал, что это должно быть в одном из этих 3-х файлов, поэтому я сразу же проверял импорт, потому что я помнил, слышал, что .h несет все импорт из своего .m файла. Boom!

Ответ 6

Теперь я уже ответил. Но если это поможет кому-то сэкономить время: У меня была такая же ошибка. Я проверил все, чтобы найти очень маленькую и тупую ошибку с моей стороны. Я импортировал основной файл данных ManagedObject в контроллер представления моего проекта. Я случайно импортировал файл .m вместо файла .h, который вызывал дубликат символа в ошибке архитектуры (команда компоновщика не удалась), потому что мой .m файл класса свойств импортирует .h файл основных данных класса и, следовательно, вызывать дублирование импорта.

Итак, просто проверьте, не импортировали ли вы нужные файлы, прежде чем пытаться использовать несколько решений.

Ответ 7

Многие решения упомянуты выше. Никто не работал для меня (но, пожалуйста, попробуйте выше).

Выберите "Проект" → "Выбрать цель" → "Связанные рамки и библиотеки" → "Добавить все библиотеки модулей". (удалить, если они существуют во встроенных двоичных файлах)

Теперь удалите их из Framework Folder в левом файловом обозревателе xcode.

Это решило мою проблему.

Ответ 8

Выберите project-> Build Phase-> Link Binary с библиотеками и добавьте все библиотеки pod.

Ответ 9

У меня была такая же проблема с использованием Carthage для зависимостей.

Просто зайдите в "Выбор проекта" → "Настройки сборки" → "Поиск включения битового кода" → Если выбрано "Да", выберите "Нет"

Это решило эту проблему для меня.

Ответ 10

У меня была такая же проблема.

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

Решение было удалить эти переменные.

Ответ 11

Для любого, имеющего эту проблему с платформой Flurry. Это то, что исправило мою проблему. Для меня проблема была в том, что я импортировал следующие файлы, но никогда не использовал их. "libFlurryTVOS_9.2.3" "libFlurryWatch_9.2.3"

Поэтому все, что мне нужно было сделать, это перейти к настройкам целевого проекта и удалить эти 2 файла из раздела "Связанные рамки и библиотеки", и проблема была решена.

Ответ 12

Убедитесь, что флажок Find Implicit Dependencies установлен.

(Продукт → Схема → Редактировать схему → Построить → Найти неявные зависимости)

Ответ 13

Мне просто нужно было сделать import Foundation!

Я использовал Kitura для серверной части Swift и продолжал забывать об этом!

Ответ 14

Вот моя проблема и решение:

Я удалил два файла из исходного кода, используя исходное дерево (контроллер версии). После применения diff, который содержит два класса, которые я удалил, Xcode не добавил его автоматически. Поэтому я получил ошибку компоновщика.

Я вручную добавил файлы, щелкнув правой кнопкой мыши по имени группы и выбрав "Добавить файлы в". Теперь моя ошибка решена.

Если кто-то столкнулся с ошибкой компоновщика в отношении файла класса, попробуйте добавить его вручную.

Ответ 15

Не было этой проблемы, когда я собрал и запустил на собственном устройстве. Была только эта проблема с симуляторами. Я просто перезагрузил компьютер и запустил его. Это сработало.

Ответ 16

В моем случае причиной ошибки является библиотека, которая была связана два раза.

Я использую react-native поэтому он был связан автоматически с помощью реактивной react-native link и вручную в xcode.

Ответ 17

В моем случае я изменил имя Target в моем Podfile поэтому он создает ту же ошибку для меня.

Решение

Просто зайдите project-> Build Phase->Link Binary with libraries FrameWorks Удалите старые FrameWorks, нажав minus button(-) очистите и снова запустите. Это работает мне.

enter image description here

Удалить .framework.

Ответ 18

Другие ответы не спомогли мне, поэтому здесь я поделюсь своим решением на случай, если оно может помочь кому-то другому:

Моя проблема заключалась в том, что я настраивал Podfile моего XCode-Project для неправильной платформы. Изменение "platform: ios" в начале моего Podfile на "platform: macos" помогло мне избавиться от ошибки.

Ответ 19

Я тестировал платформу Sparkle с CocoaPods.

К сожалению, я поставил "pod 'Sparkle', '~> 1.21'" в PodFile не в том месте. Я поместил это под Тестированием (для модульных тестов).

После размещения в правильном месте в PodFile, все в порядке.

Ответ 20

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

/Users/Главная/Library/Разработчик/Xcode/DerivedData​​STRONG >

После удаления, создайте проект.

Ответ 21

Для меня удаление RxSwift сработало!

Ответ 22

У меня такая же проблема. Если вы проверяете какой-либо проект github, то вместо использования git clone используйте git lfs clone, так как иногда некоторые большие файлы не клонируются должным образом при использовании только git. Также убедитесь, что ваш бит-код отключен.

Ответ 23

Для меня в файле блокировки gem указана более старая версия cocoapods, чем та, которую я установил. Мне пришлось переустановить и запустить bundle exec pod install вместо pod install

Ответ 24

Кажется, что проблема отличается для большинства из нас, и сообщение об ошибке содержит приличную информацию. В моем случае цель развертывания была установлена на 10.13 по линии export MACOSX_DEPLOYMENT_TARGET=10.13, но я выполнял 10.14. Поэтому мне пришлось переключить свою цель развертывания на 10.14 в разделе "Общие сведения"> "Информация о развертывании", чтобы символы, связанные с ITLibrary, снова были доступны.

cd /Users/foo/src/scrobble/macos/itunes-scrobble
    export MACOSX_DEPLOYMENT_TARGET=10.13

... SNIP ...

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_ITLibMediaItem", referenced from:
      objc-class-ref in AppDelegate.o
  "_OBJC_CLASS_$_ITLibPlaylist", referenced from:
      objc-class-ref in AppDelegate.o
  "_OBJC_CLASS_$_ITLibrary", referenced from:
      objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Ответ 25

Из меню Product → Clean Build Folder у меня работает.

Ответ 26

У меня возникли те же проблемы при сборке проекта Ionic 1.

Мне удалось решить проблему после удаления файла CDVLogger.h & CDVLogger.m

Ответ 27

Хорошо, у меня была та же самая проблема только сегодня, и я начал искать ее, когда наткнулся на эту тему. Я не закончил читать вопрос, когда мне пришло в голову ответ: я объявил класс с пустым конструктором

class MyClass{
    MyClass();

    void func_one(){
    // code
    }

    void func_two(){
    // code
    }

    ~MyClass(){
        cout << "Deleting object" << endl;
     }
};

Тогда я подумал, почему бы не завершить (не уверен, правильно ли я здесь выбрал слово, но кого это волнует) конструктор моего класса фигурными скобками ({}). Так я и сделал:

class MyClass{
    MyClass(){}

    void func_one(){
    // code
    }

    void func_two(){
    // code
    }

    ~MyClass(){
        cout << "Deleting object" << endl;
     }
};

Проблема устранена, мой код начал работать отлично.

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