大佬教程收集整理的这篇文章主要介绍了iphone – SecTrustCreateWithCertificates在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);
上面的代码完全适用于iPhone,我测试过.我能够安全地与我的服务器通信.但是当我尝试在iPad上运行我的应用程序时(在2x模式下)上面的代码崩溃了.调试之后,我发现secTrustCreateWithCertificate崩溃并且崩溃日志在下面给出.我使用的证书对于iPad和iPhone都是相同的…上面的函数secCertificateCreateWithData返回证书引用并且不是nil …所以这是不是崩溃的原因.我做错了什么.
*** -[NSCFType count]: unrecognized selector sent to instance 0x14af24 *** Terminating app due to uncaught exception 'NSInvalidArgumentException',reason: '*** -[NSCFType count]: unrecognized selector sent to instance 0x14af24'
SecCertificateRef certs[1] = { certificate }; CFArrayRef array = CFArrayCreate(NULL,(const void **) certs,1,NULL); if(SecTrustCreateWithCertificates(array,x509Policy,&trustChain) == errSecSuccess)
只记得CFRelease(数组)在适当的范围内.
以上是大佬教程为你收集整理的iphone – SecTrustCreateWithCertificates在iPad上崩溃全部内容,希望文章能够帮你解决iphone – SecTrustCreateWithCertificates在iPad上崩溃所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。