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