Ich verwende das Facebook-Login für meine iOS-App, die ab iOS 8 entwickelt wird. (Das neueste Facebook-SDK wird verwendet)
Ich habe alle wesentlichen Schritte befolgt, die im offiziellen Facebook-Leitfaden beschrieben werden. Wenn ich jedoch auf die Login-Schaltfläche klicke, wird der folgende Fehler angezeigt:
Unbekannter Fehler beim Erstellen der URL (com.facebook.sdk.core-Fehler 3)
Ich habe nachgesehen, um herauszufinden, was ich möglicherweise falsch gemacht habe, aber alles scheint wie pro Führer zu sein, und ich bin hier seit einem Tag festgeblieben.
Code für FB Login Delegate:
class FBLoginDelegate: NSObject, FBSDKLoginButtonDelegate {
func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!){
if(error == nil){
print("Logged In from Btn")
}else{
print("Error: \(error.localizedDescription)") //Here it gives the error
}
}
}
Code für die FB-Anmeldeschaltfläche:
var fbLoginBtnDelegate = FBLoginDelegate()
let fbBtnWidth = self.view.bounds.width - (self.fbContainerLeftConstraint.constant + self.fbContainerRightConstraint.constant)
let fbLoginButton = FBSDKLoginButton(frame: CGRectMake(0,0,fbBtnWidth,self.fbButtonContainer.bounds.size.height))
self.fbButtonContainer.addSubview(fbLoginButton)
fbLoginButton.readPermissions = ["public_profile", "user_friends", "email", "user_birthday"]
fbLoginButton.delegate = fbLoginBtnDelegate
Wenn Sie das Facebook iOS SDK auf Version 4.39.0 aktualisiert haben, liegt ein Fehler vor, der diesen Fehler verursacht. Ein Downgrade auf 4.38.1 hilft Ihnen, dieses Problem zu lösen. Stellen Sie sicher, dass Sie sowohl FBSDKCoreKit als auch FBSDKLoginKit herunterstufen.
pod 'FBSDKCoreKit', '~> 4.38.0'
pod 'FBSDKLoginKit', '~> 4.38.0'
Bereinigen Sie den Build-Ordner und erstellen Sie das SDK neu.
update : Dieser Fehler wurde in Version 4.39.1 SDK behoben. https://developers.facebook.com/docs/ios/change-log-4x/
Dies ist ein Facebook SDK-Fehler in Version 4.39.0, der diesen Fehler verursacht. Um diesen Fehler zu beheben, müssen Sie CoreKit und LoginKit einfach auf 4.38.0 herabstufen, die abgeleiteten Daten sowie den Bereinigungsordner löschen (CMD + OPTION + SHIFT + K). Während 4.38.1 auch gut funktioniert.
pod 'FBSDKCoreKit', '~> 4.38.0'
pod 'FBSDKLoginKit', '~> 4.38.0'
Wenn Sie FacebookCore und FacebookLogin verwenden, können Sie Folgendes tun.
pod 'FacebookCore'
pod 'FacebookLogin'
pod 'FBSDKCoreKit', '~> 4.38.0'
pod 'FBSDKLoginKit', '~> 4.38.0'
Für mich bestand das Problem darin, dass die in CFBundleURLTypes
> CFBundleURLSchemes
in Info.plist
angegebene Facebook-App-ID falsch geschrieben wurde.
Ich habe die App-ID aus einer .xcconfig
-Datei importiert, sodass sich ihr zugrunde liegender Wert abhängig davon ändert, ob ich ein Debug
- oder ein Release
-Schema verwende. Als ich die plist-Datei ausgedruckt hatte, gab es beim Lesen aus den xcconfig
-Dateien unnötige Anführungszeichen um die App-ID. Wo das URL-Schema beispielsweise fb012345678
sein sollte, war es fb"012345678"
.
Ich habe versucht, die App-IDs richtig in den Info.plist
zu codieren, wie im Facebook-Handbuch angegeben, und die FBSDKLoginButton
hat gerade funktioniert. Safari erschien, um den Facebook-Anmeldebildschirm anzuzeigen. Sie müssen die IDs jedoch nicht hartcodieren. Stellen Sie nur sicher, dass sie korrekt in Info.plist
eingesetzt werden.
Im Terminal & Navigiere zum Projektordner verwenden
auf die aktuelle Version 4.39.1 aktualisieren
Ich habe die Anweisungen von reactative-fbsdk befolgt, in denen Sie Framework-Dateien Ordner in das Projekt kopieren sollen. Daher hat der oben genannte Cocoapod-Ansatz für mich nicht funktioniert.
Was ich getan habe, ist, die vorhandenen Framework-Dateien aus dem Projekt zu entfernen (Rechtsklicken Sie auf Framework-Elemente -> Löschen -> Ja, und klicken Sie dann auf Alle entfernen). Fügen Sie dann die vorherigen Versionen der Frameworks erneut hinzu, indem Sie sie herunterladen:
/ - https://developers.facebook.com/docs/ios/downloads/
Ich musste zwei Dinge tun, damit das funktioniert.
pod 'FBSDKCoreKit', '~> 4.38.0'
pod 'FBSDKLoginKit', '~> 4.38.0'
Obwohl dies im Facebook-Entwicklerportal vorgeschlagen wurde. Dies erzeugte den folgenden Fehler:
com.facebook.sdk: FBSDKErrorDeveloperMessageKey = Unbekannte Fehlererstellungs-URL.
Hoffe das hilft.