【发布时间】:2017-11-06 17:40:00
【问题描述】:
我有 iOS 11,此代码未检测到我安装的自定义证书:
- (BOOL)IsMobileConfigInstalled {
NSString *certPath = [[NSBundle mainBundle] pathForResource:@"cert" ofType:@"der"];
NSData *certData = [NSData dataWithContentsOfFile:certPath];
SecCertificateRef cert = NULL;
if ([certData length]) {
cert = SecCertificateCreateWithData(NULL, (__bridge CFDataRef) certData);
if (cert != NULL) {
CFStringRef certSummary = SecCertificateCopySubjectSummary(cert);
NSString *summaryString = [[NSString alloc] initWithString:(__bridge NSString *) certSummary];
CFRelease(certSummary);
}
}
SecPolicyRef policy = SecPolicyCreateBasicX509();
SecTrustRef trust;
OSStatus err = SecTrustCreateWithCertificates((__bridge CFArrayRef) @[
(__bridge id) cert
], policy, &trust);
SecTrustResultType trustResult = (SecTrustResultType) -1;
err = SecTrustEvaluate(trust, &trustResult);
CFRelease(trust);
CFRelease(policy);
CFRelease(cert);
return kSecTrustResultUnspecified == trustResult;
}
有什么问题?
【问题讨论】:
-
问题是你没有解释它应该做什么以及它做什么。另一个问题是你应该先在 iOS 10 上试试这个。
-
@deadbeef 当然在 ios 10 中它正在工作。并且已经发布了这个应用...
标签: ios objective-c certificate