Ответ 1
Даже это не сработало для меня, когда я обновил iOS 9, но после того, как я попробовал это решение, он работал у меня.
1) Добавьте данные в info.plist, как показано на рисунке
После недавнего обновления iOS 9, а также обновлений для SDK (4.6.0) в Facebook, я обнаружил, что мой сеанс регистрации больше не сохраняется между запусками приложений.
Мой поток до сих пор был довольно простым.
FBSDKLoginButton
.FBSDKAccessToken.currentAccessToken()
, чтобы затем использовать Facebook в приложении.Я обнаружил, что после последних обновлений мой AccessToken теперь отображается как nil
, если я закрою и запустил приложение снова. Это серьезная проблема, потому что раньше мне приходилось только один раз входить в систему, а затем моя сессия автоматически обновлялась.
Если я прав, логин должен появляться только один раз, и после этого приложение должно быть в состоянии либо сохранить информацию, которую ему нужно подключиться к Facebook в будущем, либо просто остаться с токеном, который обновляется.
Есть ли у кого-нибудь идеи, что могло измениться, чтобы вызвать это после обновления iOS9 или 4.6.0 Facebook SDK? Есть ли свойства, которые необходимо сохранить, чтобы затем обновить токен в будущем или же токен должен автоматически обновляться? Я почти на 100% позитив, предполагаемый опыт работы с Facebook SDK НЕ должен входить в систему при каждом запуске приложения (когда вы перезапускаете приложение, закройте все его и снова откройте).
Спасибо!
Обновление
Как указано в ответе, я добавил дополнительный ключ в информацию TransportSecurity моего файла Plist. К сожалению, нам не повезло.
Даже это не сработало для меня, когда я обновил iOS 9, но после того, как я попробовал это решение, он работал у меня.
1) Добавьте данные в info.plist, как показано на рисунке
Добавление этой строки в 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
}
Это произошло и при обновлении до FBSDK 4.18.0
Переход на 4.17.0 решил для меня.
Для 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
}