FacebookSDK и болты конфликтуют друг с другом (повторяющиеся символы) при сборке

Не уверен, в чем проблема.. 91 символ найден дублированным для armv7

Я работаю над проектом 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)

5 ответов

Решение

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

  • Удаление Bolts.framework НЕ было решением, так как я получаю ошибки, о которых упоминал Лео Флаэрти (комментарий в принятом ответе).
  • Использование решения, упомянутого iOS_DEV, кажется мне отвратительным взломом.
  • Использование последних SDK Parse и Facebook также НЕ было решением (упомянуто Саймоном Бохом), так как я использовал версию 3.x SDK Facebook, а последняя версия 4.x. В журнале изменений SDK Facebook упоминается: SDK Facebook для iOS v4.0 - это обновление основной версии. Так как мне нужно было уложиться в сроки, я не мог посвятить время переписыванию всего своего кода Facebook, чтобы соответствовать новой версии 4.x SDK.

Решение, которое я предлагаю:

Вместо того, чтобы добавлять Bolts.framework и Facebook SDK.framework в качестве фреймворка к вашему проекту, добавьте их в виде модулей:

pod 'Bolts'
pod 'Facebook-iOS-SDK', '3.23.1'

Здесь вы найдете все доступные версии Facebook SDK, если вам нужна не последняя версия.
Если вы используете Swift, вам нужно добавить следующее в заголовок моста:
#import <FacebookSDK/FacebookSDK.h> #import <Bolts/Bolts.h>

У меня была такая же проблема с 91 дубликатом. Для меня сработало просто удалить приложение Bolts.framework, которое, похоже, каким-то образом уже включено в новый SDK Facebook.

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

Это сработало для меня.

1) Я удалил Bolts.framework, который пришел с анализом.

2) Добавлен только анализ (выбор копии в папку назначения) и facebookSDK (снятие отметки с копии в папку назначения). Также проверен путь поиска фреймворка в настройках сборки.

3) Добавлено NSString *const BFTaskMultipleExceptionsException = @"BFMultipleExceptionsException";

в AppDelegate.m перед

@interface AppDelegate ()

@end

Я знаю, что ответ уже принят, но теперь он разрешен Facebook.

Если вы загрузили последнюю версию Parse SDK (1.7.0) и Facebook SDK (4.0.0) на момент написания этой статьи, все должно работать нормально. Оба SDK были обновлены всего несколько часов назад.

Я импортировал и скопировал Bolts.framework и Parse.framework из Parse SDK, а затем связал их с SDK Facebook (теперь он называется FBSDKCoreKit.framework), и он успешно создает проект.

Повторяющийся вопрос: парсинг и фейсбук sdk - дублированный символ

Выполните следующие действия: ApplicatonTarget-> Build Phase-> расход. Скомпилируйте источники.

Здесь вам нужно удалить те файлы, которые вызывают ошибку дублирующегося символа. Затем построить снова.введите описание изображения здесь

Другие вопросы по тегам