Parse API 1.6.4: no se puede crear un proyecto

Descargué la nueva iOS iOS Parse (1.6.4) e intenté build mi proyecto. Cuando lo hago, aparece este error:

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) 

Captura de pantalla: captura de pantalla

Solución temporal para Parse 1.6.4 y Facebook SDK 3.23:

Agregue a su AppDelegate.m u otra class después de la sección constante después de las importaciones y antes de la implementación:

 NSString *const BFTaskMultipleExceptionsException = @"BFMultipleExceptionsException"; @interface IPAppDelegate () @end @implementation IPAppDelegate 

Debería resolver el problema hasta que se solucione en el lado de Parse / Facebook.

– Actualización: esta solución es solo para las versiones de Facebook y Parse SDK que se enumeran anteriormente y estas versiones en este momento no están actualizadas.

New Parse SDK 1.7.4 funciona correctamente con el nuevo Facebook SDK 4.0 y no debería haber tal problema.

Pude averiguar la URL para cualquier persona que necesita Parse iOS v1.6.3.

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

Puedo confirmar que todo se comstack correctamente usando 1.6.3.

Colocación

 NSString *const BFTaskMultipleExceptionsException = @"BFMultipleExceptionsException"; 

en el Delegado de la aplicación como lo sugirió Sergey Surkov entre las importaciones y la implementación, y luego agregó libstdc ++. 6.dylib en las fases de construcción funcionó para mí. Vea también https://stackoverflow.com/a/27628797/1036945

Tuve el mismo problema con los últimos SDK de Parse (1.7.4) y Facebook (4.2.0). El problema está causado por los Tornillos. El trabajo está incluido en los SDK de Parse y Facebook. Por alguna razón, el marco de Bolts en Parse es siempre más nuevo que el incluido en el SDK de Facebook.

Después de muchos, muchos bashs de instalar, eliminar y volver a instalar estos SDK, utilizando el método de drag and drop y a través de Cocoapods, finalmente logré superar este problema realizando los siguientes pasos:

  1. Eliminé completamente cualquier instancia de los frameworks Parse, Facebook y Bolts de mi proyecto;
  2. Volví a agregar el marco FBSDKCoreKit (y ShareKit y LoginKit para las necesidades de mi proyecto) siguiendo los pasos en la página de desarrollador de Facebook: https://developers.facebook.com/docs/ios/getting-started/ Asegúrate de NO para copyr los elementos a su proyecto.
  3. Volví a agregar el marco de Parse al proyecto usando el método de drag and drop. También agregué el framework ParseFacebookUtilsV4 porque lo necesitaba para crear usuarios a través de Facebook Login.

  4. Este fue el paso más importante que resolvió todo: agregué los Bolts.framework proporcionados por Parse arrastrándolo al proyecto, pero asegurándose de NO copyrlo al proyecto (al igual que con el marco FBSDKCoreKit, deseleccioné los "Copiar elementos" en la carpeta del grupo de destino ". Si lo copy en la carpeta del proyecto, el proyecto no se buildá.

Estos pasos finalmente resolvieron todos mis problemas.

si está usando cocoapods, pruebe pod update Bolts

EDIT2: La actualización de FacebookSDK 3.23.2 resuelve este problema e incluye Bolts 1.1.4: https://developers.facebook.com/resources/facebook-ios-sdk-3.23.2.pkg


EDITAR: Abandonar -ObjC "Otro indicador de linker" desde su configuration de compilation.


Bolts.framework no es necesario con Parse si Facebook SDK está integrado.
A partir de Facebook iOS SDK 3.14 bolts.framework está incluido. https://developers.facebook.com/docs/ios/upgrading-3.x

Intente eliminar su instancia manual de tornillos.

Solo para dejar el récord.

El problema se debe a un conflicto con el marco de los tornillos entre los SDK Bolts de Facebook y el marco de los tornillos de Parse. Una solución temporal para solucionar este problema es utilizar Cocoapods para su dependencia del SDK de Facebook, que ayudará a solucionar el problema.

El error ha sido reconocido por Facebook y se está asignando al equipo apropiado para su reparación.

Siga las https://developers.facebook.com/bugs/383331175179417/ para ver las actualizaciones.

asegúrese de que el marco de frameworks de sdk de Facebook y los pernos (viene con fb sdk) se importen a su proyecto.

Tengo un error similar ("… no es un dylib" y "Símbolos no definidos para la architecture") porque arrastré toda la carpeta de análisis ("parse-library-1.7.4-2") en mi proyecto xcode, cuando debería he arrastrado solo los frameworks que necesitaba ("Bolts.framework" y "Parse.framework"). eliminó la carpeta de análisis, arrastró los dos frameworks, luego todo funciona como se espera 🙂

Tuve el mismo problema. Actualizar los tornillos a 1.1.4 me lo resolvió (Bolts fue 1.1.3 antes).

Si usa cocoapods, cambie o agregue esta línea a su podfile.

 pod 'Bolts', '1.1.4' 

De lo contrario, solo descárguelo aquí: https://github.com/BoltsFramework/Bolts-iOS/releases

Intente download el SDK más reciente y replace todos los frameworks de Parse con la última versión.