Error de FBSDKCoreKit / FBSDKCoreKit.h no encontrado

78

Estoy implementando FB Login, así que descargué el SDK de https://developers.facebook.com/docs/ios . arrastre a continuación, i n hacia abajo FBSDKCoreKit, FBSDKLoginKity FBSDKShareKitlos marcos en mi proyecto.

cuando ejecuté el proyecto funciona bien. pero cuando lo cierro y lo vuelvo a abrir, "FBSDKCoreKit/FBSDKCoreKit.h not found error"aparece. luego de nuevo copio pegar FBSDKCoreKitmarco en la biblioteca de mi proyecto y el error desaparece y este proceso continúa. alguien se enfrentó a este problema antes?

¿Qué debo hacer para solucionar este error?

M Swapnil
fuente
había configurado su .plist
EI Captain v2.0
sí, con ID de FB, nombre y tipo de URL
M Swapnil
@MSwapnil ¿Ha encontrado una solución para esto?
Femina
3
@MSwapnil Estoy usando Pods, también he instalado Bolts pod. pero aún así, el problema anterior está sucediendo ...
Femina
1
@Femina, ¿encontraste una solución para eso? También estoy usando Pods
Ne AS

Respuestas:

95

Asegúrate de seguir este paso:

Anule la selección de Copiar elementos en la carpeta del grupo de destino. https://developers.facebook.com/docs/ios/getting-started/

Además, en tu configuración de compilación, mira este campo: "Rutas de búsqueda del marco". Deberías tener algo como esto:

/Users/[username]/Documents/FacebookSDK

o para una configuración más general

~/Documents/FacebookSDK

Además, mire el Finder y asegúrese de que el marco esté realmente allí

etayluz
fuente
3
¿Deseleccionar o seleccionar copiar elementos a la carpeta?
M Swapnil
Deseleccionar - NO seleccionar
etayluz
9
Tuve el mismo problema, pero tampoco había cambiado el nombre del SDK de "FacebookSDKs-iOS-20151111" a "FacebookSDK" ...
adamteale
1
Creo que debería ser: $ {HOME} / Documents / FacebookSDK
Nestor
5
¿Por qué necesita cambiar el nombre a FacebookSDK y debe estar exactamente en la carpeta Documentos?
GutenYe
64

Después de la actualización Cocoapods 1.0.0, he eliminado pod.locke instalado las versiones actuales de la vaina estable ( 4.7.0a 4.11.0) de FBSDKCoreKit, FBSDKLoginKit,FBSDKShareKit

Entonces encuentro el mismo error. Lo que hice fue:

  1. Se agregaron configuraciones de compilación de rutas de búsqueda de encabezado en Xcode:

    "${PODS_ROOT}/Headers/Public/Facebook-iOS-SDK\"
    "${PODS_ROOT}/Headers/Public/Facebook-iOS-SDK/FacebookSDK\"
    "${PODS_ROOT}/Headers/Public/FBSDKCoreKit\"
    "${PODS_ROOT}/Headers/Public/FBSDKCoreKit/FBSDKCoreKit\"
    

Entonces todavía tenía un error para otro archivo. Porque XCode utiliza marcos previos a la compilación.

FBSDKCoreKit / FBSDKCopying.h no encontrado

  1. Clean Build -> ⇧⌘K (Shift + Command + K) - para limpiar los marcos construidos.
  2. Limpiar carpeta de compilación -> ⌥⇧⌘K (Opción + Mayús + Comando + K)
  3. Cierre Xcode // ¡importante! - De lo contrario, vuelve a crear los DerivedData para el proyecto abierto actual automáticamente
  4. Ejecute este comando en la terminal

    rm -rf ~/Library/Developer/Xcode/DerivedData
    
  5. Abra XCode y compile correctamente

Mihriban Minaz
fuente
2
Esto realmente funcionó. ¡Gracias! ¿Le importaría explicar por qué lo hace?
0x6A75616E
Me salvó en este. ¡Gracias un montón!
jdpipkin
esta es la solucion!
Wilson
Funciona muy bien, tampoco cambié nada en las rutas de búsqueda de encabezados.
templeman15
3
Me salté 1, 2, 3, 4, 5, pero en cambio, simplemente salí y almorcé. ¡Y funcionó! ¡¡Gracias!!
Jeff
33

Pude resolver esto eliminando el Marco y agregándolo nuevamente haciendo clic derecho en el proyecto-> Agregar archivos ..., luego elija el marco y SELECCIONE la opción para Copiar archivos si es necesario. Sé que no es lo que recomienda Facebook, pero no podría hacerlo funcionar haciendo eso, ¡pero de esta manera funcionó! Estoy usando la versión 4.6 de FBSDK y Xcode 7 beta 6. Espero que te ayude a ti y a todos los demás que enfrentan el mismo problema :)

