1. 说一些基本的东西
每一台iPhone 都有一个唯一的uuid。
每一台iPhone上的APP 都有一个唯一bundle Identifier。
每一个配置文件(Provisioning Profiles)都会包含一个App ID, 多个证书,多个设备。
每一个CSR(开发密钥) 都只属于一台Mac电脑。
每一个证书(Certification)都包含一个CSR(开发密钥)
2. 关系
1) 证书可以说是Mac电脑和苹果官方的纽带,Mac电脑只有拥有了这条纽带,安装在该电脑上的Xcode才可以使用该证书访问到苹果官方的一些信息(也就是说Mac电脑拥有了可以把xcode项目安装到iPhone上的权限)。
2) Xcode 想要将项目安装到iPhone 上,毋庸置疑,这哥俩儿之间也需要一条纽带。这条纽带就是配置文件(Provisioning Profiles),配置文件(Provisioning Profiles)中包含着App ID 和 设备uuid,App ID 也就是Xcode target 配置中的bundle Identifier。uuid 存在于手机上,App ID存在于xcode,联系就这么通过配置文件(Provisioning Profiles)建立了。
3) 配置文件(Provisioning Profiles) 和 证书。配置文件中包含着证书,故通过配置文件就可以访问到证书的一些信息和权限
3. iPhone 不允许安装未知来源的应用(不像Mac电脑,可以通过 ‘系统偏好设置’ 里的 ‘安全性与隐私’ 进行修改),只有当一个应用程序变的合法(也就是经过证书签名) 才可以安装到iPhone。想要将一个xcode项目安装到iPhone 手机上,需要怎样的一个流程?
1) xcode需要配置好使用的证书、配置文件、和bundle Identifier。所配置的证书必须存在于所配置的配置文件(Provisioning Profiles)中。所配置的bundle Identifier必须符合配置文件(Provisioning Profiles)中App ID的规则。App ID 大概有以下几种
.............1. com.company.firstapp。 bundle Identifier则是com.company.firstapp
.............2. com.company.* bundle Identifier则是com.company.任意英文,例如com.company.abc,com.company.cbd 等
.............3. com.*。 bundle Identifier则是com.任意英文,例如com.xx.xxx, com.bb.ccc 等
.............4. *。 bundle Identifier则是任意英文, 例如abc.cbd.xxx, aaa.bbb.ccc 等
2) xcode 使用配置文件中的证书对项目进行签名。签名的过程也就是验证项目bundle Identifier是否符合App ID的规则,配置文件中证书的有效性,iPhone设备是否存在于证书中 等一系列验证。
3) xcode 项目转化为应用程序安装到iPhone中
4.百字不如一图,图解xcode项目安装到iPhone的过程(不涉及具体步骤详情)