Check if a configuration profile is installed on iOS
Configuration profiles can be downloaded to an iOS device through Safari to configure the device in a certain way. You can do things like force the user to set a passcode or set restrictions like not allowing them to install apps or not allowing access to Safari. They’re created using iPhone Configuration Utility. There’s no API to check if a profile is installed but you can check indirectly. You basically embed a certificate authority in the configuration profile. When the profile is installed it also installs the certificate authority. You create a certificate signed by the certificate authority and embed it in the app. Then in the app you check if the embedded certificate is trusted which indirectly tells you whether the profile is installed. I got most of the information from this blog post but it took me a little while to work out what certificates to create so this version is a bit more comprehensive.
In Keychain Access goto Keychain Access > Certificate Assistant > Create a Certificate Authority…

Check “Let me override defaults” and keep the defaults in the subsequent steps apart from the one’s shown below:

Uncheck “Sign your invitation”.

You might need to change the email address.

You can set capabilities to “Any”, though I’m not sure if it makes much difference.
When you’re finished creating the certificate authority it should show up in the login certificates. From there export the certificate authority as a .cer file. Don’t set any password on the exported certificate. If you want to delete the certificate authority and create it again deleting it in Kechain Access doesn’t remove it properly. You will need to go to ~/Library/Application Support/Certificate Authority and delete the relevant folder there.
Next open iPhone Configuration Utility. Select “Configuration Profiles” on the left and create a new configuration profile. Scroll down to Credentials and press the “Configure” button on the right and select the certificate you just exported.


Now export your configuration profile. You will probably need to sign it before you upload it to a web server so it shows up as “Verified” on the device. The mime type of the .mobileconfig files needs to be set to application/x-apple-aspen-config on your web server.
You will now need to create a certificate signed by the certificate authority. Go back to Keychain Access and goto Keychain Access > Certificate Assistant > Create a Certificate…

Set the identity type to “Leaf” and check “Let me override defaults”. Keep the defaults in the subsequent steps apart from the screens shown below:

You might want to change the email address.

You can set capabilities to “Any”, though I’m not sure if it makes much difference.
Again this certificate will be added to login keychains. Export the certificate as a .cer file and add it to XCode and make sure it’s part of your app’s package.
Use the following code to check if the profile is installed:
NSString* certPath = [[NSBundle mainBundle] pathForResource:@"certificate" ofType:@"cer"];
02.if (certPath==nil)03.return TernaryIndefinite;04.NSData* certData = [NSData dataWithContentsOfFile:certPath];05.SecCertificateRef cert = SecCertificateCreateWithData(NULL, (__bridge CFDataRef) certData);06.SecPolicyRef policy = SecPolicyCreateBasicX509();07.SecTrustRef trust;08.OSStatus err = SecTrustCreateWithCertificates((__bridge CFArrayRef) [NSArray arrayWithObject:(__bridge id)cert], policy, &trust);09.SecTrustResultType trustResult = -1;10.err = SecTrustEvaluate(trust, &trustResult);11.CFRelease(trust);12.CFRelease(policy);13.CFRelease(cert);14. 15.if(trustResult == kSecTrustResultUnspecified)16.// Profile is installed17.else18.// Profile not installedCheck if a configuration profile is installed on iOS的更多相关文章
- php学习日志(4)-The mbstring extension is missing. Please check your PHP configuration错误及解决方法
		
在安装好wampServer后,一直没有使用phpMyAdmin,今天用了一下,phpMyAdmin显示错误:The mbstring extension is missing. Please che ...
 - Spring Configuration Check  Unmapped Spring configuration files found
		
Spring Configuration Check Unmapped Spring configuration files found 项目中有xml文件,但没有被用IntelliJ 导入现有工程时 ...
 - springbooot2 thymeleaf 配置以及加载资源文件。Cannot find template location: classpath:/templates/ (please add some templates or check your Thymeleaf configuration)
		
最近在学习springbooot2 和 thymeleaf 程序文件 application.properties文件配置: #thymeleaf spring.thymeleaf.prefix=cl ...
 - Check which .NET Framework version is installed
		
his article will help you to know which .NET Framework version is installed from command line. Check ...
 - ERROR 3077 (HY000): To have multiple channels, repository cannot be of type FILE; Please check the repository configuration and convert them to TABLE.
		
在5.7.16搭建多源复制时,出现如下错误: mysql> change master to master_host='192.168.56.156',master_user='repl', ...
 - configure: error: off_t undefined; check your library configuration
		
configure: error: off_t undefined; check your library configuration 发生背景: 编译PHP时出现的提示,报错信息为: configu ...
 - php源码安装执行configure报错error: off_t undefined; check your library configuration
		
php安装执行configure报错error: off_t undefined; check your library configuration vim /etc/ld.so.conf 添加如下几 ...
 - phpMyAdmin-Error:The mbstring extension is missing. Please check your PHP configuration.
		
1.打开php.ini 2.找到 ; extension_dir = "./",把前面的分号去掉.引号里改成extension_dir = "D:php/ext" ...
 - ios开发过程中描述文件(provisioning profile)过期导致ios无法正常安装的处理办法
		
1.登录开发者中心,重新编辑描述文件,获得最新的描述文件.(如果对应的P12文件也过期,需要同时下载最新的p12文件).----该步骤需要有权限的人才能操作. 2.下载最新的描述文件和p12文件(如果 ...
 
随机推荐
- easyUI-combobox 动态绑定数据源
			
前台 <link rel="stylesheet" type="text/css" href="../css/easyui.css"/ ...
 - eclipse 4.5.2 源码修改 格式化Java代码
			
注:本文代码基于eclipse4.5.2 1. 需求:在换电脑之后,如何不用配置eclipse就可以很快进入开发呢,并保持原来的编码规范. 2. 方法:修改eclipse源码 分别修改了两个jar包2 ...
 - [译]使用JMH进行微基准测试:不要猜,要测试!
			
英文原文:Micro Benchmarking with JMH: Measure, don't guess!翻译地址:使用JMH进行微基准测试:不要猜,要测试!原文作者:Antonio翻译作者:Ho ...
 - JavaScript 跳坑指南
			
JavaScript 跳坑指南 坑0-String replace string的replace方法我们经常用,替换string中的某些字符,语法像这样子 string.replace(subStr/ ...
 - PHP的一些开源项目网站
			
https://github.com/wenzhixin/bootstrap-table https://github.com/1000hz/bootstrap-validator
 - 建立docker私有库(docker registry)(转)
			
建立docker私有库(docker registry) 博客分类: docker 我的目标还是无互联网安装,部署内部的docker私有库,目前docker镜像的获得还是需要互联网,将下载好的do ...
 - BASH比较大小
 - for循环嵌套的优化
			
public static void main(String[] args) { int x = 0; for (int i = 0; i < 2; i++) { ...
 - Win7下Doxygen配置与使用
			
1. 下载与安装 1.1 下载 Doxygen官方安装程序及其手册下载地址,目前使用版本为1.8.8. 安装程序:http://www.stack.nl/~dimitri/doxygen/downl ...
 - gbd基本使用一
			
http://biancheng.dnbcw.info/linux/391846.html