manufactura
fuente
pero esto es definitivamente para la referencia de ruta incorrecta, asegúrese de que exista en / User / mike / Documents / FacebookSDK no en la carpeta de descargas ni con una versión como FacebookSDK1.1.x Sin embargo, su respuesta es muy útil, es garantizado para trabajar.
Árbol de códigos
16

¡Esto también me llevó horas de dolor! Finalmente encontré la raíz del problema.

El SDK de Facebook DEBE estar ubicado en ~ / Documents / FacebookSDK

Esto se debe a que en el proyecto RCTFBSDK esta ruta está codificada. ¡Pero puede agregar su ubicación personalizada agregándola a las Rutas de búsqueda del marco del proyecto RCTFBSDK (se mostrará en la consola de errores)!

appsthatmatter
fuente
1
Por alguna razón tuve que usar en System Framework Search Pathslugar deFramework Search Paths
tybro0103
7

Los desarrolladores de FB dicen que no seleccione copiar archivos. Lo que crea un problema. Pero hice lo contrario .

  1. Seleccioné elementos de copia si era necesario. Copió Frameworks en mi proyecto. También Search Pathfue agregado automáticamente por xcode 7.2.

  2. También doble verificación si no hay nada en Framework Search Pathsvirtud de Search Pathsbajo Build Settingscampos, a continuación, sólo tiene que añadir $ (project_dir) que es igual a / Users / usuario / Documentos / .... PROJECT..DIR ...

Compilado en 2 proyectos con éxito.

karan
fuente
6

Tuve que mover la ruta de FacebookSDK en las rutas de búsqueda de Framework por encima de $ (PROJECT_DIR)

$(SRCROOT)/../../../Documents/FacebookSDK
$(inherited)
$(PROJECT_DIR)
usuario9728668
fuente
3

Si alguna de las respuestas anteriores no funcionó, intente esto:

Abra su ~/Documents/FacebookSDKcarpeta. Compruebe si hay este icono de nube a la derecha de los nombres de archivo:

screenshot.png

Si es así, macOS eliminó sus archivos de su computadora y los cargó en iCloud. (gracias Apple)

Usted puede:

  1. Haga clic en todos los íconos de la nube, se descargarán los archivos nuevamente
  2. Desactive la optimización de almacenamiento en su mac para evitar que vuelva a suceder
Bruno Lemos
fuente
3

Para los desarrolladores de React Native:

Pasos recomendados para realizar:

1.Asegúrese de que los marcos del SDK de Facebook estén instalados en ~ / Documents / FacebookSDK.

2) Asegúrese de que FBSDK [Core, Login, Share] Kit.framework aparezca en la sección Vincular binario con bibliotecas de las Fases de compilación de su objetivo de compilación.

3) Asegúrese de que la ruta de búsqueda del marco de la configuración de compilación de su objetivo de compilación sea

$(HOME)/Documents/FacebookSDK

en vez de

~/Documents/FacebookSDK 

Si aún no funciona para usted, entonces:

1)sudo chmod -R 755 ~/Documents/FacebookSDK

2) establezca la ruta de la ruta de búsqueda del marco de RCTFBSDK.xcodeproj en

  $(HOME)/Documents/FacebookSDK 

(en las bibliotecas de la carpeta de su proyecto) establezca la ruta de búsqueda del marco RCTFBSDK como aquí

limpia tu proyecto (comando + shift + k) y compila.

ishab acharya
fuente
3

Solución al problema si su FacebookSDK es diferente a

~ / Documentos / FacebookSDK

Porque no quieres que iCloud Drive se cargue con FacebookSDK; tienes que cambiar las "Rutas de búsqueda del marco" por el agregado

reaccionar-nativo-fbsdk

Esto se debe a que en RCTFBSDK.xcodeproj dentro de Libraires; la ruta está codificada. Pero puede agregar su ubicación personalizada agregándola a las Rutas de búsqueda del marco del proyecto RCTFBSDK.

  1. Seleccione el proyecto
  2. Bibliotecas
  3. Seleccione "RCTFBSDK.xcodeproj"
  4. Configuración de compilación
  5. Agregue su ruta personalizada en "Rutas de búsqueda del marco", por ejemplo: / Users / rajanmaharjan / FacebookSDK
  6. Clean Build -> ⇧⌘K (Shift + Command + K) - para limpiar los marcos de construcción.
  7. Construye el proyecto; debería construirse con éxito.
