在最近的 iOS 9 更新以及对 Facebook SDK (4.6.0) 的更新之后,我发现我的登录 session 在应用程序启动之间不再持续存在。
到目前为止,我的流程非常简单。
- 使用
FBSDKLoginButton
登录 Facebook。 - 在未来的 View 和启动中检查
FBSDKAccessToken.currentAccessToken()
以便能够在应用程序中使用 Facebook。
我发现在最近的更新之后,如果我关闭并再次启动应用程序,我的 AccessToken 现在显示为 nil
。这是一个主要问题,因为以前,我只需登录一次,然后我的 session 就会自动续订。
如果我是正确的,登录应该只发生一次,之后应用程序应该能够存储它需要的信息以在将来连接到 Facebook,或者只是保留一个可以自行刷新的 token 。
有没有人知道在 iOS9 或 4.6.0 Facebook SDK 更新后可能发生了什么变化?是否需要保留属性以便在将来刷新 token ,或者 token 是否应该自动更新?我几乎 100% 肯定,使用 Facebook SDK 的预期体验是不必在每次启动应用程序时都登录(当您重新启动应用程序时,完全关闭并再次打开)。
谢谢!
更新
根据回复中的要求,我在我的 Plist 文件的 TransportSecurity 信息中添加了一个额外的 key 。不幸的是,还是没有运气。
最佳答案
在 didFinishLaunchingWithOptions
上添加这一行对我有用:
FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
final方法看起来像这样:
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
}
关于iOS 9 Facebook 访问 token 在未来的应用程序发布中为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32896269/