iOS 砖家纪实录ios 开发『技术栈』iOS

iOS开发证书与配置文件的使用

2015-12-06  本文已影响61208人  明天不用上课

前提

众所周知,开发iOS应用必须要有iOS证书(Certificates)和配置文件(Provisioning Profiles),那么问题来了:

1.什么是iOS证书,它是如何与app应用关联的?
2.iOS开发证书和生产证书有何区别,如何使用的?
3.证书与配置文件(Provisioning Profiles)是什么关系,配置文件在Xcode中如何使用?
4.证书以及配置文件如何申请?
5.什么是Key Pair(公钥/私钥)?如何与证书关联的?
6.签名的作用是什么?

准备工作

如果想要进行iOS开发,首先要具备下面一些条件:
1.首先,要有苹果开发者账号(Apple Developer Account)

2.若要进行真机调试,必须至少拥有一台装有Mac OS X/Xcode的Mac开发机(iMac or MacBook)

1.登陆iOS Dev Center

如果已经拥有苹果开发者账号,直接登录苹果开发者中心申请开发证书。

EB52CB59-2C2C-4DB8-8F4E-F9F3F1BB28FB.png 5F9C1BE5-46DB-4023-AD0E-1F717AEB80AE.png
下面就这四项,分别介绍

2.Certificates(证书),Identifiers(标识符),Devices(设备),Provisioning Profiles(供应配置文件)

为了方便理解,我们把顺序打乱,分别介绍这四项。

2.1. Identifiers

Identifiers即标识符,相当于身份证,用于创建以下三个ID:
App IDs
Pass Type IDs
Website Push IDs

2.1.1.关于App IDs

其中,App ID是应用的唯一标识符:

FEDE676C-1DFC-4958-B52E-3B2DF73A35B3.png

2.1.2.创建App ID

1EF8FB56-E265-4B97-A8BE-327841B86814.png 423D58C6-2535-4726-98C6-500658BD1141.png 453733A7-ABE7-4696-95EE-45168BD75172.png

2.2. Certificates

2.2.1. 描述

iOS证书是用来证明iOS App内容(executable code)的合法性和完整性的数字证书。对于想安装到真机或发布到AppStore的应用程序(App),只有经过签名验证(Signature Validated)才能确保来源可信,并且保证App内容是完整、未经篡改的。

  1. 开发证书用于开发和调试应用程序,可用于联机调试。
  1. 生产证书用来发布应用程序。

2.2.2. 生成证书请求文件(CSR)

可以通过Keychain(钥匙串)证书助理从证书颁发机构请求证书。在iOS Dev Center中添加证书(Certificates)时,需要上传改CSR文件。

64A49729-3C03-4F8F-9910-3E9688235B86.png 096ED51F-A832-4DA5-BBB0-FEBA17BE4764.png DAB324D4-D886-4097-A54D-1E37038A87A1.png
  1. 私钥(private key)始终保存在Mac OS的Keychain Access中,用于签名(CodeSign)对外发布的App。
  1. 公钥(public key)一般随证书散布出去,对App签名进行校验认证。

2.2.3.申请证书

F5FABF55-157A-47BB-B3A3-3A0125ABAFDC.png DB782EBE-01C6-48A1-A83E-A6B6CAC5D349.png 62F40B5F-4FA9-49C3-B707-46EADD3EC28A.png 1A7B633E-B61B-4E63-8EEB-B0D15D0B053E.png 9D2FC3A0-7FC7-43A9-8C3D-B60F108528ED.png A9690706-6620-4A3D-9B9A-D727EFFC9179.png 屏幕快照 2015-12-06 下午5.40.06.png

2.2.4.导出证书

1EF53825-B4C4-43B6-A0D8-536FE32AEB81.png 72BA1D21-C005-4A7B-81B6-3B8ADC62872D.png 47AF6037-0C4F-4960-9AD8-75C5EE34CA6F.png

2.3. Devices

  1. Device是指运行iOS系统用于开发调试App的设备(即苹果设备)。每台Apple设备使用UDID来唯一标识。
  1. 设备的UDID可通过iTunes->Summary或者Xcode->Window->Devices获取。
  2. 开发描述文件(Provisioning Profiles)必须绑定设备,所以在申请开发描述文件之前,必须要添加调试的设备(已添加可跳过)。

2.3.1.添加调试设备

9A9CA0B2-F320-4F9F-B51A-B0C250FECC63.png ADF3D2DB-09B6-42D2-899B-D92D0E6163B5.png

2.3. Provisioning Profiles

2.3.1 概念

Provisioning Profile文件包含了上述所有内容:证书App ID设备,后缀名为.mobileprovision。

  1. 一个Provisioning Profile对应一个Explicit App ID或Wildcard App ID。
  1. Provisioning Profile决定Xcode用哪个证书(公钥)/私钥组合(Key Pair/Signing Identity)来签名应用程序(Signing Product),将在应用程序打包时嵌入到.ipa包里。
  2. Provisioning Profile把这些信息全部打包在一起,方便我们在调试和发布程序打包时使用。这样,只要在不同的情况下选择不同的Provisioning Profile文件就可以了。
  3. Provisioning Profile也分为Development和Distribution两类,有效期同Certificate一样。Development版本的ProvisioningProfile用于开发调试,Distribution版本的ProvisioningProfile主要用于提交App Store审核,其不指定开发测试的Devices。
  4. xcode开发时,需在XcodeTarget->Build Settings->Code Signing->Provisioning Profile下配置对应的描述文件(Provisioning Profiles),然后在Code Signing Identity下拉可选择Identities from Profile "..."(即Provisioning Profile中包含的Certificates)。
  5. 在XcodeTarget->Build Settings->Code Signing->Provisioning Profile可选择“Automatic”,xcode会根据该Target的“Bundle identifier”选择默认的配置文件及证书。
3DAD606D-8BDC-4A7E-8644-5A7CF27DF3B4.png

2.3.2. 创建配置文件

AC661BDE-DE94-487E-9A71-4C436224CB5D.png 0AB45E72-821D-4F5C-84F8-CA19E97CC565.png F0C2D519-CA90-4286-A0AB-3A42DB4EADA0.png 50725524-699D-400B-B1C0-3C5024774F95.png 3FD54433-014F-4861-803F-994FFACCC910.png 56C9B53B-666E-4173-8083-D1857EB58CD4.png 6F158A64-B819-476F-86EC-A4BA6EF1E3D2.png F5A42FB8-44EB-4A5C-B53C-3F3499CF883D.png 3E6BFDF4-28E2-49DF-A31E-0FF507A1604F.png
上一篇下一篇

猜你喜欢

热点阅读