iOS是一个非常封闭的系统。授权文件(.mobileprovision)和签名证书文件(.cer)的存在就是为了验证身份信息。一般情况下,比如ssh登陆或者scp需要私钥、公钥对即可,iOS也是基本采取这种方法。
首先注册apple开发者,然后花美刀购买一个.cer开发证书,这个开发证书可以理解为私钥。这个私钥只能你自己使用,如果有多台开发机器,可以先把cer证书导出为.p12文件(可以设置密码),在第二台开发机上像导入cer一样导入这个p12文件即可。一个cer证书可以对应多个程序ID。
然后是公钥。mobileprovision文件包括程序ID,公钥以及DeviceID这三个主要信息。在开发机器上,build需要cer和mobileprovision的公钥和程序ID匹配,才能生成最后的app程序。
在手机上安装程序,除了需要私钥公钥匹配,还需要DeviceID匹配,手机的UDID必须在mobileprovision的DeviceID列表中才可以。程序中包括私钥信息,要想匹配,必须在手机上安装对应的mobileprovision才可以验证公钥私钥。
所以,如果想要开发build程序,必须安装cer证书和mobileprovision(用到程序ID和公钥信息)。如果想要在手机上直接安装程序(非AppStore安装),必须在手机上安装mobileprovision(程序ID,DeviceID以及公钥信息)。
(摘自:http://blog.sina.com.cn/s/blog_8c87ba3b0100ztrx.html,添加了少量自己的理解。)