1)iOS开发,一般都会涉及到Provisioning Profile(配置文件)。大多数时候是通过苹果的“Development Provisioning Assistant”,将配置文件安装到正确的地方,并使用Keychain Access(钥匙串访问程序)获取证书和密钥,并将其安装到钥匙串中。
2)一个Provisioning Profile文件包含了上述的所有内容:证书、App ID、设备。
3)如果要打包或者在真机上运行一个应用程序,首先需要证书来进行签名,用来标识这个应用程序是合法的、安全的、完整的等等;然后需要指明它的App ID,并且验证Bundle ID是否与其一致;再次,如果是真机调试,需要确认这台设备能否用来运行程序。而Provisioning Profile就把这些信息全部打包在一起,方便在调试和发布程序打包时使用,这样只要在不同的情况下选择不同的profile文件就可以了。而且这个Provisioning Profile文件会在打包时嵌入.ipa的包里。
4)例如,如下图所示,一个用于Development的Provisioning Profile中包含了该Provisioning Profile对应的App ID,可使用的证书和设备。这意味着使用这个Provisioning Profile打包程序必须拥有相应的证书,并且是将App ID对应的程序运行到Devices中包含的设备上去。
如上所述,在一台设备上运行应用程序的过程如下:
5)与证书一样,Provisioning Profile也分为Development和Distribution两种:
(注:前面提到不同账户类型所能创建的证书种类不同,显然Profile文件的种类是和你所能创建的证书种类相关的)
6)In House 与Ad Hoc的不同之处在于:In House没有设备数量限制,而Ad Hoc是用来测试用的,Ad Hoc的包只能运行在该账户内已登记的可用设备上,显然是有最多100个设备的数量限制。所以这两种Provisioning Profile文件的区别就在于其中的设备限制不一样而已,而他们所使用的Certificate是相同的。