FBSDKCoreKit / FBSDKCoreKit.h Fehler nicht gefunden

78

Ich implementiere FB Login, also habe ich das SDK von https://developers.facebook.com/docs/ios heruntergeladen . dann i drag n nach unten FBSDKCoreKit, FBSDKLoginKitund FBSDKShareKitFrameworks in mein Projekt.

Wenn ich das Projekt ausgeführt habe, funktioniert es einwandfrei. aber wenn ich es geschlossen und wieder geöffnet habe, "FBSDKCoreKit/FBSDKCoreKit.h not found error"erscheint es. dann wieder kopiere ich einfügen FBSDKCoreKitFramework in die Bibliothek meines Projekts und Fehler verschwinden und dieser Prozess geht weiter. Hat jemand dieses Problem schon einmal gesehen?

Was soll ich tun, um diesen Fehler zu beheben?

M Swapnil
quelle
Hatten Sie Ihre .plist
EI Captain v2.0
Ja, mit FB ID, Name und URL-Typ
M Swapnil
@MSwapnil Haben Sie eine Lösung dafür gefunden?
Femina
3
@MSwapnil Ich benutze Pods, ich habe auch Bolts Pod installiert. aber dennoch, obiges Problem passiert ...
Femina
1
@Femina hast du eine Lösung dafür gefunden? Ich benutze auch Pods
Ne AS

Antworten:

95

Stellen Sie sicher, dass Sie diesen Schritt ausführen:

Deaktivieren Sie "Elemente in den Ordner der Zielgruppe kopieren". https://developers.facebook.com/docs/ios/getting-started/

Sehen Sie sich in Ihren Build-Einstellungen auch das folgende Feld an: "Framework-Suchpfade" Sie sollten ungefähr Folgendes haben:

/Users/[username]/Documents/FacebookSDK

oder für eine allgemeinere Konfiguration

~/Documents/FacebookSDK

Schauen Sie sich auch Finder an und stellen Sie sicher, dass das Framework tatsächlich vorhanden ist

etayluz
quelle
3
Auswahl aufheben oder Elemente in Ordner kopieren auswählen?
M Swapnil
Deaktivieren - NICHT auswählen
etayluz
9
Ich hatte das gleiche Problem, aber ich hatte das SDK auch nicht von "FacebookSDKs-iOS-20151111" in "FacebookSDK" umbenannt ...
adamteale
1
Ich denke, es sollte sein: $ {HOME} / Documents / FacebookSDK
Nestor
5
Warum muss in FacebookSDK umbenannt werden und muss sich genau im Ordner "Dokumente" befinden?
GutenYe
64

Nach dem Update Cocoapods 1.0.0habe ich gelöscht pod.lockund die aktuellen stabile pod Versionen installiert ist ( 4.7.0zu 4.11.0) von FBSDKCoreKit, FBSDKLoginKit,FBSDKShareKit

Dann stoße ich auf den gleichen Fehler. Was ich getan habe war:

  1. Header-Suchpfade hinzugefügt Build-Einstellungen in 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\"
    

Dann hatte ich noch Fehler für eine andere Datei. Weil XCode Prebuild-Frameworks verwendet.

FBSDKCoreKit / FBSDKCopying.h nicht gefunden

  1. Clean Build -> ⇧⌘K (Umschalt + Befehl + K) - um erstellte Frameworks zu bereinigen.
  2. Bereinigungsordner bereinigen -> ⌥⇧⌘K (Option + Umschalt + Befehl + K)
  3. Xcode schließen // wichtig! - Andernfalls werden die DerivedData für das aktuell geöffnete Projekt automatisch neu erstellt
  4. Führen Sie diesen Befehl im Terminal aus

    rm -rf ~/Library/Developer/Xcode/DerivedData
    
  5. Öffnen Sie XCode und erstellen Sie erfolgreich

Mihriban Minaz
quelle
2
Das hat tatsächlich funktioniert. Vielen Dank! Würde es Ihnen etwas ausmachen, herauszufinden, warum dies der Fall ist?
0x6A75616E
Hat mich in diesem Fall gerettet. Vielen Dank!
JDPIPKIN
Das ist die Lösung!
Wilson
Funktioniert super, ich habe auch nichts an den Header-Suchpfaden geändert.
Templeman15
3
Ich habe 1,2,3,4,5 übersprungen, aber stattdessen bin ich einfach nach draußen gegangen und habe zu Mittag gegessen. Und es hat funktioniert! Vielen Dank!!
Ich. ... Ich
33

Ich musste dieses Problem lösen, indem ich das Framework löschte und erneut hinzufügte, indem ich mit der rechten Maustaste auf das Projekt-> Dateien hinzufügen ... klickte, dann das Framework auswählte und die Option zum Kopieren von Dateien bei Bedarf auswählte. Ich weiß, dass es nicht das ist, was Facebook empfiehlt, aber ich konnte es nicht zum Laufen bringen, aber so hat es funktioniert! Ich verwende v4.6 von FBSDK und Xcode 7 Beta 6. Ich hoffe, es hilft Ihnen und allen anderen, die vor dem gleichen Problem stehen :)

