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-> расход. Скомпилируйте источники.
Здесь вам нужно удалить те файлы, которые вызывают ошибку дублирующегося символа. Затем построить снова.