fbsdkloginkit fbsdkcorekit objective-c xcode cocoapods facebook-ios-sdk

objective c - fbsdkcorekit - Cocoapods use_frameworks! cuestión de importación



fbsdkloginkit (4)

Quiero usar algunos pods Swift en mi aplicación Objective-C, así que necesito usar marcos en lugar de bibliotecas estáticas. Pero habilitando use_frameworks! en mi Podfile causa tonos de errores #import .

Mi Podfile:

platform :ios, ''8.0'' use_frameworks! pod ''AFNetworking'', ''2.6.0'' pod ''Typhoon'' pod ''SSKeychain'' pod ''JBWebViewController'' pod ''TTTAttributedLabel'' pod ''HockeySDK'' pod ''GoogleAnalytics'' pod ''Intercom'' pod ''FBSDKCoreKit'' pod ''FBSDKLoginKit'' pod ''UIButton+Activity'' pod ''HexColors'' pod ''AFNetworkActivityLogger'' pod ''HCSStarRatingView'', :git => ''https://github.com/hsousa/HCSStarRatingView.git'' pod ''LGSideMenuController'' pod ''DateTools'' pod ''SDWebImage'' pod ''SSCWhatsAppActivity'' pod ''UIViewController+BlockSegue''

El primer problema fue con SSKeychain pod:

En el código, estoy incluyendo SSKeychain usando "comillas" #import "SSKeychain/SSKeychain.h" , pero si entiendo bien, necesito usar <angle> desde ahora #import <SSKeychain/SSKeychain.h> ? Pero en este caso recibo el mismo error, pero en mi código.

Mis fases de construcción:

De todos modos, he encontrado la bifurcación de SSKeychain con "comillas" ( https://github.com/adamwulf/sskeychain/commit/2b7fd878415e8e4f23f74636cdd8c993466d0749 ) y cambié a esas versiones.

Pero ahora tengo el mismo problema con muchos otros pods (casi con todos ellos):

Importe en la aplicación: #import "FBSDKCoreKit/FBSDKCoreKit.h"

¿Realmente necesito bifurcar cada repositorio y cambiar las declaraciones de importación? ¿O estoy incluyendo las vainas de manera incorrecta?

PD: Estoy limpiando los datos derivados y el proyecto antes de cada intento de compilación.

Versión Cocoapods: 0.39.0


¡Finalmente lo he descubierto! El problema se solucionó eliminando Pods.framework de Link Binary With Libraries y agregándolos nuevamente de forma manual.

¡Gracias por la ayuda!


Como ha usado Modules en su Podfile, ¿por qué no simplemente:

@import SSKeychain;

en lugar de:

#import <SSKeychain/SSKeychain.h>

Para probar que:

  • crea un proyecto iOS simple, solo con un ViewController
  • crea un Podfile usando tu código de arriba
  • ejecutar instalación de pod
  • abrir el espacio de trabajo
  • construir y ejecutar: compila OK

En mi caso, ¿qué era un problema? Ya descargué algunos Pods ObjC para mi Proyecto Objective C, entonces necesito un pod use_framwork así que use_framwork en mi archivo pod e instalo ese pod use_framwork . Después de instalar, llega el problema de importación de Swift Pod para las bibliotecas ObjeC. en muchas clases, asi

¿Qué hice para solucionar este problema?

  1. Cortar todos los pods de Objective C del archivo pod
  2. Abra el terminal y ejecute el comando: cd path/myProject
  3. Terminal de ejecución de comando: pod install
  4. Pásalo (todos los pods de Objective C) nuevamente en el archivo pod y guárdalo
  5. Terminal de ejecución de comando: pod install

También revise los mensajes de error en la pod install .

En mi caso, estaba usando una importación personalizada en FRAMEWORK_SEARCH_PATHS , y solo porque estaba haciendo eso, cada vez que instalaba las rutas de búsqueda adicionales que añade CocoaPods no se agregaban. Así que tuve que quitar mi ruta de acceso personalizada y luego aparecieron. Luego agregué mi ruta personalizada.

Podría ser una buena idea hacer la pod deintegrate , eliminar el archivo xcworkspace y hacer la pod install una vez más. A continuación, agregue su configuración de construcción personalizada.

Este es el error que estaba recibiendo:

[!] The App [Debug] target overrides the FRAMEWORK_SEARCH_PATHS build setting defined in Pods/Target Support Files/Pods-AppLib/Pods-AppLib.debug.xcconfig. This can lead to problems with the CocoaPods installation