2014-11-11 19 views
10

Tôi đã thêm thư viện "ASIHTTPRequest" vào ứng dụng của mình. Bây giờ, tôi đang cố gắng loại bỏ tất cả các cảnh báo trong dự án của tôi. Tôi đã sửa tất cả các cảnh báo khác ngoại trừ những cảnh báo cho "ASIHTTPRequest". Tôi nhận được các cảnh báo dưới đây.'kCFStreamSSLAllowsExpiredCertificates' và 'kCFStreamSSLAllowsAnyRoot' không được chấp nhận

'kCFStreamSSLAllowsExpiredCertificates' bị phản đối:

'kCFStreamSSLAllowsAnyRoot' bị phản đối:

Làm thế nào để giải quyết này?

Code:

NSDictionary *sslProperties = [[NSDictionary alloc] initWithObjectsAndKeys: 
         [NSNumber numberWithBool:YES], kCFStreamSSLAllowsExpiredCertificates, 
         [NSNumber numberWithBool:YES], kCFStreamSSLAllowsAnyRoot, 
         [NSNumber numberWithBool:NO], kCFStreamSSLValidatesCertificateChain, 
         kCFNull,kCFStreamSSLPeerName, 
         nil]; 

screenshot

+0

Liên quan: [Vấn đề # 395] (https://github.com/pokeb/asi-http-request/issues/395) cho 'ASIHTTPRequest' trên GitHub. – Pang

Trả lời

1

Thêm dòng sau trên tuyên bố của bạn:

#pragma clang diagnostic ignored "-Wdeprecated-declarations" 
27

Theo các ý kiến ​​trong CFSocketStream.h trong khuôn khổ CFNetwork:

kCFStreamSSLAllows ExpiredCertificates:
kCFStreamSSLAllowsExpiredRoots:
kCFStreamSSLAllowsAnyRoot:
cờ bắt tay

Các SSL ảnh hưởng đến đánh giá chuỗi chứng chỉ không tin cậy được phản đối. Thay vào đó, sử dụng tài sản duy nhất kCFStreamSSLValidatesCertificateChain để vô hiệu hóa chuỗi chứng chỉ kiểm tra nếu người dùng đã quyết định rằng nó là thích hợp để làm như vậy

Vì vậy, giải pháp đơn giản là để loại bỏ các phím bị phản đối và giá trị của họ. Chỉ giữ kCFStreamSSLValidatesCertificateChainkCFStreamSSLPeerName trong từ điển sslProperties.

Các vấn đề liên quan