Parse API 1.6.4 - не может собрать проект

Я скачал новый iOS Parse API (1.6.4) и попытался построить свой проект. Когда я это делаю, я получаю эту ошибку:

Undefined symbols for architecture arm64" "_BFTaskMultipleExceptionsException", referenced from:
  ___53+[PFObject(Private) deleteAllAsync:withSessionToken:]_block_invoke214 in Parse(PFObject.o)
  ___65+[PFObject(Private) _deepSaveAsync:withCurrentUser:sessionToken:]_block_invoke311 in Parse(PFObject.o) 
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Скриншот:Скриншот

11 ответов

Временное решение для Parse 1.6.4 и Facebook SDK 3.23:

Добавьте в свой AppDelegate.m или другой класс следующую константу после импорта и перед разделом реализации:

NSString *const BFTaskMultipleExceptionsException = @"BFMultipleExceptionsException";

@interface IPAppDelegate ()
@end

@implementation IPAppDelegate

Это должно решить проблему, пока она не будет решена на стороне Parse/Facebook.

- Обновление: это решение предназначено только для версий Facebook и Parse SDK, которые перечислены выше, и эти версии сейчас устарели.

Новый Parse SDK 1.7.4 корректно работает с новым Facebook SDK 4.0, и такой проблемы быть не должно.

Я смог выяснить URL для любого, кто нуждается в Parse iOS v1.6.3.

https://parse.com/downloads/ios/parse-library/1.6.3

Я могу подтвердить, что все правильно компилируется с помощью 1.6.3.

У меня была точно такая же проблема с использованием последних SDK от Parse (1.7.4) и Facebook (4.2.0). Проблема вызвана тем, что Bolts.framework включен в SDK Parse и Facebook. По какой-то причине инфраструктура Bolts в Parse всегда новее, чем в Facebook SDK.

После многих попыток установки, удаления и переустановки этих SDK с использованием метода перетаскивания и с помощью Cocoapods мне, наконец, удалось преодолеть эту проблему, выполнив следующие шаги:

  1. Я полностью удалил все экземпляры фреймворков Parse, Facebook и Bolts из моего проекта;
  2. Я повторно добавил инфраструктуру FBSDKCoreKit (а также ShareKit и LoginKit для нужд моего проекта), выполнив шаги на странице разработчика Facebook: https://developers.facebook.com/docs/ios/getting-started/ Убедитесь, что НЕ скопировать элементы в ваш проект.
  3. Я повторно добавил инфраструктуру Parse в проект, используя метод перетаскивания. Я также добавил фреймворк ParseFacebookUtilsV4, потому что он мне нужен для создания пользователей через Facebook Login.

  4. Это был самый важный шаг, который решил все: я добавил Bolts.framework, предоставленный Parse, перетаскивая его в проект, но убедившись, что НЕ скопировал его в проект (так же, как и в инфраструктуре FBSDKCoreKit, я снял флажок "Копировать элементы"). в папку целевой группы. ". Если вы скопируете его в папку проекта, проект не будет создан.

Эти шаги окончательно решили все мои проблемы.

Размещение

NSString *const BFTaskMultipleExceptionsException = @"BFMultipleExceptionsException";

в приложении "Делегат", как предложил Сергей Сурков между импортом и реализацией, а затем добавление libstdC++.6.dylib на этапах сборки работало для меня. Пожалуйста, также просмотрите /questions/25737103/integratsiya-infrastrukturyi-analiza-s-suschestvuyuschim-prilozheniem-ios-vklyuchaya-aviary-sdk/25737117#25737117

Если вы используете cocoapods попробуйте pod update Bolts

EDIT2: обновление FacebookSDK 3.23.2 решает эту проблему и включает в себя болты 1.1.4: https://developers.facebook.com/resources/facebook-ios-sdk-3.23.2.pkg


РЕДАКТИРОВАТЬ: Удалить -ObjC "Другой флаг компоновщика" из ваших настроек сборки.


Bolts.framework не требуется с Parse, если Facebook SDK интегрирован.
Начиная с Facebook iOS SDK 3.14 bolts.framework включен. https://developers.facebook.com/docs/ios/upgrading-3.x

Попробуйте удалить свой ручной экземпляр bolts.framework.

Убедитесь, что в ваш проект импортированы фреймворк и болты Facebook sdk (поставляется с fb sdk).

Просто чтобы поставить запись прямо.

Эта проблема возникает из-за конфликта со структурой Bolts между болтами SDK Facebook и платформой Parse bolts. Временное решение этой проблемы - использование Cocoapods для вашей зависимости от SDK Facebook, которая поможет в процессе работы над исправлением.

Ошибка была подтверждена Facebook и назначается соответствующей команде для исправления.

Пожалуйста, следуйте https://developers.facebook.com/bugs/383331175179417/ для обновления.

Я получил аналогичную ошибку ("... не является dylib" и "неопределенные символы для архитектуры"), потому что я перетащил всю папку синтаксического анализа ("parse-library-1.7.4-2") в мой проект xcode, когда я должен перетащил только те рамки, которые мне были нужны ("Bolts.framework" и "Parse.framework"). удалил папку разбора, перетянул на две рамки, потом все работает как положено:)

У меня была точно такая же проблема. Обновление Болтов до 1.1.4 решило это для меня (Болты были 1.1.3 раньше).

Если вы используете cocoapods, измените или добавьте эту строку в ваш подфайл

pod 'Bolts', '1.1.4'

Если нет, просто скачайте его здесь: https://github.com/BoltsFramework/Bolts-iOS/releases

Попробуйте загрузить последний SDK и заменить все инфраструктуры Parse последней версией.

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