如果你只是想创建证书,不好意思这里没有!!!
iOS开发,我们肯定会和证书打交道,很多时候,我们只知道怎么用这个证书,很少去研究证书到底是什么?证书有什么用?
简单的讲,证书是我们开发、发布时的许可证,是由苹果发布的。
我们的证书是被苹果CA签过名的合法的证书。而iOS设备在执行app前,首先要先验证CA的签名是否合法,然后再通过证书中我们的公钥验证程序是否的确是我们发布的,且中途没有对程序进行过篡改。
下面问题来了,我们申请证书时,用的CertificateSigningRequest.certSigningRequest文件,是个什么鬼?有什么用呢?
这个文件包含两部分内容(Certificate signing request):
1、申请者信息,此信息是用申请者的私钥加密的
2、申请者公钥,此信息是申请者使用的私钥对应的公钥
3、摘要算法和公钥加密算法
从MC(Member Center 开发者中心)中申请到的证书究竟是什么?
苹果取出CertificateSigningRequest.certSigningRequest中的公钥,根本不管我的其他信息,然后将我的MC账号信息和我提交的公钥封装在证书中,并进行数字签名
配置文件--iOS授权和描述文件
但是光有证书并不够解决苹果的“后顾之忧”,证书能够证明app的所属以及app的完整性,保证app本身是安全的。但是,却不能细化到app所使用的某些服务是被苹果认可的,比如APN推送服务。而且证书无法限制调试版的app的装机规模。于是,苹果想出了mobileprovision。
mobileprovision文件包含:
1、AppId。每个app必须在MC中创建一个对应的AppId。规则不累述了。
2、使用哪些证书。上面说了,不同类型的证书就代表了不同的发布方式,还包括一些功能的能否使用(比如APN)
3、功能授权列表
4、可安装的设备列表。对于AdHoc方式发布的app或者真机调试时,会有一个列表,这个列表里面是iOS设备的UDID,每台iOS设备出厂的UDID都不同,所以可以用来标识设备。可通过iTunes连接设备,或者http://fir.im/udid这里获取
5、苹果的签名!
AdHoc发布和真机调试
AdHoc允许将测试版app发布给有限的设备安装,而无需通过appstore的审核。这里的关键是如何控制哪些设备可以装。答案就是mobileprovision文件,记得你在生成mobileprovision文件的时候需要选设备的UDID吧,所以这些设备需要事先添加到MC的Devices里面。对于开发时候的真机调试,原理差不多。都是通过mobileprovision的条目4来做到的。而苹果对于调试和测试用机的数量限制为100台!
更多信息请查看 www.cnblogs.com/ioriwellings/p/5066652.html
分享是一种力量。