iOS 10 beta NSURLSession 请求的 cookie 不见了

iOS 10 beta NSURLSession request's cookie is gone

我有一个应用程序使用 NSURLSession 连接服务器来检索数据。在 iOS 9 中,它运行良好。最近iOS即将发布,我升级Xcode并使用iOS 10 Beta SDK...结果HTTP GET请求没有包含Cookie会话信息。这使得请求失败。我在这里搜索了 iOS 10 beta 关于 cookie 的问题,但运气不佳。想请问有没有人遇到过这种情况,有什么建议吗???提前谢谢你。

这是我创建 NSURLSession 的代码

         NSURLSessionConfiguration *urlSessionConfig = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:EP_FETCH];




        _fetchSession = [NSURLSession sessionWithConfiguration:urlSessionConfig
                                                               delegate:self    // we MUST have a delegate for background configurations
                                                          delegateQueue:nil];   // nil means "a random, non-main-queue queue"

更新:

已向 Apple 提交错误。同时,还发现如果我改变

NSURLSessionConfiguration *urlSessionConfig = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:EP_FETCH];

NSURLSessionConfiguration *urlSessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];

然后 cookie 返回到 HTTP 请求中。所以我想知道是 'NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier' 这个 api 有问题。

如果这甚至有可能不是您代码中的错误,请提交错误。任何回归都应在今天 报告给 Apple,因为距离最终发布只有几天的时间了 iSO 10。请提供:

  • 重现问题的最小示例工具。
  • 行为描述。
  • 对以前操作系统行为的描述。

考虑将其标记为 "Security",因为这会影响设备对 Web 服务进行身份验证的能力。

关于诊断问题:

  • 尝试将会话配置中的 HTTPCookieStorage 属性 显式设置为 [NSHTTPCookieStorage sharedHTTPCookieStorage]
  • 设置断点并确保在您发起请求之前 cookie 已被您应用程序的其他部分存储。
  • 尝试针对 iOS 9 SDK 和 运行 在 iOS 10 上进行编译。这将区分意外的 SDK 绑定(链接上或之后)行为差异普通错误。
  • 添加代码以尝试手动提取 cookie 并验证它是否确实存在。
  • 确认没有细微的错误,例如将 cookie 标记为安全然后通过 HTTP 发送、cookie 域匹配问题、意外重定向等