2015-11-22 16 views
10

Ich habe Parse Framework mit allen Facebook-Abhängigkeiten zu meiner App integriert. Meine plist Konfiguration sieht wie folgt aus:IOS 9 Swift - Parse Facebook Login öffnet nicht native Facebook-App

<key>CFBundleURLTypes</key> 
    <array> 
     <dict> 
      <key>CFBundleURLSchemes</key> 
      <array> 
       <string>fbXXXXXXXXXXXXX</string> 
      </array> 
     </dict> 
    </array> 
    <key>FacebookAppID</key> 
    <string>XXXXXXXXXXXXX</string> 
    <key>FacebookDisplayName</key> 
    <string>XXXXX</string> 

    <key>NSAppTransportSecurity</key> 
    <dict> 
     <key>NSExceptionDomains</key> 
     <dict> 
      <key>facebook.com</key> 
      <dict> 
       <key>NSIncludesSubdomains</key> 
       <true/> 
       <key>NSExceptionRequiresForwardSecrecy</key> 
       <false/> 
      </dict> 
      <key>fbcdn.net</key> 
      <dict> 
       <key>NSIncludesSubdomains</key> 
       <true/> 
       <key>NSExceptionRequiresForwardSecrecy</key> 
       <false/> 
      </dict> 
      <key>akamaihd.net</key> 
      <dict> 
       <key>NSIncludesSubdomains</key> 
       <true/> 
       <key>NSExceptionRequiresForwardSecrecy</key> 
       <false/> 
      </dict> 
     </dict> 
    </dict> 

    <key>LSApplicationQueriesSchemes</key> 
    <array> 
     <string>fbauth2</string> 
    </array> 

Mein Login Der Code sieht so aus:

PFFacebookUtils.logInInBackgroundWithReadPermissions(permissionsArray, block: { (user, error) -> Void in 
      if(error != nil){ 
       print("Login failed") 
      }else{ 
       if let currentUser = user{ 
        if(currentUser.isNew){ 
         print("New user") 
        }else{ 
         print("Login success") 
        } 
       }else{ 
        print("Login canceled") 
       } 

      } 
     }) 

Alle funktioniert gut, aber der Login-Prozess in Safari und nicht in der installierten Facebook App getan wird.

Was fehlt mir?

+0

Probieren Sie dies aus: http://stackoverflow.com/questions/33315083/error-in-facebook-login-ios-9-swift – lukaivicev

Antwort

5

Seit iOS 9 bietet Facebook SDK keine Autorisierung mehr über Facebook App. Der Grund dafür ist, dass Benutzer aufgefordert werden, bevor die App eine andere App öffnen kann, was sich auf UX auswirkt.

Ihre einzige Option ist verwenden FBSDKLoginBehaviorSystemAccount oder FBSDKLoginBehaviorBrowser

PFFacebookUtils.facebookLoginManager().loginBehavior = FBSDKLoginBehavior.SystemAccount 
+0

Danke für die Antwort, aber ich kann andere Anwendungen sehen, die diese Methode erfolgreich verwenden (wie AirBnB). Ich habe versucht, hinzuzufügen '(PFFacebookUtils.facebookLoginManager()). LoginBehavior = FBSDKLoginBehavior.SystemAccount' ohne Glück. irgendeine andere Idee? –

+0

Sie können immer ältere Version von SDK verwenden, um das 'FBSDKLoginBehavior.Native' zurück zu bekommen, aber es wird nicht empfohlen. Damit 'FBSDKLoginBehavior.SystemAccount' funktioniert, muss der FB in den iOS-Einstellungen eingerichtet werden, andernfalls wird er auf den Browser zurückgesetzt. –

+0

Können Sie bitte näher erläutern, welche Einstellungen konfiguriert werden müssen? Das einzige, was ich in der IOS-Plattform eingestellt habe, ist die Bundle-ID. P.S. - die .Native haben den gleichen Effekt –

Verwandte Themen