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?
- Cortar todos los pods de Objective C del archivo pod
- Abra el terminal y ejecute el comando:
cd path/myProject
- Terminal de ejecución de comando:
pod install
- Pásalo (todos los pods de Objective C) nuevamente en el archivo pod y guárdalo
- 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