关于iOS开发中使用的证书
在使用苹果账号进行开发之前所有人都必须下载一个证书
AppleWWDRCA.cer
这个证书只用一次,相当于进入苹果公园的门票,有了这个证书代表苹果授权给你的应用,允许你的应用发布在AppStore上,有了这个证书之后的一系列证书和文件才可以使用
在三年前这个证书还需要开发者手动下载安装,得益于苹果的发展,现在这个证书貌似由xcode自动创建了
在创建开发证书和发布证书之前都要到钥匙访问串中申请一个文件
CertificateSigningRequest.certSigningRequest
网上很多人说这个文件也使用一次,事实上不一定的。
如果要创建apns的证书,不同的app id需要不同的csr文件。
在企业级开发账号中,如果两个app使用了同样一个csr制作的推送证书,很可能发生一种问题:指向两个不同app做的推送信息都会在同一个app中显示。
这也就是为什么apns所需要的app id是固定的,没有通配符*的。
这个文件中包含私钥和公钥,私钥要保存在请求这个文件的电脑中,只对这一台电脑负责,这也是为什么很多人发现,如果换一个电脑再从开发者账号中下载开发证书和描述文件都不能用的原因。
如果发生这种情况,有两种方法解决:1、从原电脑中导出;2、revoke原证书重新创建(不推荐)。
公钥只包含了一半,另一半在申请的.cer的证书中。
使用csr文件制作的证书有两种:developer和distribution,前者用来开发调试,后者用来发布应用。
个人开发者账号有一个developer和一个distribution,企业级账号有一个developer和两个distribution
一旦revoke不可恢复。
developer不做赘述。
个人开发账号,如果revoke了distribution账号对已经存在的应用没有影响,AppStore上得应用依然可以下载使用。但是如果是企业级账号,那已上线的app就不能再安装使用了。
如果revoke了apns证书,那么推送功能无法使用。
如果证书过期或者账号过期,应用无法使用。
个人认为cer证书是一个类似苹果公园内需要另外付费的景点门票
.mobileprovision描述文件,它真的就是描述文件。
它的作用就是将之前所做得所有操作全部关联起来:我在我的电脑上(私钥)创建了一个id为blablabla的app,我希望这个app使用证书cer与苹果服务器取得认证,让我可以将应用上传到AppStore。
如果是开发证书的话是:我在我的电脑上(私钥)创建了一个id为blablabla的app,我希望这个app使用证书cer(csr中公钥与证书中公钥匹配)取得认证,让我可以通过我得电脑连接我的设备(device)来进行调试。