Подтвердить что ты не робот

IOS 9 Facebook Access Token nil при запуске приложений в будущем

После недавнего обновления iOS 9, а также обновлений для SDK (4.6.0) в Facebook, я обнаружил, что мой сеанс регистрации больше не сохраняется между запусками приложений.

Мой поток до сих пор был довольно простым.

  • Войдите в Facebook, используя FBSDKLoginButton.
  • В будущем View and Launches отметьте FBSDKAccessToken.currentAccessToken(), чтобы затем использовать Facebook в приложении.

Я обнаружил, что после последних обновлений мой AccessToken теперь отображается как nil, если я закрою и запустил приложение снова. Это серьезная проблема, потому что раньше мне приходилось только один раз входить в систему, а затем моя сессия автоматически обновлялась.

Если я прав, логин должен появляться только один раз, и после этого приложение должно быть в состоянии либо сохранить информацию, которую ему нужно подключиться к Facebook в будущем, либо просто остаться с токеном, который обновляется.

Есть ли у кого-нибудь идеи, что могло измениться, чтобы вызвать это после обновления iOS9 или 4.6.0 Facebook SDK? Есть ли свойства, которые необходимо сохранить, чтобы затем обновить токен в будущем или же токен должен автоматически обновляться? Я почти на 100% позитив, предполагаемый опыт работы с Facebook SDK НЕ должен входить в систему при каждом запуске приложения (когда вы перезапускаете приложение, закройте все его и снова откройте).

Спасибо!

Обновление

Как указано в ответе, я добавил дополнительный ключ в информацию TransportSecurity моего файла Plist. К сожалению, нам не повезло.

введите описание изображения здесь

4b9b3361

Ответ 1

Даже это не сработало для меня, когда я обновил iOS 9, но после того, как я попробовал это решение, он работал у меня.

1) Добавьте данные в info.plist, как показано на рисунке

введите описание изображения здесь

Ответ 2

Добавление этой строки в didFinishLaunchingWithOptions работало для меня:

FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)

Окончательный метод выглядит примерно так:

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

    FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)

    if let accessToken = FBSDKAccessToken.currentAccessToken(){
        print(accessToken)
    }else{
        print("Not logged In.")
    }

    return true
}

Ссылка

Ответ 3

Это произошло и при обновлении до FBSDK 4.18.0

Переход на 4.17.0 решил для меня.

Ответ 4

Для iOS 11/Swift 4 вы должны добавить следующий код в свой AppDelegate: didFinishLaunchingWithOptions

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

Конечный код:

import FacebookCore

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.\

        // FACEBOOK CONFIGURATION
        SDKApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)


        return true
    }