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

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

Я загрузил новый API-интерфейс iOS (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)

Снимок экрана: screenshot

4b9b3361

Ответ 1

Временное обходное решение для 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 работает корректно с новым SDK версии 4.0 и не должно быть такой проблемы.

Ответ 2

Мне удалось выяснить URL-адрес для тех, кому нужен Parse iOS v1.6.3.

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

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

Ответ 3

Размещение

NSString *const BFTaskMultipleExceptionsException = @"BFMultipleExceptionsException";

в приложении Делегат, предложенный Сергеем Сурковым между импортом и реализацией, а затем добавив libstdС++. 6.dylib в фазах сборки работал у меня. Также просмотрите fooobar.com/questions/171131/...

Ответ 4

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

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

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

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

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

Ответ 5

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

Ответ 6

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


EDIT: Drop -ObjC "Другой флаг компоновщика" в настройках сборки.


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

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

Ответ 7

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

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

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

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

Ответ 8

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

Ответ 9

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

Ответ 10

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

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

pod 'Bolts', '1.1.4'

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

Ответ 11

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