2016-08-30 3 views
2

Я использую SDK для Windows для Swift, установленный через cocoapods. Я сконфигурировал пример приложения следующим образом:Вход Отменен

  1. Добавил новое приложение для facebook на сайте разработчика;
  2. Добавлено приложение iOS с правильным идентификатором пакета;
  3. О применении IOS редактировал info.plist добавить:
<key>CFBundleURLTypes</key> 
    <array> 
     <dict> 
      <key>CFBundleURLSchemes</key> 
      <array> 
       <string>fb169432773464820</string> 
      </array> 
     </dict> 
    </array> 
    <key>CFBundleVersion</key> 
    <string>1</string> 
    <key>FacebookAppID</key> 
    <string>{APPID}</string> 
    <key>FacebookDisplayName</key> 
    <string>AppDisplayName</string> 
    <key>LSApplicationQueriesSchemes</key> 
    <array> 
     <string>fbapi</string> 
     <string>fbauth</string> 
     <string>fb-messenger-api</string> 
     <string>fbauth2</string> 
     <string>fbshareextension</string> 
    </array> 

После этого я создал обычай UIButton со следующим действием:

@IBAction func facebookTouched(sender: UIButton) { 
    let loginManager = LoginManager() 
    loginManager.logIn([.PublicProfile], viewController: self) { loginResult in 
     switch loginResult { 
     case .Failed(let error): 
      print(error) 
     case .Cancelled: 
      print("User cancelled login.") 
     case .Success(let grantedPermissions, let declinedPermissions, let accessToken): 
      print("Logged in!") 
     } 
    } 
} 

Когда я нажимаю UIButton вызывается действие, и браузер Safari открывает страницу facebook. Поскольку я уже принял это приложение, я получаю следующее сообщение: «ApplicatioName уже принято», когда я нажимаю «Ok», браузер перемещается на пустую страницу, и ничего не происходит. Если я нажму кнопку «Готово», вызывается.

Любые идеи? Приветствия

ответ

1

Проблема была на AppDelegate были методы Facebook ApplicationDelegate должны также называться:

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool { 
     ApplicationDelegate.shared.application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation) 

     return true 
    } 

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

     ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions) 

     return true 
    }