iOS开发中关于Certification,appID,Provisioning Profiles的说明(图文)
iOS开发中,对于新手来说,证书的申请和配置文件的配置是比较繁琐和容易混淆的,下面来梳理一下各自关系和配置流程:
1. Certification(证书)
证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种:
1) Developer Certification(开发证书)
安装在电脑上提供权限:开发人员通过设备进行真机调试。
可以生成副本供多台电脑安装,也就是导出证书秘钥(.p12文件)
2) Distribution Certification(发布证书)
安装在电脑上提供发布iOS程序的权限:开发人员可以制做测试版和发布版的程序。然后打包上传到iTunesConnect进行发布操作。
不可生成副本,仅有配置该证书的电脑才可使用;(副本制做介绍在下面Keychain开发秘钥中介绍)
如果app想加入推送功能,就申请对应的带推送的证书:
2. APP IDS(应用独立标识)
APP IDS是一个应用的独立标识,用来设置支持的项目包名,可以使用’通配符’,用来匹配对应项目的bundle id。在设置项中可以配置该应用的权限,比如是否用到了PassBook,GameCenter, 以及push推送服务,如果选中了push服务,那么就需要创建对应的推送证书,所以,在所有和推送相关的配置中,首先要做的就是让该APP ID打开推送服务。
使用通配符的APP ID :com.companyName.* (适用于普通真机调试,可以被多个项目使用)
不是用通配符的APP ID:com.companyName.appName (适用于带推送的真机调试或app发布,一个项目只能对应一个)
注意:项目的bundle ID 必须和使用的配置文件所包含的APP ID一样
3. Devices(测试设备)
添加设备的devices token,添加进去的设备才可以进行真机测试
4. Provisioning Profile(授权文件)
授权文件是对运行iOS的设备的授权,文件内记录的是设备的UDID和app的APP ID,被授权的设备可以安装或调试Bundle identifier与授权文件中记录的App Id对应的程序。真机调试和上架必须要有授权文件。
开发者帐号在创建授权文件时候会选择APP ID,(开发者帐号下APP IDS中选择,单选)和UDID(开发者帐号下Devices中的设备,最多100添加个,多选)。
授权文件分为两种,对应相应的证书使用:
1) Developer Provisioning Profile(开发授权文件)
在装有开发证书或副本的电脑上使用,开发人员选择该授权文件通过电脑将程序安装到授权文件记录的设备中,即可进行真机测试。
注意:
确保电脑有权限进行真机调试,即安装了开发证书或副本;
在开发工具中程序的Bundle identifier和选中使用的授权文件的APP ID要一致;
连接调试的设备的UDID在选中的授权文件中有记录。
2) Distribution Provisioning Profile(发布授权文件)
在装有发布证书的电脑上(即配置证书的电脑,只有一台)制做测试版和发布版的程序。
发布版就是发布到App Store上的程序文件,开发者帐号创建授权文件时选择App Store选项,选择App Id,无需选择UDID;
测试版或企业版就是在发布之前交给测试人员可同步到设备上的程序文件,开发者帐号创建授权文件时选择Ad Hoc,选择App Id和UDID;只有选中的UDID对应的设备才可能安装上通过该授权文件制做的程序(企业账号可以通过该项分发)。
5. Keychain(开发密钥)
安装证书成功的情况下证书下都会生成Keychain钥匙串,上面提到的证书副本就是通过配置证书的电脑导出Keychain(就是.p12文件)安装到其他机子上,让其他机子得到证书对应的权限。Developer Certification就可以制做副本Keychain分发到其他电脑上安装,使其可以进行真机测试。
注意:Distribution Certification只有配置证书的电脑才可使用,因此即使导出Keychain安装到其他电脑上,其他电脑也不可能具有证书的权限