Ошибка входа в Facebook (всегда isCancelled) после обновления до SDK 4.1

Я обновил SDK от 3.21.1 до 4.1 в приложении iOS (уже вживую).

Я внимательно следил за руководством по обновлению и реализовал новые методы входа. Код, который я использовал, тот, который приведен в документации по Facebook.

Но после обновления каждый раз, когда я пытаюсь войти в систему (устройство или симулятор, приложение для веб-просмотра или Facebook), я могу успешно пройти поток входа в систему, но когда я возвращаюсь к своему приложению, логин не возвращает никакой ошибки, но возвращает FBSDKLoginManagerLoginResult «isCancelled».

В качестве обходного пути я попытался реализовать приложения-приглашения, которые не требуют входа в систему, но я застрял в консоли «Попытка аутентифицироваться в FB» … Не повезло и здесь.

Поэтому я думаю, что это имеет какое-то отношение к резервному удостоверению подлинности и схеме URL-адресов в файле info.plist, но я дважды проверял его, а данные (которые отлично работали до обновления) были такими же, как указано в документации по Facebook ,

У кого-нибудь есть подсказка? Благодаря!

Что я уже проверил:

  • Я не изменил info.plist, который уже настроен для использования Facebook SDK и отлично работал перед обновлением.
  • Учетная запись пользователя, которую я использую для входа, также отлично работала до этого обновления.
  • У меня нет текущего входа в систему до или после входа в систему.

Благодаря Dheeraj и его ответ на аналогичный вопрос , я нашел ошибку в моих звонках. Я просто сделал самую тупую ошибку в Swift. В маловероятном случае кто-то такой же тупой, как я прочитал это, вот 3 вызова в Swift, которые вы должны добавить в свой AppDelegate.swift. Они протестированы и работают:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Do what you have to do but at the end, instead of 'return true', put : return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions) } func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool { return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation) } func applicationDidBecomeActive(application: UIApplication) { FBSDKAppEvents.activateApp() } 

Большие пальцы для вашей помощи зимовали. И спасибо Dheeraj bhai. Здесь я просто обновляю ответ для Swift 3.1.

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions) } func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool { return FBSDKApplicationDelegate.sharedInstance().application(application, open: url as URL!, sourceApplication: sourceApplication, annotation: annotation) } func applicationDidBecomeActive(application: UIApplication) { FBSDKAppEvents.activateApp() } 

И да не забыли поставить:

 import FBSDKCoreKit 

в App Delegate.

Еще одна причина, по которой вызов FBSDKLoginManagerLoginResult всегда возвращает isCancelled : если приложение (в разработке) запрашивает определенные разрешения, пользователь не является указанным разработчиком для этого приложения, и FaceBook еще не одобрил приложение для этих разрешений, оно будет всегда возвращается isCancelled .

  • UITextField secureTextEntry переключает заданный неправильный шрифт
  • Функция Swift, которая принимает массив, дает ошибку: '@lvalue $ T24' не идентичен 'CGFloat'
  • Анимация Изменение высоты заголовка UICollectionView
  • Быстрое сравнение опций Strings vs non-optional
  • iOS - Замещенная кнопка возврата слишком близко к краю
  • Невозможно преобразовать значение типа ошибки в swift 2
  • Потяните, чтобы обновить в UICollectionView в ViewController
  • iOS увеличит зону касания для UIButton в TableViewCell
  • Geofire (iOS) clang: ошибка: команда компоновщика не удалась с кодом выхода 1 (используйте -v, чтобы увидеть вызов)
  • правильный способ добавления данных в UITableView, быстрый
  • Swift UIButton - Как удалить подчеркивание?
  • Давайте будем гением компьютера.