Maufadel
quelle
Dies ist jedoch definitiv eine falsche Pfadreferenz. Stellen Sie sicher, dass sie im Ordner / User / mike / Documents / FacebookSDK vorhanden ist, weder im Download-Ordner noch mit einer Version wie FacebookSDK1.1.x. Ihre Antwort ist jedoch sehr hilfreich garantiert zu arbeiten.
Code Tree
16

Das hat mich auch stundenlang geschmerzt! Endlich habe ich das Grundproblem gefunden.

Das Facebook SDK MUSS sich unter ~ / Documents / FacebookSDK befinden

Dies liegt daran, dass dieser Pfad im RCTFBSDK-Projekt fest codiert ist. Sie können Ihren benutzerdefinierten Speicherort jedoch hinzufügen, indem Sie ihn zu den Framework- Suchpfaden des RCTFBSDK- Projekts hinzufügen (er wird in der Fehlerkonsole angezeigt)!

appsthatmatter
quelle
1
Aus irgendeinem Grund musste ich System Framework Search Pathsanstelle vonFramework Search Paths
tybro0103
7

FB-Entwickler sagen , wählen Sie keine Kopierdateien aus . Was Probleme schafft. Aber ich habe das Gegenteil getan .

  1. Ich habe bei Bedarf Kopierelemente ausgewählt. Es hat Frameworks in mein Projekt kopiert. Auch wurde automatisch Search Pathvon hinzugefügt xcode 7.2.

  2. Auch überprüfen , wenn es nichts in Framework Search Pathsunter Search Pathsunter Build SettingsFeldern, dann fügen Sie einfach $ (project_dir), die / Benutzer gleich / user / Documents / .... PROJECT..DIR ...

In 2 Projekten erfolgreich kompiliert.

Karan
quelle
6

Ich musste den FacebookSDK-Pfad in Framework-Suchpfaden über $ (PROJECT_DIR) verschieben.

$(SRCROOT)/../../../Documents/FacebookSDK
$(inherited)
$(PROJECT_DIR)
user9728668
quelle
3

Wenn eine der oben genannten Antworten nicht funktioniert hat, versuchen Sie Folgendes:

Öffnen Sie Ihren ~/Documents/FacebookSDKOrdner. Überprüfen Sie, ob dieses Wolkensymbol rechts neben den Dateinamen vorhanden ist:

screenhot.png

In diesem Fall hat macOS Ihre Dateien von Ihrem Computer entfernt und auf iCloud hochgeladen! (danke Apple)

Sie können:

  1. Klicken Sie auf alle Cloud-Symbole, um die Dateien zurückzuladen
  2. Deaktivieren Sie die Speicheroptimierung auf Ihrem Mac, um zu verhindern, dass sie erneut auftritt
Bruno Lemos
quelle
3

Für reaktive native Entwickler:

Empfohlene Schritte:

1.Stellen Sie sicher, dass die Facebook SDK-Frameworks in ~ / Documents / FacebookSDK installiert sind .

2) Stellen Sie sicher, dass das FBSDK-Kit [Core, Login, Share] Kit.framework im Abschnitt Link Binary with Libraries der Build-Phasen Ihres Build-Ziels angezeigt wird.

3) Stellen Sie sicher, dass der Framework-Suchpfad der Build-Einstellungen Ihres Build-Ziels lautet

$(HOME)/Documents/FacebookSDK

anstatt

~/Documents/FacebookSDK 

Wenn es bei Ihnen immer noch nicht funktioniert, dann:

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

2) Setzen Sie den Pfad des Framework-Suchpfads von RCTFBSDK.xcodeproj auf

  $(HOME)/Documents/FacebookSDK 

(unter den Bibliotheken Ihres Projektordners) Legen Sie den RCTFBSDK-Framework-Suchpfad wie hier fest

Bereinigen Sie Ihr Projekt (Befehl + Umschalt + k) und erstellen Sie.

ishab acharya
quelle
3

Lösung des Problems, wenn Ihr FacebookSDK anders ist als

~ / Dokumente / FacebookSDK

Weil Sie nicht möchten, dass iCloud Drive mit FacebookSDK geladen wird. Sie müssen die "Framework-Suchpfade" für die hinzugefügten ändern

reagiere-native-fbsdk

