在iPhone桌面上安装mobileconfig文件(在iPhone上以编程方式安装配置文件).
在iPhone中Settings->General->provision file,我可以找到列表.
我遇到了以下方法来确定是否安装了移动配置,但到目前为止我还没有测试过.
没有可用的直接API.但是有一种解决方法可以通过证书信任验证来实现.
如果我们使用移动配置附加自签名信任ca并将其安装在设备上,我们可以通过检查由自签名根ca签名的叶证书的信任级别来检查是否安装了移动配置.也就是说,如果应用程序中叶证书的信任验证失败,则表示未安装或未安装移动配置
脚步:
创建自签名根CA您可以使用证书助理或终端中的openssl来完成.
创建另一个证书,并得到其签名使用自签名根CA
将上一步中创建的签名证书附加到xcode
将自签名根CA附加为Mobile Config的一部分
代码片段:
-(BOOL)IsMobileConfigInstalled {
NSString* certPath = [[NSBundle mainBundle] pathForResource:@"LeafCertificate" ofType:@"cer"];
NSData* certData = [NSData dataWithContentsOfFile:certPath];
SecCertificateRef cert = SecCertificateCreateWithData(NULL, (__bridge CFDataRef) certData);
SecPolicyRef policy = SecPolicyCreateBasicX509();
SecTrustRef trust;
OSStatus err = SecTrustCreateWithCertificates((__bridge CFArrayRef) [NSArray arrayWithObject:(__bridge id)cert], policy, &trust);
SecTrustResultType trustResult = -1;
err = SecTrustEvaluate(trust, &trustResult);
CFRelease(trust);
CFRelease(policy);
CFRelease(cert);
if(trustResult == kSecTrustResultUnspecified)
return YES;
else
return NO;
}
Run Code Online (Sandbox Code Playgroud)
参考文献:
以下是苹果开发人员论坛中围绕该主题的技术讨论的链接
| 归档时间: |
|
| 查看次数: |
2968 次 |
| 最近记录: |