Rajan Maharjan
fuente
2

Yo tuve el mismo problema. Lo arreglé usando comillas alrededor del valor de la ruta de búsqueda de mi marco, es decir, "/ Usuarios / .....". Obviamente, tengo algunos espacios en las rutas de mis archivos.

Rishad Meher-Homji
fuente
2

Tengo el mismo problema Utilizo Facebook SDK versión 4.10.0.
Sabía que mi solución no es buena, pero funcionó para mí. Cambié el código fuente de Facebook. Se cambió la ruta del archivo de importación de #import <FBSDKCoreKit/FBSDKCoreKit+Internal.h>a#import <FBSDKCoreKit/Internal/FBSDKCoreKit+Internal.h>

tbago
fuente
2

Xcode 11 + solución CocoaPods

En la raíz de su proyecto, es decir, la misma ruta en la que tiene MyApp.xcworkspace abierto Terminal e init pod initpods, luego agregue los pods FBSDK requeridos; Podfiledebería verse así:

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'MyApp' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for MyApp
  pod 'FBSDKCoreKit'
  pod 'FBSDKLoginKit'
  pod 'FBSDKShareKit'   
end

Ahora en su Terminal pod instally abra MyApp.xcworkspace (que no es MyApp.xcodeproj ). IrMyApp -> Build Phases-> Link Binary with Librariesy debería ver en la parte inferior de la lista de marcos Pods_MyApp.framework. Si hace clic a +continuación Pods_MyApp.framework, debería en una nueva ventana debajo de Workspaceuna lista de Podsdónde deberían estar todos los relacionados con FBSDK.

Nota: asegúrese de que está instalando FBSDK , no Facebook SDK , porque el segundo está desactualizado.

Daniel Danielecki
fuente
1

Usando CocoaPods , lo único que funcionó para mí fue:

  1. Actualice las rutas de búsqueda del encabezado ( NO las rutas de búsqueda del marco ) en Configuración de compilación en Xcode:

    - "\"${PODS_ROOT}/Headers/Public/Facebook-iOS-SDK\"",

    - "\"${PODS_ROOT}/Headers/Public/Facebook-iOS-SDK/FacebookSDK\"",

    + "\"${PODS_ROOT}/Headers/Public/FBSDKCoreKit\"",

    + "\"${PODS_ROOT}/Headers/Public/FBSDKCoreKit/FBSDKCoreKit\"",

  2. Agregue los encabezados que faltan:

    cd Pods/Headers/Public/FBSDKCoreKit/FBSDKCoreKit/ && ln -s ../../../../FBSDKCoreKit/FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKCoreKit+Internal.h FBSDKCoreKit+Internal.h

Editar: el punto 2. aparentemente debe repetirse después de cada llamada siguiente a pod install.

Fran Pugl
fuente
1

Para Xcode 7.3 , lo siguiente funcionó para mí. Siga los pasos mencionados en la guía de FB y, además, haga lo siguiente:

paso 1. vaya a la carpeta Documento / FacebookSDK

paso 2. Haga clic en FBSDKCoreKit.framework

paso 3. En esta carpeta, elimine la carpeta Módulos y luego arrastre y suelte en su Proyecto Xcode.

Referencias: https://stackoverflow.com/a/29532202

Gracias

iCodeAtApple
fuente
1

Para las personas que pasan de Carthagea CocoapodsAsegúrese de eliminar las Carthagereferencias de la FBSDKCoreKit de la Link Binary With Librariesopción Fases estructura inferior.

ingrese la descripción de la imagen aquí

footyapps27
fuente
0

Tuve un problema similar y no pude resolver el error del compilador de todos modos.

Seguí y realicé los pasos de integración exactos varias veces, hasta que noté que tengo una copia del FBSDKCoreKit.framework dentro de la carpeta de mi proyecto (probablemente ocurrió por un error) . Además, las rutas de búsqueda del marco ya contienen $ (PROJECT_DIR) además de / Users / {username} / Documents / FacebookSDK.

Así que he quitado la copia de la FBSDKCoreKit.framework del directorio del proyecto y ahora todo funciona bien.

choofie
fuente
0

Me encontré con este problema anoche y quería publicar mi solución en caso de que alguien más tuviera el mismo problema. Mi problema era que mi aplicación se estaba compilando y funcionando bien en la simulación y en mi dispositivo, sin embargo, la compilación fallaba debido a FBSDKCoreKit cada vez que intentaba ejecutar mis pruebas unitarias. Me tomó unos 30 minutos encontrar el problema y me sentí como un tonto cuando lo hice.

