Tôi đang cố gắng sử dụng khung bảo mật iOS để giao tiếp an toàn với máy chủ của mình. Tôi có một tập tin chứng chỉ mà từ đó tôi có thể nhận được một tài liệu tham khảo khóa công khai. Đây là những gì tôi đang làm.SecTrustCreateWithCertificates treo trên iPad
NSString *certPath = [[NSBundle mainBundle] pathForResource:@"supportwarriors.com" ofType:@"cer"];
SecCertificateRef myCertificate = nil;
NSData *certificateData = [[NSData alloc] initWithContentsOfFile:certPath];
myCertificate = SecCertificateCreateWithData(kCFAllocatorDefault, (CFDataRef)certificateData);
//got certificate ref..Now get public key secKeyRef reference from certificate..
SecPolicyRef myPolicy = SecPolicyCreateBasicX509();
SecTrustRef myTrust;
OSStatus status = SecTrustCreateWithCertificates(myCertificate,myPolicy,&myTrust);
SecTrustResultType trustResult;
if (status == noErr) {
status = SecTrustEvaluate(myTrust, &trustResult);
}
publicKey = SecTrustCopyPublicKey(myTrust);
Đoạn mã hoạt động hoàn hảo trên iPhone và tôi đã thử nghiệm điều đó. Tôi có thể giao tiếp an toàn với máy chủ của mình. Nhưng khi tôi cố gắng chạy ứng dụng của tôi trên iPad (ở chế độ 2x) mã trên bị lỗi. Sau khi gỡ lỗi, tôi phát hiện ra rằng secTrustCreateWithCertificate đang gặp sự cố và bản ghi sự cố được đưa ra bên dưới .. Chứng chỉ tôi đã sử dụng giống nhau cho cả iPad và iPhone ... Hàm trên secCertificateCreateWithData trả về một chứng chỉ tham chiếu và không phải là ... Vì vậy, đó là không phải là nguyên nhân gây ra tai nạn .. Tôi đang làm gì sai.
*** -[NSCFType count]: unrecognized selector sent to instance 0x14af24
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFType count]: unrecognized selector sent to instance 0x14af24'
Bạn có thể đăng chứng chỉ không? – rook