ios开发者证书与企业证书的内容,关系,以及ios app 使用企业license设置发布app的过程
iOS是一个非常封闭的系统。授权文件(.mobileprovision)和签名证书文件(.cer)的存在就是为了验证身份信息。
首先注册apple开发者,然后花99美刀购买一个个人.cer开发证书,企业想要发布内部使用的app则需要花费299dollor。
这个开发证书只能自己使用,如果有多台开发机器,可以先把cer证书导出为.p12文件(可以设置密码),在第二台开发机上像导入cer一样导入这个p12文件即可。一个cer证书可以对应多个程序ID。
然后是mobileprovision文件,包括app ID,公钥以及DeviceID这三个主要信息。
在开发机器上,build 和 generate需要cer和mobileprovision的公钥和程序ID匹配,才能生成最后的app程序。在手机上安装程序,除了需要私钥公钥匹配,还需要DeviceID匹配,手机的UDID必须在mobileprovision的DeviceID列表中才可以。程序中包括签名信息,要想匹配,必须在手机上安装对应的mobileprovision才可以验证。
所以,如果想要开发build程序,必须安装cer证书和mobileprovision(用到程序ID和公钥信息)。如果想要在手机上直接安装程序(非AppStore安装),必须在手机上安装mobileprovision(程序ID,DeviceID以及公钥信息)。
下面详细介绍使用企业证书发布inhouse app的流程:
企业版证书如下
![](http://images.cnitblog.com/blog/38061/201501/091330020934553.png)
开发者证书如下:
![](http://images.cnitblog.com/blog/38061/201501/091330128435202.png)
安装之后,ios_development.cer会自动启用Keychains程序,将其加入到login证书中。
provision Profile文件则是会被iphone Configuration Utility程序管理,如下图,安装后可以看到其绑定的app id.
![](http://images.cnitblog.com/blog/38061/201501/091330229066695.png)
普通开发者profile 则可以看到其绑定的机器数量devices。
![](http://images.cnitblog.com/blog/38061/201501/091330316405460.png)
连接上自己的手机(非开发机),可以看到安装的两个企业版的provision profile, 及其过期时间。
![](http://images.cnitblog.com/blog/38061/201501/091330397816040.png)
编译设置,注意将Bundle identifier 设置成以上企业证书的app id (注意去掉前面的字母数字id),只填写com.comanyName.appName.
![](http://images.cnitblog.com/blog/38061/201501/091330471565020.png)
设定code Signing identity 为distribution 证书。
![](http://images.cnitblog.com/blog/38061/201501/091331441092221.png)
下面就是生产ipa文件了,
首先,找到刚编译生成的.app文件。
![](http://images.cnitblog.com/blog/38061/201501/091331529217727.png)
打开itunes,并转到apps功能页。
![](http://images.cnitblog.com/blog/38061/201501/091332235461205.png)
将该app文件拖放到itunes的app功能页,就可自动生成可以供公司的员工安装使用的程序了(不需要时开发机,普通用户也可以安装)。
![](http://images.cnitblog.com/blog/38061/201501/091332322814671.png)
最终生成ipa。