Asegúrese de que el paquete FBSDKCoreKit también esté destinado a sus pruebas, y no solo a la compilación habitual de su aplicación.

Jacob Boyd
fuente
0

Tuve este problema al actualizar a Xcode 8 y pude resolverlo cambiando

#import <FBSDKCoreKit / FBSDKCoreKit.h>

a

#import <FBSDKCoreKit/FBSDKCoreKit.h>

ElJediCowboy
fuente
0

Cuando agregue el directorio a su Configuración de compilación -> "Rutas de búsqueda del marco", asegúrese de agregarlo tanto a Debug como a Release.

Error tonto, pero si eres nuevo en el desarrollo de iOS en xcode, podrías perderte esto.

FrederickCook
fuente
0

Personalmente, tuve problemas con los espacios en varias rutas, incluido el nombre de la aplicación. Eliminar espacios (o agregar "" en todas partes para asegurar las rutas) resolvió el problema.

Benjamin Piette
fuente
0

Tuve un problema similar. La corrección consistió para mí en seleccionar: "COPIAR ARCHIVOS SI ES NECESARIO" al agregar manualmente los diferentes marcos en el marco XCode.

tiofabby
fuente
0

Arrastré el marco a la carpeta Framework dentro de xcode, elegí copiar archivos si era necesario y todo funcionó bien sin ningún otro cambio de configuración.


fuente
0

He instalado react-native-fbsdk y el enlace usando react-native-link react-native-fbsdk.

Siga las instrucciones del siguiente enlace

https://developers.facebook.com/docs/react-native/configure-ios

Esto proporciona para vincular la biblioteca nativa de reacción usando ios_setup.js Hay los siguientes pasos que he seguido.

  1. Configuración en la cuenta del desarrollador de Facebook .

  2. Instale el archivo ios_setup.js ejecutando el siguiente comando en un símbolo del sistema en la carpeta raíz de su proyecto.

curl -O https://raw.githubusercontent.com/facebook/react-native-fbsdk/master/bin/ios_setup.js

  1. Instale el paquete plist, el paquete xcode y el paquete adm-zip, ejecutando el siguiente comando. npm install plist xcode adm-zip
  2. Ejecute el script ios_setup.js ejecutando el siguiente comando e inserte el ID de la aplicación y el Nombre de la aplicación. Si el nombre de su aplicación tiene más de una palabra, escríbalo entre comillas.

node ios_setup.js [App ID] [App Name]

Cuando ejecute el nodo ios_setup.js, vinculará automáticamente todos los archivos en ios.

Sunil Kumar Yadav
fuente
0

Después de solucionar el problema, utilice varias respuestas aquí. Esto es lo que hice.

  1. Cambié ~/Documents/FacebookSDKpara "$(HOME)/Documents/FacebookSDK" notar : usé comillas"
  2. Me moví "$(HOME)/Documents/FacebookSDK"a la parte superior de la lista en las rutas de búsqueda de encabezados.
Karl Taylor
fuente
0

Tuve un mismo error en FBSDKLoginKit

Si usa varios proyectos de pod

install! 'cocoapods',
  :generate_multiple_pod_projects => true

Luego, debe forzar a los cocoapods a poner todas las vainas de FBSDK en un mismo proyecto para que los encabezados privados sean visibles

pod 'FBSDKCoreKit', '5.11.0', :project_name => 'FBSDK'
pod 'Bolts', '1.9.0', :project_name => 'FBSDK'
pod 'FBSDKShareKit', '5.11.0', :project_name => 'FBSDK'
pod 'FBSDKLoginKit', '5.11.0', :project_name => 'FBSDK'
Tim
fuente
-1

-> Configuración de compilaciones.

     -> Framework Search paths.

poner el directorio FacebookSDK en mi caso ~ / Documents / FacebookSDK en:

Depuración ,

Cualquier arquitectura I Any Sdk ,

Suelta .

especialmente este error porque no hay ruta en Any architecture I Any Sdk en mi caso

~ / Documents / FacebookSDK y se debe tener en cuenta que la carpeta FacebookSDK debe estar en Domuments

Ejemplo

https://photos.app.goo.gl/5bD4d39a11AalYsx1

Alex Yungan
fuente
No tengo idea de lo que está tratando de comunicar aquí. ¡Considere mejorar en caso de que esto sea una respuesta !
GhostCat
-2

Cambie el /Users/[username]/Documents/FacebookSDK/directorio para que le Documents/FacebookSDKguste:

xcode

Dan
fuente