[ios]各种证书

一、成员介绍
1.    Certification(证书)
证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种:
1)    Developer Certification(开发证书)
安装在电脑上提供权限:开发人员通过设备进行真机测试。
可以生成副本供多台电脑安装;
2)      Distribution Certification(发布证书)
安装在电脑上提供发布iOS程序的权限:开发人员可以制做测试版和发布版的程序。
不可生成副本,仅有配置该证书的电脑才可使用;(副本制做介绍在下面Keychain中介绍)

2.    Provisioning Profile(授权文件)
授权文件是对设备如iPod Touch、iPad、iPhone的授权,文件内记录的是设备的UDID和程序的App Id,即使被授权的设备可以安装或调试Bundle identifier与授权文件中记录的App Id对应的程序。
开发者帐号在创建授权文件时候会选择App Id,(开发者帐号下App Id中添加,单选)和UDID(开发者帐号下Devices中添加最多100个,多选)。
授权文件分为两种,对应相应的证书使用:
1)    Developer Provisioning Profile(开发授权文件)
在装有开发证书或副本的电脑上使用,开发人员选择该授权文件通过电脑将程序安装到授权文件记录的设备中,即可进行真机测试。
注意:确保电脑有权限真机调试,即安装了开发证书或副本;在开发工具中程序的Bundle identifier和选中使用的授权文件的App Id要一致;连接调试的设备的UDID在选中的授权文件中有记录。
2)    Distribution Provisioning Profile(发布授权文件)
在装有发布证书的电脑上(即配置证书的电脑,只有一台)制做测试版和发布版的程序。
发布版就是发布到App Store上的程序文件,开发者帐号创建授权文件时选择store选项,选择App Id,无需选择UDID;
测试版就是在发布之前交给测试人员可同步到设备上的程序文件,开发者帐号创建授权文件时选择AdHoc,选择App Id和UDID;只有选中的UDID对应的设备才可能安装上通过该授权文件制做的程序。
3.    Keychain(开发密钥)
安装证书成功的情况下证书下都会生成Keychain,上面提到的证书副本就是通过配置证书的电脑导出Keychain(就是.p12文件)安装到其他机子上,让其他机子得到证书对应的权限。Developer Certification就可以制做副本Keychain分发到其他电脑上安装,使其可以进行真机测试。
注意:Distribution Certification只有配置证书的电脑才可使用,因此即使导出导出Keychain安装到其他电脑上,其他电脑也不可能具有证书的权限。


如果没有privisioning profile, 尝试通过xcode编译并运行程序到真机上时, 会报出

Code Sign error: A valid provisioning profile matching the application's Identifier 'com.xxxxx.xxxxxxxxx' could not be found的错误


建立好profile之后, 重新下载证书, 并添加到keychain中,然后在project中选择对应的provisioning文件。 否则可能会报出, 

Code Sign error: No unexpired provisioning profiles found that contain any of the keychain's signing certificates

需要说明的时, 再用xcode安装时, 也可以使用adhoc provisioning profile, 而不是一定要development provisioning profile来签名.


1. applications中找到keygen, 通过常规步骤, 申请一个request文件

2. 开发, 发布过程中, 有2中provisioning profile, 一种是development provisioning profile, 一种是distribution provisioning profile.

    distribution provisioning profile又分为ad hoc和app store两种, 其中ad hoc是供使用itunes而非xcode安装app的测试人员使用,developer provisioning profile可以在xcode中安装调试等, 而app store方式的则是供发布到应用商店使用的.

    使用development provisioning profile的时候, 当设备id添加到development provisioning profile的配置页面后, 就可以使用xcode直接点击run进行安装了.

    而使用ad hoc provisioning profile的时候, tester需要把ipa和provisioning file同时拖入到itunes中, 这样才可以安装.

3. 在申请provisioning profile的时候, 需要提供相应的development certificate 或者 distribution certificate

4. 在申请certificate的时候, 就要用到上面提到的request文件了, 这个文件上传后, 1分钟过后, 就可以download相应的certificate了.



certificate通过keygen程序假如到登陆tab的证书中

provisioning profile通过xcode organizer添加到library的provisioning profile中

ad hoc文件呵ipa拖入itunes就可以同步应用程序了.



///其他解释, 还不错的

