objective c - react - Error del módulo de compilación del SDK de iOS8 de Facebook para FBSDKCoreKit
install facebook sdk ios (16)
Estoy intentando agregar el SDK de Facebook a mi aplicación iOS 8 Objective-C en Xcode. Hice la instalación de acuerdo con las instrucciones de FB-dev. Sin embargo, recibo el error "No se pudo construir el módulo ''FBSDKCoreKit''" cuando agrego el encabezado a mi archivo AppDelegate.m.
#import "AppDelegate.h"
#import <FBSDKCoreKit/FBSDKCoreKit.h>
Basado en lo que leí en otro lugar
- Ya he limpiado la compilación y reinstalé Xcode.
- También reinstalé el instalador de SDK de Facebook e intenté agregarlo a un proyecto en blanco (en caso de que hubiera algo dañado en mi aplicación).
- He comprobado dos veces el plist y las listas de archivos de FB en las instrucciones, pero no ha faltado nada.
Estoy perplejo.
Asegúrate de que también hayas importado el marco de Pernos, esto funcionó para mí.
De Chris Pan (Equipo de Facebook): https://developers.facebook.com/bugs/362995353893156/
La versión 4.0.1 agregó mapas de módulos (que deberían haber obviado la necesidad de unir los encabezados) pero parece que eso puede haber causado otros problemas de compatibilidad. Estamos trabajando en una solución adecuada, pero otra solución es eliminar los mapas del módulo manualmente de cada uno de los paquetes FBSDK * Kit.framework; por ejemplo,
rm -r ~/Documents/FacebookSDK/FBSDKCoreKit.framework/Modules/
(y repita para FBSDKLoginKit y FBSDKShareKit)
Que yo sepa, tenemos 2 opciones para hacer frente a este problema:
- Eliminar todos los mapas del módulo como dijo Chris.
- Agregue un archivo de mapa de módulo faltante (no oficial) en la carpeta Bolts.framework (en la carpeta FacebookSDK). Debe comprobar si esta carpeta falta o no.
Debería dirigirlo a este número abierto actual asignado a Facebook: https://developers.facebook.com/bugs/362995353893156/ . Ninguna de las respuestas aquí me ayudó, así que supongo que simplemente nos sentamos patos:
Al momento de escribir este artículo, un mensaje de Facebook de Chris Pan :
"La versión 4.0.1 agregó mapas de módulos (que deberían haber obviado la necesidad de unir encabezados), pero parece que eso puede haber causado otros problemas de compatibilidad. Estamos trabajando en una solución adecuada pero otra solución es eliminar los mapas de módulos manualmente desde cada uno de los paquetes FBSDK * Kit.framework; por ejemplo, rm -r ~/Documents/FacebookSDK/FBSDKCoreKit.framework/Modules/
(y repita para FBSDKLoginKit y FBSDKShareKit) "
Kosala Ubayasekara lo puso a funcionar, pero como este es un problema abierto, es posible que desee simplemente esperar hasta que quede claro el arreglo oficial:
En la configuración de compilación bajo los módulos Apple LLVM:
- Establezca Permitir No Modulares Incluye en los módulos de Marco "configuración a NO
- Habilitar módulos (C y Objetivo C) a NO.
Cree un encabezado puente para incluir los encabezados del SDK de Facebook
- Enlace del encabezado puente en Configuración de compilación: Compilador Swift - Generación de código.
- Importe FBSDKCoreKit en su archivo de delegado de aplicaciones e implemente los requisitos básicos del SDK de Facebook según la documentación de FB
El mismo problema fue conmigo. ... No de la solución anterior funciona para mí .. Lo puse. Módulos, banderas y otras cosas también ... pero nada ayuda.
Pero para mi este problema esta resuelto por
MUEVE su carpeta de marco DESPUÉS o DENTRO de la carpeta donde se encuentra el archivo .pch.
Cuando mi carpeta de marco @ myapp/{frameworkFolder}/fbframeworks.
Estaba mostrando problemas.
Lo muevo a myapp/myapp/modal/{fbframework}/.
Entonces este problema fue resuelto. (Mi archivo .pch se encuentra en myapp / myapp.)
Puede ser lo mismo, puede ayudar a cualquiera que tenga el mismo problema.
Eliminar el directorio de módulos de FacebookCoreKit.framwork.
FBSDKCoreKit no se puede compilar debido a un error de " inclusión de encabezado no modular dentro del módulo marco " en el archivo de encabezado FBSDKAppLinkResolver.h: en la línea #import <Bolts/BFAppLinkResolving.h>
.
La solución del error del compilador Swift: "encabezado no modular dentro del módulo de marco" (cambio de CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES) no me ayudó.
Mi solución:
- Crear en el mapa del módulo del archivo Bolts.framework: Módulos / módulo.modulemap (como en FBSDKCoreKit.framework)
Pon ese código dentro
framework module Bolts { umbrella header "Bolts.h" export * module * { export * } explicit module BFAppLinkResolver { header "BFAppLinkResolver.h" link "BFAppLinkResolver" export * }}
Un dato interesante es que en FBSDKCoreKit tal esquema se realiza en Facebook, ¿por qué no lo aplicaron en Bolts ...
He enfrentado el mismo problema. El problema era que el directorio de mi proyecto contenía espacio en el nombre "Demo de aplicación". Es por eso que siempre que arrastro los marcos de Facebook, se agrega espacio en las Rutas de búsqueda de marcos en la configuración. Eliminar este espacio resuelto el problema.
No estoy seguro de si tiene efectos secundarios, pero establecer la opción "Permitir módulos no incluidos en módulos de Framework" en SÍ en la configuración de Compilación solucionó el problema por mí. Espero que funcione para usted también.
Para Objective-C usé la respuesta de Paul Lehn de: https://developers.facebook.com/bugs/362995353893156/
- Agregue el indicador -ObjC a la configuración de compilación de otros indicadores de vinculador. (Si no desea agregar configuraciones a proyectos, para inicializar clases de botones)
- Configuración de "Permitir que los módulos no se incluyan en el marco" en SÍ en la configuración de compilación
- Establezca "Habilitar módulos" (c y Objective-C) en No
(Tampoco olvide agregar marcos, para mí fue: "AdressBook" "QuartzCore" "CoreLocation" "CoreGraphics" y, si aún no se ha agregado, también "UIKit" "Foundation" "CoreData")
y finalmente me funciono
todo esto utilizado para FBSDK vinculado en una carpeta personalizada en mi carpeta de proyecto no desde ~ / Documents / FacebookSDK
Para aquellos que vinieron aquí y cometieron el mismo error de novato que yo. Tal vez te pueda ahorrar algo de tiempo. Trabajo en un proyecto antiguo que consiste en gran parte de código Objective-C. Intentamos implementar cosas nuevas en Swift.
Esto fue lo que probé en mi código Swift
import FBSDKCoreKit
class SomeClass {
func doSomething {
FBSDKAppEvents.logEvent("Some Event")
}
}
Pero el compilador se quejó de que no podía compilar el módulo, etc.
Como lo resolví
- Eliminar la
import FBSDKCoreKit
de mi código Swift. -
Bridging-Header.h
nuestroBridging-Header.h
eFBSDKCoreKit
allí:#import <FBSDKCoreKit/FBSDKCoreKit.h>
Probablemente esté importando la carpeta "Muestras" que viene con el SDK de Facebook en su proyecto. Elimine las referencias a esos archivos de su proyecto y debería funcionar. No hay necesidad de cambiar banderas en la configuración de su compilación.
Si tiene problemas con ''FBSDKCoreKit'' , puede probar las siguientes soluciones:
Vaya a Configuración de compilación y busque "permitir no modular" y Establecer
El indicador "Permitir módulos no incluidos en módulos de marco" a SÍ
Ir a la carpeta Documento / FacebookSDK
luego ir a FBSDKCoreKit.framework
En esta carpeta Eliminar carpeta de módulos. Luego agrega la biblioteca FacebookSDK en tu proyecto.
Establezca la ruta de búsqueda de Framework en "~ / Documents / FacebookSDK"
Pasos para encontrar la ruta de búsqueda de Framework
Vaya a la configuración de compilación del proyecto y busque "ruta de búsqueda de marco".
Luego agregue "~ / Documents / FacebookSDK"
Editar:
abra la ruta de búsqueda de Framework en la aplicación de Facebook y copie y pegue todas las rutas mencionadas allí en su aplicación. Al igual que la ruta que he adjuntado en las capturas de pantalla a continuación
Esto solucionará tu problema
Simplemente haciendo lo siguiente, permítame construir la aplicación con éxito.
En la configuración de compilación Establezca la marca "Permitir módulos no incluidos en módulos de marco" en SÍ
Y no quería establecer "Habilitar módulos" (c y Objective-C) en NO
Tienes este problema también, es necesario establecer
Enable Modules (C and Objective-C)
a NO .
Tuve el mismo problema, estaba usando el nuevo SDK de Facebook (FacebookSDKs-iOS-20160316) en Xcode 6.4, siempre me da este error cuando coloco el siguiente código en mi archivo AppDelegate.m
: #import <FBSDKCoreKit/FBSDKCoreKit.h>
Cuando cambié a Xcode 7.2, problema resuelto, el error desapareció. Supongo que este es el problema de la versión compatible
Si tienes el mismo problema conmigo, puedes intentar usar Xcode 7.2 para crearlo. El problema es que Xcod 6.4 nunca podrá usarse siempre que mantengas el SDK de Facebook en tu proyecto.
¡Espero que esto ayude!
TL; DR Elimina tu referencia Bolts.framework en tu proyecto.
Ninguna de estas o ninguna de las otras respuestas funcionaron para mí (en mi caso). Para mi proyecto cambiamos de un antiguo SDK de Facebook y tuvimos un Bolts.framework.
Leyendo la documentacion
El SDK carga automáticamente sus dependencias de marco y recursos.
Como tal, creo que hay una colisión en marcha. Estaba el Bolts.framework que tenía antes y luego el nuevo que vino cuando descargué el nuevo paquete de FacebookSDK (4.7 en este caso).
La eliminación de mi Bolts.framework soluciona el problema (asegúrese de limpiar antes de reconstruir).