iOS App开发过程的真机调试和开发完成的发布要用合法的 Signing Identity 进行签名,并且要制作相应的Provising Profile。
![](https://i-blog.csdnimg.cn/blog_migrate/f2f4f4244e044a325f00e2d051cd901f.png)
开发过程的真机调试需要:
Private Key -- 私钥
iPhone Development Certificate -- 开发证书
Development Provisioning profile
发布到 App Store 需要:
私钥
iPhone Distribution Certificate
App Store Distribution Provisioning profile
通过 Ad Hoc 发布需要:
私钥
iPhone Distribution Certificate
Ad Hoc Distribution Provisioning profile
Private Key, Certificate, Provisioning Profile 的作用
Private Key —私钥, 在iOS App 开发过程中,Xcode用它来签署应用。
Certificate —证书,它包含公钥,用来认证已签名的程序,通过认证来确定应用的来源是可信任的,并且代码是完整的, 未经修改的。
![](https://i-blog.csdnimg.cn/blog_migrate/fe359d246be649428b0c89be1e2b92e7.png)
Provisioning Profile —供应配置文件,它包含证书, App ID, 设备信息,它决定Xcode用哪个证书/私钥组合来签署程序, 开发设备也通过它来决定如何认证安装在设备上的程序。
![](https://i-blog.csdnimg.cn/blog_migrate/2fd6fa81fb15c11439ba76269d8ea25f.png)
Private Key, Certificate, Provisioning Profile 的制作过程
使用KeyChain申请 Certificate Signing Request (CSR),这个过程就能生成代码签名的公、私钥对,私钥会保存在KeyChain中,公钥则包含在Certificate中。
Certificate制作具体步骤:
- Certificate Signing Request (CSR)
KeyChain Access > Certificate Assitant > Request a Certificate From a Certificate Authority…
Certificate Infomation
User Email Address:xxx(you favarite address) Common Name:xxx(you name) CA Email:(Keep empty) Request is: save to disk
之后会弹出保存路径选择对话框,选择你想保存的目标路径。
-
制作Certificate
developer.apple.com > Certificates, Identifiers & Profiles > Certificates > + > 选择需要的Certificate类型 > 上传之前创建的CSR > 得到Certificate -
安装Certificate
下载生成的Certificate > 保存好(如改个容易识别的名字,保存到安全的地方) > 双击它,安装到Key Chain. -
导出Private Key
从KeyChain中导出Private Key,团队其他成员可以省略制作Certificate的繁琐操作。
Provisioning Profile的制作要复杂些,它要包含App 相应的Certificate, App ID, Development Provision Profile 还会包含 Device 信息。
Tips
团队开发时,我们可以通过邮件等方式分发Private Key,这样只需要制作一次 Private Key, Certificate, Provisioning Profile。
Xcode3.2.3预发布版本加入了新功能Team Provisioning Profile,它包含一个Wildcard App ID(*, 匹配所有应用程序),Team中所有的Development Certificates和所有开发设备信息,增加新设备后,Xcode会自动更新Team Provisioning Profile, 因此, 团队成员可以通过设置Xcode的Provisioning Profile为Team Provisioning Profile,从而可以在所有的开发设备上调试应用程序。
![](https://i-blog.csdnimg.cn/blog_migrate/7de15990cb95eeea22f3198f600261ec.png)
源引:http://damiansheldon.github.io/blog/ios-development-certificates.html/