appid 和证书要怎么匹配的?

Code Sign error: Provisioning profile 'xxxt' specifies the Application Identifier 'com.XXXPRO.test' which doesn't match the current setting 'com.yourcompany.com.XXXPRO.test'

按照
////////////
Provisioning Profiles - 安装/校验

  要把从iPhone Developer Program Provisioning Portal下载回来的Provisioning Profile安装到开发机器,首先需要启动 Xcode然后点击"Window > Organizer"来打开Organizer。把provisioning profile拖到标记为"Provisioning Profiles"的区域内即可。

  如果是为了开发而安装 Provisioning Profile,还需要把它装在开发设备上。在 iPhone OS 设备已经插到电脑上的时候,在 Devices 三角下选择设备,然后在Organizer里把开发provisioning profile拖进去。这就把 Provisioning profile装到 iPhone OS设备里了。

  注意:确保安装在开发设备和Mac里的 Development Provisioning完全相同对成功生成并安装测试程序是非常重要的。

  注意:跟 Development Provisioning Profiles不同,App Store Distribution Provisioning Profiles不能安装在iPhone OS设备里。用App Store Distribution Provisioning生成的程序是用来通过 iTunes Connect上传到App Store的。

  要告诉 Xcode 使用哪个 Provisioning profile,打开 Xcode 项目,打开 Target build settings,滚动到 Code Signing。在 Code Signing 区域有个带小三角的 Code Signing Identity。确定设置是为任何 iPhone OS 设备,之后在Value列点击弹出菜单并且选择要使用的 Provisioning Profile。为了开发,建议选择 "iPhone Developer",要发布,建议选择"iPhone Distribution"。这些都在弹出菜单的"Auto matic Profile Selector"区域里,这样就可以使 Xcode来为你找到正确的Provisioning Profile。

  注意:要是丢失了 iPhone devloper/Distribution证书的私钥,就无法选择证书关联到的 Provisioning Profile。从备份中导入 iPhone developer/Distribution 证书的私钥可以解决这个问题。如果丢了或者删了私钥,就得生成一个新的CSR并且下载新的 iPhone Developer/Distribution 证书和Provisioning Profile。

  程序的 Bundle Identifier 必须跟Provisioning profiles的Bundle Identifier APP ID匹配。要编辑程序的 Bundle Identifier,打开 target's properties settings,在 Identifier 栏输入 Bundle Identifier。如果在 App id的bundle identifier里使用星号通配符,就可以替换为反向DNS格式的字符。

  下面有一些可以输入到 Identifier 框的例子。

  如果AppID是 A1B2C3D4E5.com.domainname.applicationname。输入com.domainname.applicationname 作为 Bundle Identifier

  AppID是 A1B2C3D4E5.*,输入反向DNS格式的字符串作为 Bundle Identifier。


关于 Profiles 和 App IDs

  创建 Provisioning Profiles 时可以关联两种类型的 App ID。第一个类型叫做通用App ID(Wildcard App ID)。推荐大多数iPhone OS开发用通用App ID的Provisioning Profiles,因为这样单个通用App ID可以用来生成和安装大多数程序,包括 iPhone Reference Libary 里的示例代码。通用App ID通过在  Identifier 里输入星号创建。星号必须是App ID字符串的最后一个字符。如果使用通用App ID,记着在Xcode项目里输入Bundle Identifier时把星号替换为反向DNS格式。

假设有 App ID ABCDE12345.*:

ABCDE12345是Bundle种子ID(由Apple生成)

*是App ID的Bundle Identifier。在xcode里输入bundle identifier时需要把星号替换为反向DNS格式。

假设有 App ID: ABCDE12345.com.yourcompany.*

ABCDE12345是Bundle种子ID(由Apple生成)

com.yourcompany.* 是App ID的Bundle Identifier。并且xcode项目里的bundle identifier必须以'com.yourcompany.'开头,星号可以替换成任意字串。

  第二类 App ID 称作固定AppID(Explicit App ID)。这类 APP ID限定了一个provisioning profile只允许一个程序安装。启用iPhone OS 3.0特性需要固定 App ID,例如 In App Purchase或者 App Push Notification 服务。固定ID通过输入指定字串创建。推荐做法是用反向DNS格式。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值