6 дублирующих символов для архитектуры i386
duplicate symbol _OBJC_METACLASS_$_SBJsonParser in:
/Users/Gaditek/Library/Developer/Xcode/DerivedData/DietBet-gyhoyhmdrobtqregldjyixtgmize/Build/Intermediates/DietBet.build/Debug-iphonesimulator/DietBet.build/Objects-normal/i386/SBJsonParser.o
/Users/Gaditek/Desktop/AliMaisamProjects/Dietbet/DietBet/libfacebook_ios_sdk.a(SBJsonParser.o)
duplicate symbol _OBJC_CLASS_$_SBJsonParser in:
/Users/Gaditek/Library/Developer/Xcode/DerivedData/DietBet-gyhoyhmdrobtqregldjyixtgmize/Build/Intermediates/DietBet.build/Debug-iphonesimulator/DietBet.build/Objects-normal/i386/SBJsonParser.o
/Users/Gaditek/Desktop/AliMaisamProjects/Dietbet/DietBet/libfacebook_ios_sdk.a(SBJsonParser.o)
duplicate symbol _OBJC_IVAR_$_SBJsonWriter.sortKeys in:
/Users/Gaditek/Library/Developer/Xcode/DerivedData/DietBet-gyhoyhmdrobtqregldjyixtgmize/Build/Intermediates/DietBet.build/Debug-iphonesimulator/DietBet.build/Objects-normal/i386/SBJsonWriter.o
/Users/Gaditek/Desktop/AliMaisamProjects/Dietbet/DietBet/libfacebook_ios_sdk.a(SBJsonWriter.o)
duplicate symbol _OBJC_IVAR_$_SBJsonWriter.humanReadable in:
/Users/Gaditek/Library/Developer/Xcode/DerivedData/DietBet-gyhoyhmdrobtqregldjyixtgmize/Build/Intermediates/DietBet.build/Debug-iphonesimulator/DietBet.build/Objects-normal/i386/SBJsonWriter.o
/Users/Gaditek/Desktop/AliMaisamProjects/Dietbet/DietBet/libfacebook_ios_sdk.a(SBJsonWriter.o)
duplicate symbol _OBJC_METACLASS_$_SBJsonWriter in:
/Users/Gaditek/Library/Developer/Xcode/DerivedData/DietBet-gyhoyhmdrobtqregldjyixtgmize/Build/Intermediates/DietBet.build/Debug-iphonesimulator/DietBet.build/Objects-normal/i386/SBJsonWriter.o
/Users/Gaditek/Desktop/AliMaisamProjects/Dietbet/DietBet/libfacebook_ios_sdk.a(SBJsonWriter.o)
duplicate symbol _OBJC_CLASS_$_SBJsonWriter in:
/Users/Gaditek/Library/Developer/Xcode/DerivedData/DietBet-gyhoyhmdrobtqregldjyixtgmize/Build/Intermediates/DietBet.build/Debug-iphonesimulator/DietBet.build/Objects-normal/i386/SBJsonWriter.o
/Users/Gaditek/Desktop/AliMaisamProjects/Dietbet/DietBet/libfacebook_ios_sdk.a(SBJsonWriter.o)
ld: 6 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Подскажите пожалуйста, как исправить эту проблему?
9 ответов
Как видите, компоновщик жалуется, что SBJsonWriter
а также SBJsonParser
оба определены в libfacebook_ios_sdk.a и как отдельные файлы в вашем проекте.
Вы не можете действительно решить проблему, кроме как удалить отдельные файлы из вашей цели.
Проблема заключается в том, что разработчики libfacebook_ios_sdk.a решили, что было бы неплохо использовать инфраструктуру json (не обращая внимания на конфликты с кодом, используемым в хост-приложении). Это распространенная проблема с SDK на iOS.
Я решил проблемы, пожалуйста, следуйте шаг.
- Перейти к цели приложения
- Компилировать источники
- Удалите дубликат файла, используя (-).
Проблема, скорее всего, из-за опечатки при включении заголовка. Убедитесь, что файл заголовка (.h) включен, а не файл реализации (.m).
Это была проблема для меня
Что-то, что часто помогает, если ничего не работает, - это открыть ваш файл.pbxcodeproj с помощью текстового редактора и grep для имени класса, который появляется в журнале ошибок в Xcode. Может быть две повторяющиеся строки - удалите одну из них.
Если, прежде всего, проблема не решена, проверьте, объявляете ли вы константу в двух разных файлах (я имею в виду, проверьте, есть ли у вас два одинаковых (.h &.m) файла. В вашем проекте не должно быть дубликатов файлов).
Если вы импортируете любой из ваших.h файлов дважды, это произойдет.
Например, если вы импортируете какой-либо файл.h как....ViewController.h, так и....ViewController.m, это произойдет.
Вы также можете:
- копия
.h
файлы конфликтаpods
, - Удалить эти конфликты
pods
отpodfile
, - Скопируйте эти
.h
файлы для проецирования. - Переименовать в
#import
</.h>
в".h"
из скопированных.h
файлы. - Делать
pod install
и булид.
Хитрость в том, что ваш код не содержит ошибок, потому что .h
файлы импортированы, но .o
файлы ссылаются правильно.
Кажется, у вас, вероятно, есть файл.h/.m, включенный дважды, например, дважды включенный сторонний API/ библиотека, или вы создали новый файл, имя которого точно совпадает с уже имеющимся файлом в проекте. Проверьте, есть ли у вас файлы, которые дублируются в папке вашего проекта.