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

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)
4b9b3361

Ответ 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