IOS开发中的证书和代码签名(code signing)

IOS开发中的证书和代码签名(code signing)

作者:wangzz
转载请注明出处
如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号wangzzstrive来支持我,谢谢!


代码签名的重要性

Code signing 对我们来说,最主要的意义就是它能让我们的App在设备上运行。不管是你自己的设备,还是客户的,还是在App store上购买你的消费者。

如果没有code signing,你只可以在模拟器上,或者一台越狱过的机器上运行你的应用----当然,仅仅如此是不能满足我们的,模拟器的测试仅仅是一种初步测试,模拟器不能替代真机调试。

代码签名涉及到以下概念:
1证书
证书分两种:开发者(Developer)证书、发布者(Distribution)证书。前者开发时使用,后者发布使用。
证书需要自己通过keychain生成一个CSR文件(Certificate Signing Request),并把它上传给苹果,通过苹果的”Apple Worldwide Developer Relations Certification Authority”(WWDR)证书认证中心认证以后,下载下来使用。

苹果官网的证书创建界面如下图所示:


2 App ID
在Xcode中创建一个项目,你要提供 Product Name 和Company Identifier的信息。
Product Name,就是你的app的一个较短的名称。
Company identifier,通常会是一个反转的DNS串,例如:com.mycompanyname
这两者合起来,就是Bundle Identifier。你能在Info.plist中找到。

跟每个人都对应一个唯一的身份证一样,每一个app都对应一个唯一的app ID。对于每一个你要发布的app,你需要到Apple Developer Center中注册你的App ID。

3 UDID
UDID (Unique Device Identifier)是区分物理设备的唯一标识。你的iPhone肯定有一个与众不同的UDID,通常UDID会是一个40位十六进制字符串。

4 Provisioning Profile
把前面讲的东西结合起来:
·App ID (app的唯一标识)
·UDID (在某台设备上运行的唯一标识)
·Certificate (开发者认证)
就是所谓的Provisioning Profile(描述文件)。
你可以在iOS Provisioning Profiles 中创建你的Provisioning Profile,如下图所示:

通常,xcode中需要进行如下的代码签名配置:


Provisioning Profile 通过xcode或者itunes导入到device中,或者打包到一个包含app和profile的.ipa文件中,只有这样,你才可以进行调试或向app Store提交应用。

5团队开发中如何共用证书
团队开发中,需要共享证书文件和私钥。
证书文件可以从苹果官网下载,但是私钥需要从创建该证书的机器上拷出来,给项目组的其他同事。

5.1安装对应的证书
从苹果官网下载响应的开发者或者发布者证书

5.2导出并安装密钥
①打开keychain,选择密钥
②找到对应的开发证书,右键选择与开发证书相配套的私钥(专用密钥),并点击 ‘导出’,保存为 Personal Information Exchange (.p12) 文件格式,将提示你创建一个密码,并需要管理员密码才可导出。
③拷贝该p12文件到其他机器上,安装时会提示你输入上一步设置的密码,输入后安装即可使用。


                                                                                                                                                                                              -----------by wangzz

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值