iOS 11中的sectrustevaluate()放慢速度



我的应用程序可能会在iOS 11,iPhone 6 Plus中放慢速度。(其他iOS按预期运行。)

我知道sectrustevaluate()方法是使应用程序减慢的原因。我在主线程中运行大约3秒钟。因此,我使用GCD将其移至背景线程。

- (void)URLSession:(NSURLSession *)session didReceiveChallenge(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential * _Nullable credential))completionHandler {
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
         BOOL allowConnect =   //Server Trust Evaluation in here
         dispatch_async( dispatch_get_main_queue(), ^{
             if (allowConnect) {
                //completionHandler;
             } else {
                 //cancel
             }
           });
       });
    }
}

然后,它不会阻止UI,而是需要20秒钟的服务器信任验证。
有人知道这个问题吗?请帮我。谢谢。

我配置了我的问题。这与iOS 11无关。这是我的错。

我在同一主机上为每个安全下载图像请求创建一个nsurlsession。因为TLS会话在计算上很昂贵,因此我的应用程序会减慢。我的解决方案是为所有下载请求创建一个会话。因此,评估服务器证书的结果将被缓存,下一个请求(在同一主机,端口上)您不需要评估服务器信任。

更多信息:https://developer.apple.com/library/content/qa/qa1727/_index.html

为什么每个域一次挑战一次https nsurlsession连接?

相关内容

  • 没有找到相关文章

最新更新