在Xcode 7之前想把iOS程序装上设备(iPhone、iPad等等),都必须向Apple交保护费(加入Apple Developer Program)。Xcode 7允许不交保护费直接让iOS程序在设备上跑,只要把设备连接上Xcode,各设备登录的Apple ID不一致也没关系。但不交保护费是有限制滴:无法开启某些service(推送,内购等),无法把程序导出安装包或者提交到App Store。
交过钱后,可以通过Member Center或者Xcode创建开发证书(development certificate)和发布证书(distribution certificate)。证书用于证明身份,Apple通过加密技术分别把开发证书和发布证书结合成两个“签名身份”(signing identites)。两个签名身份保存在钥匙串(keychian Access)中。签名身份用于对App进行签名(sign)和预处理(provision)。
关键字解释
development certificate:开发证书。如果是以组织(organization)的形式加入Apple Developer Program,每个团队成员都可以创建自己的开发证书。
distribution certificate:发布证书。无论是组织还是个人开发者,都只有一个发布证书。
signing identites:开发签名身份,用于在程序构建(builde,发生在真机调试或者将程序生成archive文件时)过程中对其签名,有开发、发布身份之分。身份由Apple发布的公钥、私钥及对应的证书构成。如果是以组织(organization)的形式加入Apple Developer Program,“开发签名身份”的数量视团队成员的数量而定,每个团队成员都可以创建自己的开发证书,由此证书生成对应的开发签名身份。无论是以组织或者个人的形式加入Apple Developer Program,都只有一个发布证书,与此对应只有一个发布签名身份。
developer profile:开发者描述文件,是开发证书、发布证书和预处理描述文件的统称。
provisioning:字面是意思是准备,指的是App在机器上启动前的预处理过程,在这个过程中根据“预处理描述文件”判断App的作者、App是否被篡改、开启哪些服务(service)等,最终交由系统决定是否启动该App。
team provisioning profile:开发预处理文件(development provisioning profile),由Xcode创建和管理。该文件在真机调试时使用。
provisioning profiles:预处理描述文件,为预处理提供必要信息。是team provisioning profile、store provisioning profile等预处理文件的统称。从Member Center下载并被植入软件包(app bundle)中,这个过程一般由Xcode自动处理。