FacebookSDK и Bolts конфликтуют друг с другом (дубликаты символов) при сборке
Не уверен, в чем проблема. 91 символ найден дублированный для armv7
Am в проекте Swift, ориентированном на iOS 7.1.
Оба фреймворка имеют последние версии.
Пробный проект очистки и удаление полученных данных., но безрезультатно.
duplicate symbol _OBJC_IVAR_$_BFAppLinkTarget._URL in:
/Users/rynecheow/Development/THPopQuiz/Frameworks/FacebookSDK.framework/FacebookSDK(BFAppLinkTarget.o)
/Users/rynecheow/Development/THPopQuiz/Frameworks/Bolts.framework/Bolts(BFAppLinkTarget.o)
duplicate symbol _OBJC_IVAR_$_BFAppLinkTarget._appStoreId in:
/Users/rynecheow/Development/THPopQuiz/Frameworks/FacebookSDK.framework/FacebookSDK(BFAppLinkTarget.o)
/Users/rynecheow/Development/THPopQuiz/Frameworks/Bolts.framework/Bolts(BFAppLinkTarget.o)
duplicate symbol _OBJC_IVAR_$_BFAppLinkTarget._appName in:
/Users/rynecheow/Development/THPopQuiz/Frameworks/FacebookSDK.framework/FacebookSDK(BFAppLinkTarget.o)
/Users/rynecheow/Development/THPopQuiz/Frameworks/Bolts.framework/Bolts(BFAppLinkTarget.o)
Ответы
Ответ 1
Была та же проблема.
- Удаление Bolts.framework не было решением, так как я получаю ошибки, о которых сказал Leo Flaherty (комментарий в принятом ответе).
- Использование решения, упомянутого iOS_DEV, кажется мне уродливым хаком.
- Использование последних SDK для Parse и Facebook также не было решением (упомянуто Simon Bøgh), так как я использовал версию 3. x из SDK для Facebook, а последнее - 4.x.
Журнал изменений в SDK в Facebook: SDK для iOS v4.0 для Facebook - это серьезное обновление версии.
Поскольку мне нужно было соответствовать предельному сроку, я не мог посвятить время переписыванию всего моего кода Facebook, чтобы он соответствовал новой версии SDK версии 4.x.
Решение, которое я предлагаю:
Вместо добавления Bolts.framework и FacebookSDK.framework в качестве рамки для вашего проекта добавьте их как Pods:
pod 'Bolts'
pod 'Facebook-iOS-SDK', '3.23.1'
Найдите здесь все доступные версии SDK для Facebook, если вам нужно использовать тот, который не является последним.
Если вы используете Swift, вам нужно добавить следующее в заголовок моста:
#import <FacebookSDK/FacebookSDK.h>
#import <Bolts/Bolts.h>
Ответ 2
У меня была такая же проблема с 91 дубликатом. То, что сработало для меня, было просто удалить Bolts.framework, который, похоже, уже включен в новый SDK для Facebook.
Надеюсь, что это поможет!
Ответ 3
Это сработало для меня.
1) Я удалил файл Bolts.framework, который пришел с синтаксическим разбором.
2) Добавлен только синтаксический анализ (выбор копии в папку назначения) и facebookSDK (снятие копии в папку назначения). Также проверен путь поиска Framework в настройках сборки.
3) Добавлен NSString *const BFTaskMultipleExceptionsException = @"BFMultipleExceptionsException";
в AppDelegate.m до
@interface AppDelegate ()
@end
Ответ 4
Я знаю, что ответ уже принят, , но это теперь разрешено Facebook.
Если вы загрузите последнюю версию SDK (1.7.0) и Facebook SDK (4.0.0), начиная с этой записи, она должна работать нормально. Оба SDK были обновлены всего несколько часов назад.
Я импортировал и скопировал Bolts.framework и Parse.framework из Parse SDK, а затем связался с SDK Facebooks (теперь называется FBSDKCoreKit.framework), и он успешно создает проект.
Повторяющийся вопрос: Parse и facebook sdk -duplicate symbol
Ответ 5
Выполните следующие действия:
applyartTarget- > Build Phase- > Расход Источники компиляции.
Здесь вам нужно удалить тот файл, который вызывает дублируемую ошибку символа. Затем постройте снова.
![enter image description here]()