'kCFStreamSSLAllowsExpiredCertificates'和'kCFStreamSSLAllowsAnyRoot'已弃用

2vi*_*on2 11 objective-c asihttprequest ios

我已将"ASIHTTPRequest"库添加到我的应用程序中.现在,我正在尝试删除项目中的所有警告.我已经修复了除"ASIHTTPRequest"之外的所有其他警告.我收到下面的警告.

不推荐使用'kCFStreamSSLAllowsExpiredCertificates':

不推荐使用'kCFStreamSSLAllowsAnyRoot':

怎么解决这个?

码:

NSDictionary *sslProperties = [[NSDictionary alloc] initWithObjectsAndKeys:
                      [NSNumber numberWithBool:YES], kCFStreamSSLAllowsExpiredCertificates,
                      [NSNumber numberWithBool:YES], kCFStreamSSLAllowsAnyRoot,
                      [NSNumber numberWithBool:NO],  kCFStreamSSLValidatesCertificateChain,
                      kCFNull,kCFStreamSSLPeerName,
                      nil];
Run Code Online (Sandbox Code Playgroud)

截图

小智 29

根据CFNetwork框架中CFSocketStream.h中的注释:

kCFStreamSSLAllowsExpiredCertificates:
kCFStreamSSLAllowsExpiredRoots:
kCFStreamSSLAllowsAnyRoot:

不推荐使用影响不受信任的证书链评估的SSL握手标志.相反,kCFStreamSSLValidatesCertificateChain如果用户已决定这样做,则使用single属性禁用证书链检查

因此,简单的解决方案是删除已弃用的密钥及其值.只保留kCFStreamSSLValidatesCertificateChainkCFStreamSSLPeerNamesslProperties字典中.


mac*_*115 1

在声明上方添加以下行:

#pragma clang diagnostic ignored "-Wdeprecated-declarations"
Run Code Online (Sandbox Code Playgroud)