2015-11-22 7 views
10

Я интегрировал Parse Framework со всеми зависимостями Facebook в своем приложении. Моя конфигурация PLIST выглядит следующим образом:IOS 9 Swift - Parse Facebook не открывает собственное приложение для Facebook

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

Мой Логин код выглядит так:

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") 
       } 

      } 
     }) 

Все работает хорошо, однако процесс Логин делается в Safari, а не в установленной Facebook App.

Что мне не хватает?

+0

Попробуйте это: http://stackoverflow.com/questions/33315083/error-in-facebook-login-ios-9-swift – lukaivicev

ответ

5

С тех пор, как iOS 9 Facebook SDK больше не предлагает авторизацию через приложение Facebook. Причина в том, что пользователям будет предложено, чтобы приложение могло открыть другое приложение, и это влияет на UX.

Единственным вариантом является использование FBSDKLoginBehaviorSystemAccount или FBSDKLoginBehaviorBrowser

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

Спасибо за ответ, однако я вижу, что другие приложения используют этот метод успешно (например, AirBnB). Я попытался добавить '(PFFacebookUtils.facebookLoginManager()). LoginBehavior = FBSDKLoginBehavior.SystemAccount' без везения. любая другая идея? –

+0

Вы всегда можете использовать более старую версию SDK, чтобы вернуть «FBSDKLoginBehavior.Native», но это не рекомендуется. Для того чтобы «FBSDKLoginBehavior.SystemAccount» работал, FB необходимо настроить в настройках iOS, иначе он вернется в браузер. –

+0

Не могли бы вы уточнить, какие настройки необходимо настроить? единственное, что я установил на платформе IOS, - это идентификатор Bundle. P.S - theNative имеют тот же эффект –