Dies liegt daran, dass im RCTFBSDK.xcodeproj in Libraires; Pfad ist fest codiert. Sie können Ihren benutzerdefinierten Speicherort jedoch hinzufügen, indem Sie ihn zu den Framework-Suchpfaden des RCTFBSDK-Projekts hinzufügen.

  1. Wählen Sie das Projekt aus
  2. Bibliotheken
  3. Wählen Sie "RCTFBSDK.xcodeproj"
  4. Build-Einstellungen
  5. Fügen Sie Ihren benutzerdefinierten Pfad in "Framework-Suchpfade" hinzu, z. B.: / Users / rajanmaharjan / FacebookSDK
  6. Clean Build -> ⇧⌘K (Umschalt + Befehl + K) - zum Bereinigen von Build-Frameworks.
  7. Erstellen Sie das Projekt; es sollte erfolgreich bauen.
Rajan Maharjan
quelle
2

Ich hatte das gleiche Problem. Ich habe es behoben, indem ich Anführungszeichen um meinen Framework-Suchpfadwert verwendet habe, dh "/ Users / .....". Offensichtlich habe ich einige Leerzeichen in meinen Dateipfaden.

Rishad Meher-Homji
quelle
2

Ich habe das gleiche Problem. Ich verwende Facebook SDK Version 4.10.0.
Ich wusste, dass meine Lösung nicht gut ist, aber sie hat für mich funktioniert. Ich habe den Facebook-Quellcode geändert. Der Pfad der Importdatei wurde von #import <FBSDKCoreKit/FBSDKCoreKit+Internal.h>nach geändert#import <FBSDKCoreKit/Internal/FBSDKCoreKit+Internal.h>

tbago
quelle
2

Xcode 11 + CocoaPods-Lösung

Im Stammverzeichnis Ihres Projekts, dh auf demselben Pfad, auf dem MyApp.xcworkspace Terminal- und Init-Pods geöffnet hat pod init, fügen Sie die erforderlichen FBSDK-Pods hinzu. Sie Podfilesollten ungefähr so aussehen:

# 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

pod installÖffnen Sie nun in Ihrem Terminal MyApp.xcworkspace ( nicht MyApp.xcodeproj ). Gehen Sie zu MyApp-> Build Phases-> Link Binary with Librariesund Sie sollten am Ende der Liste der Frameworks sehen Pods_MyApp.framework. Wenn Sie +unten klicken würden Pods_MyApp.framework, sollten Sie in einem neuen Fenster unter Workspaceeiner Liste Podsangeben, wo sich alle mit FBSDK verbundenen Elemente befinden sollten.

Hinweis: Stellen Sie sicher, dass Sie FBSDK und nicht Facebook SDK installieren , da das zweite veraltet ist.

Daniel Danielecki
quelle
1

Mit CocoaPods hat es mir nur geholfen :

  1. Aktualisieren Sie die Header-Suchpfade ( NICHT Framework-Suchpfade ) unter Build-Einstellungen in 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. Fügen Sie die fehlenden Header hinzu:

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

Bearbeiten: Punkt 2. muss anscheinend nach jedem folgenden Aufruf an wiederholt werden pod install.

Fran Pugl
quelle
1

Für Xcode 7.3 hat das Folgende für mich funktioniert. Befolgen Sie die in der FB-Anleitung genannten Schritte und führen Sie zusätzlich die folgenden Schritte aus:

Schritt 1. Gehen Sie zum Ordner Dokument / FacebookSDK

Schritt 2. Klicken Sie auf FBSDKCoreKit.framework

Schritt 3. Entfernen Sie in diesem Ordner den Ordner "Module" und ziehen Sie ihn in Ihr Xcode-Projekt.

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

Vielen Dank

iCodeAtApple
quelle
1

Für Personen , die von wechseln Carthage, Cocoapodsum sicherzustellen, dass die CarthageVerweise des FBSDKCoreKit aus der Link Binary With LibrariesOption unter Phasen erstellen entfernt werden .

Geben Sie hier die Bildbeschreibung ein

footyapps27
quelle
0

Ich hatte ein ähnliches Problem und konnte den Compilerfehler trotzdem nicht beheben.

Ich folgte und führte einige Male die genauen Integrationsschritte aus, bis ich bemerkte, dass ich eine Kopie des FBSDKCoreKit.framework in meinem Projektordner habe (wahrscheinlich aus Versehen) . Darüber hinaus enthalten die Framework- Suchpfade neben / Users / {Benutzername} / Documents / FacebookSDK bereits $ (PROJECT_DIR) .

So habe ich entfernt die Kopie des FBSDKCoreKit.framework aus dem Verzeichnis des Projekts und jetzt funktioniert alles einwandfrei .

Choofie
quelle
0

Ich bin gestern Abend auf dieses Problem gestoßen und wollte meine Lösung veröffentlichen, falls jemand anderes das gleiche Problem hat. Mein Problem war, dass meine App in der Sim und auf meinem Gerät einwandfrei erstellt und ausgeführt wurde. Der Build schlug jedoch aufgrund von FBSDKCoreKit fehl, wenn ich versuchte, meine Komponententests auszuführen. Ich brauchte ungefähr 30 Minuten, um das Problem zu finden, und fühlte mich dabei wie ein Dummy.

