通过安装mobileconfig文件 (Installing a configuration profile on iPhone - programmatically)在iPhone桌面上。
在iPhone Settings->General->provision file
中,我可以找到该列表。
答案 0 :(得分:8)
如果安装了移动配置,我遇到了以下识别的方法,但到目前为止我还没有测试过。
没有可用于执行此操作的直接API。但是有一种解决方法 通过证书信任验证来实现这一目标。
如果我们使用移动配置附加自签名信任ca并安装 它在设备上我们可以检查是否安装了移动配置 检查由签名的叶证书的信任级别 自签名root ca.也就是说,如果应用程序中叶证书的信任验证失败,则意味着未安装或未安装移动配置
<强>步骤:强>
创建自签名根CA ,您可以使用终端中的证书助理或 openssl 来执行此操作。
创建其他证书并使用自签名根CA
将上一步创建的签名证书附加到xcode
将自签名根CA 作为移动配置
的一部分附加代码段:
-(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;
}
<强>参考文献:强>
以下是关于苹果开发人员论坛
主题的技术讨论的link以下是博客文章的link,它会逐步引导您。
的堆栈溢出讨论的链接