签名逻辑要搞清楚:
SURFSKY-2012-10
1. 相关资源
(1) 钥匙串程序(常用工具->钥匙串) ,用于创建证书请求、安装证书、导出私钥等 (2) IOS 开发中心:https://developer.apple.com/devcenter/ios/index.action (3) IOS 描述门户(IOS provisioning Portal) ,在此配置证书、描述文件、推送服务等: https://developer.apple.com/ios/manage/overview/index.action, (4) IOS 程序发布:http://itunesconnect.apple.com/
2.证书、签名、私钥、描述文件的一句话描述
(1) (2) (3) (4) 证书分两种:开发者证书、发布者证书。前者开发时使用,后者发布使用 模拟器调试无需代码签名;真机调试需开发者证书代码签名;发布时需发布证书签名 代码签名需要:证书+私钥,缺一不可,详见 4 真机调试时要求在设备上安装描述文件(provision profile) ,该文件包含信息:调试者证书, 授权调试设备清单,应用 ID。一个应用对应一个描述文件。 (5) 一般情况下,xcode 需要做以下代码签名配置:
3. XCODE 代码签名简要步骤
(1) 用钥匙串程序创建证书请求:证书请求文件(*.certSigningRequest) ,私钥,公钥。 (2) 将证书请求文件发送给 apple,后者将创建一个证书文件(*.cer)给你。 (3) xcode 将使用证书文件和对应的私钥给代码签名。 注:私钥可导出为 p12 文件拷贝他人使用,详见下节。
(下面这一部分比较重要, 前面的再说)
4. 团队开发中如何共用证书
团队开发中,需要共享证书文件和私钥。若仅从 provisioning portal 下载证书文件而无私钥,xcode 会提示出错:Unable to code design using identities in this team: no private keys available(无法在团队 中进行代码签名:找不到有效的私钥) 。解决办法: (1) 打开钥匙串程序,选择 ‘秘钥’ 种类。 (2) 右键点击(或按住 control 点击)与开发证书相配套的私钥(专用密钥) ,并点击 ‘导出’,保存为 Personal Information Exchange (.p12) 文件格式.,将提示你创建一个密码,并需要管理员密码才 可导出。 (3) 拷贝该 p12 文件到其他机子上,会提示你输入上一步输入的密码。