Facebook-Login / FB IOS SDK - Xcode > File not found

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Facebook-Login / FB IOS SDK - Xcode > File not found

    Moin Moin,

    ich versuche derzeit den Facebooklogin einzubinden. Leider komme ich nicht weiter und hoffe ihr könnt mir vielleicht helfen.

    Ich habe mittlerweile eine Menge versucht. Viele angebliche Lösungen brachten mich jedoch leider nicht weiter.

    Es geht darum, das Xcode mir folgenden Fehler auswirft: FacebookSDK/FacebookSDK.h file not found.

    Natürlich ist mir klar was das bedeutet. Allerdings weiß ich nicht warum er das File nicht findet.

    Ich habe mich hier orientiert: developers.facebook.com/docs/f…gin/ios/v2.2?locale=de_DE

    - IOS SDK installiert und das SDK in mein Xcode Projekt importiert
    - Bridge-Header.h erstellt und #import <FacebookSDK/FacebookSDK.h> eingefügt
    - unter Project > Swift Compiler - Code Generation > Objective-C Bridging Header "projektname/Bridge-Header.h" eingetragen
    - in der Info.plist Datei "FacebookAppID", "FacebookDisplayName" und URL types String eingetragen
    - in der AppDelegate folgende Zeilen hinzugefügt:

    Quellcode

    1. class AppDelegate: UIResponder, UIApplicationDelegate {
    2. var window: UIWindow?
    3. func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    4. FBLoginView.self
    5. FBProfilePictureView.self
    6. return true
    7. }
    8. func application(application: UIApplication, openURL url: NSURL, sourceApplication: NSString?, annotation: AnyObject) -> Bool {
    9. var wasHandled:Bool = FBAppCall.handleOpenURL(url, sourceApplication: sourceApplication)
    10. return wasHandled
    11. }
    12. ...
    13. }
    Alles anzeigen


    - in der ViewControler.swift folgendes eingetragen:

    Quellcode

    1. class ViewController: UIViewController, FBLoginViewDelegate {
    2. @IBOutlet var fbLoginView : FBLoginView!
    3. override func viewDidLoad() {
    4. super.viewDidLoad()
    5. self.fbLoginView.delegate = self
    6. self.fbLoginView.readPermissions = ["public_profile", "email", "user_friends"]
    7. }
    8. //Facebook Delegate Methods
    9. func loginViewShowingLoggedInUser(loginView : FBLoginView!) {
    10. println("User Logged In")
    11. println("This is where you perform a segue.")
    12. }
    13. func loginViewFetchedUserInfo(loginView : FBLoginView!, user: FBGraphUser){
    14. println("User Name: \(user.name)")
    15. }
    16. func loginViewShowingLoggedOutUser(loginView : FBLoginView!) {
    17. println("User Logged Out")
    18. }
    19. func loginView(loginView : FBLoginView!, handleError:NSError) {
    20. println("Error: \(handleError.localizedDescription)")
    21. }
    22. override func didReceiveMemoryWarning() {
    23. super.didReceiveMemoryWarning()
    24. }
    25. }
    Alles anzeigen


    - im Interface Builder ein View hinzugefügt und diesem die Klasse FBLoginView hinzugefügt
    - View Controller unter Connections > Outlets mit dem View verbunden

    nun sollte eigentlich alles funktionieren. Leider gibt es aber wie oben erwähnt den Fehler, das er die Datei nicht finden kann.

    In diversen Stackoverflowbeiträgen gibt es verschiedene Ansätze um diesen Fehler zu korrigieren.

    Versucht habe ich folgendes bereits:

    - IOS SDK neu hinzugefügt (Drag&Drop)

    - IOS SDK neu hinzugefügt (über Build Phases > Link Binary With Libraries hinzugefügt)

    - Jedes mal Xcode neu gestartet

    - die Pfade unter Project > Search Paths > Framework Search Paths & Target > Search Paths > Framework Search Paths auf:
    "." recursive (ohne Erfolg)
    "$(PROJECT_DIR)" (ohne Erfolg)
    "${SRCROOT}//project name/facebookSDK/framework" (ohne Erfolg)

    - in dem Bridge-Header.h File den Importpfad geändert auf
    "FacebookSDK.framework/Headers/FacebookSDK.h" (ohne Erfolg)
    "FacebookSDK.framework/Versions/A/Headers/FacebookSDK.h" (ohne Erfolg)

    Ich finde leider nicht den Fehler. Hat jemand eine Idee?

    Vielen Dank und Grüße

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von DKCode ()

  • nussratte schrieb:

    sorry nix zum Thema, aber du fängst damit gerade an und startest dann gleich mit dem grusel SDK facebook?

    Viel Erfolg


    Was meinst Du eigentlich, wie viele Apps im Store auf diese Weise zustande gekommen sind? Ich würde auf einen ansehnlichen zweistelligen Prozentsatz tippen.
  • Ja ich hatte vor 2 Jahren eine Idee und möchte die nun endlich als App umsetzen.
    Da alles andere mittlerweile schon ganz gut aussieht muss nun ein Login- und Registrierungs-System umgesetzt werden. Ohne das gehts nicht. Die Webversion der App steht schon lange aber über ein Webview ist das ja nicht so wirklich schön. Daher versuche ich die App komplett in XCode umzusetzen.

    An sich sollte der Facebooklogin so funktionieren. Es hängt ja nur an diesem "File not found" Problem.

    Vielleicht hat ja noch jemand eine kleine Idee woran es liegen kann :)
  • Hallo,

    ich vermute, dass es mit der Objective-C Bridge zusammenhängt. Die Vermutung kommt daher, dass ich bis jetzt keine Zeile Swift geschrieben habe. (und ich komme immer noch damit zurecht :D :D :D ).
    Hast du mal ein Test-Projekt aufgesetzt und es in reinen Objective-C versucht. Ich habe es vor zwei bis drei Wochen eingebunden, aber mein Projekt ist halt in Objective-C geschrieben, und es lief sofort.

    Der Framework Search Paths zeigt dahin, wo der SDK-Installer hin installiert wurde ?? z.b.: /Users/schumi/Documents/FacebookSDK ??
  • Hast Du auch die Header-Search-Paths entsprechend gesetzt? Achtung, es gibt einen Unterschied ob Du ein #include <header.h> oder ein #include "header.h" schreibst!
    Ansonsten gilt: Objective-C-Bridging nach Swift ist bisweilen etwas knifflig. Manchmal muss man auch die Header in den Umbrella-Header und nicht in den Bridging-Header eintragen. Da gibt's hier schon einen Thread dazu ( -> Forumssuche).

    Der Tip von Schumi es erstmal in Objective-C zu versuchen ist nicht schlecht, dann kannst Du Dich nur mal auf die Pfade konzentrieren ohne das Bridging-Zeug noch an der Backe zu haben. Wenn das läuft -> Einbinden in Swift

    ciao

    gandhi
  • schumi schrieb:

    Hast du mal ein Test-Projekt aufgesetzt und es in reinen Objective-C versucht. Ich habe es vor zwei bis drei Wochen eingebunden, aber mein Projekt ist halt in Objective-C geschrieben, und es lief sofort.

    Der Framework Search Paths zeigt dahin, wo der SDK-Installer hin installiert wurde ?? z.b.: /Users/schumi/Documents/FacebookSDK ??


    Das werde ich mal ausprobieren. Für mich ist XCode bzw. Swift und Objective C ja noch Neuland. Und da ich erst damit angefangen habe, dachte ich warum nicht lieber gleich mit der neuen Apple-Programmiersprache einlernen als auf alte Techniken zurückzugreifen. Aber ich werde heute auf jeden Fall mal ausprobieren.


    volker schrieb:

    Wenn Du diesem Tutorial wort-wörtlich folgst, klappt es dann? brianjcoleman.com/tutorial-facebook-login-in-swift/


    Vielen Dank für den Link, das schau ich mir mal genauer an !


    gandhi schrieb:

    Hast Du auch die Header-Search-Paths entsprechend gesetzt? Achtung, es gibt einen Unterschied ob Du ein #include <header.h> oder ein #include "header.h" schreibst!
    Ansonsten gilt: Objective-C-Bridging nach Swift ist bisweilen etwas knifflig. Manchmal muss man auch die Header in den Umbrella-Header und nicht in den Bridging-Header eintragen. Da gibt's hier schon einen Thread dazu ( -> Forumssuche).

    Der Tip von Schumi es erstmal in Objective-C zu versuchen ist nicht schlecht, dann kannst Du Dich nur mal auf die Pfade konzentrieren ohne das Bridging-Zeug noch an der Backe zu haben. Wenn das läuft -> Einbinden in Swift


    Ich probier die Vorschläge von Schumi und Volker mal aus. Vielleicht führt mich das schon zum Ziel. Sollte das nicht klappen schau ich mir den Thread zum Umbrella-Header mal genauer an. Vielleicht liegt es auch wirklich an dem #include <..> bzw. ".." das probier ich auch nochmal aus.

    Vielen Dank für eure Tips :)
  • volker schrieb:

    Wenn Du diesem Tutorial wort-wörtlich folgst, klappt es dann? brianjcoleman.com/tutorial-facebook-login-in-swift/


    Volker dein Tip war super! Letztendlich habe ich in meinem Projekt vorher alles genauso gemacht bis auf die .plist da hatte ich etwas anders. Aber daran lag es nicht. Sehr merkwürdig. Nun geht es :)

    Sollte jemand das gleiche Tutorial nutzen wollen, dann tauscht bei Punkt 9 "&gt" durch ">" im Script aus sonst wirft XCode einen Fehler.

    Vielen Dank Volker