Stellen Sie sicher, dass das FBSDKCoreKit-Bundle auch für Ihre Tests vorgesehen ist und nicht nur für Ihre reguläre Anwendungserstellung.

Jacob Boyd
quelle
0

Ich hatte dieses Problem beim Upgrade auf Xcode 8 und konnte es durch Ändern lösen

#import <FBSDKCoreKit / FBSDKCoreKit.h>

zu

#import <FBSDKCoreKit/FBSDKCoreKit.h>

TheJediCowboy
quelle
0

Wenn Sie das Verzeichnis zu Ihren Build-Einstellungen -> "Framework-Suchpfade" hinzufügen, stellen Sie sicher, dass Sie es sowohl zu Debug als auch zu Release hinzufügen.

Dummer Fehler, aber wenn Sie neu bei iOS dev in xcode sind, könnten Sie dies verpassen.

FrederickCook
quelle
0

Persönlich hatte ich Probleme mit Leerzeichen in verschiedenen Pfaden, einschließlich des App-Namens. Das Entfernen von Leerzeichen (oder das Hinzufügen von "" überall zu sicheren Pfaden) löste das Problem.

Benjamin Piette
quelle
0

Ich hatte ein ähnliches Problem. Die Korrektur bestand für mich in der Auswahl von "DATEIEN KOPIEREN, WENN ERFORDERLICH" beim manuellen Hinzufügen der verschiedenen Frameworks zum XCode-Framework.

tiofabby
quelle
0

Ich habe das Framework in den Framework-Ordner in xcode gezogen, bei Bedarf Dateien kopiert und alles hat ohne weitere Konfigurationsänderungen einwandfrei funktioniert.


quelle
0

Ich habe react-native-fbsdk und link mit react-native-link react-native-fbsdk installiert.

Folgen Sie den Anweisungen des folgenden Links

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

Dies bietet die Möglichkeit, eine reaktionsnative Bibliothek mit ios_setup.js zu verknüpfen. Es gibt den folgenden Schritt, dem ich gefolgt bin.

  1. Setup auf Facebook Entwickler Konto .

  2. Installieren Sie die Datei ios_setup.js, indem Sie den folgenden Befehl an einer Eingabeaufforderung im Stammordner Ihres Projekts ausführen.

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

  1. Installieren Sie das plist-Paket, das xcode-Paket und das adm-zip-Paket, indem Sie den folgenden Befehl ausführen. npm install plist xcode adm-zip
  2. Führen Sie das Skript ios_setup.js aus, indem Sie den folgenden Befehl ausführen, und geben Sie die App-ID und den App-Namen Ihrer App ein. Wenn der Name Ihrer App länger als ein Wort ist, setzen Sie ihn in Anführungszeichen.

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

Wenn der Knoten ios_setup.js ausgeführt wird, werden automatisch alle Dateien in ios verknüpft.

Sunil Kumar Yadav
quelle
0

Nach der Fehlerbehebung mit mehreren Antworten hier. Das habe ich getan.

  1. Ich änderte ~/Documents/FacebookSDKzu "$(HOME)/Documents/FacebookSDK" beachten : Ich habe Anführungszeichen verwendet"
  2. Ich bin in "$(HOME)/Documents/FacebookSDK"den Header-Suchpfaden an den Anfang der Liste gerückt.
Karl Taylor
quelle
0

Hatte den gleichen Fehler in FBSDKLoginKit

Wenn Sie mehrere Pod-Projekte verwenden

install! 'cocoapods',
  :generate_multiple_pod_projects => true

Dann sollten Sie Cocoapods zwingen, alle FBSDK-Pods in einem Projekt zu platzieren, um private Header sichtbar zu machen

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
quelle
-1

-> Build-Konfiguration.

     -> Framework Search paths.

Legen Sie das FacebookSDK-Verzeichnis in meinem Fall ~ / Documents / FacebookSDK in:

Debuggen ,

Jede Architektur I Jede Sdk ,

Lassen Sie los .

Besonders dieser Fehler, weil es in meiner Architektur keinen Pfad für eine beliebige Architektur gibt

~ / Documents / FacebookSDK und es sollte beachtet werden, dass sich der FacebookSDK-Ordner in Domuments befinden muss

Beispiel

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

Alex Yungan
quelle
Keine Ahnung, was Sie hier zu kommunizieren versuchen. Erwägen Sie eine Verbesserung, falls dies als Antwort gedacht ist !
GhostCat
-2

Ändern Sie das /Users/[username]/Documents/FacebookSDK/Verzeichnis Documents/FacebookSDKwie folgt:

xcode

Dan
quelle