iOS有两种证书和描述文件:

证书类型 使用场景
开发(Development)证书和描述文件 用于开发测试,在HBuilder中打包后可在真机环境通过Safari调试
发布(Distribution)证书和描述文件 用于提交Appstore,在HBuilder中打包后可使用Application Loader提交到Appstore审核发布

准备环境

    • 必需要有苹果开发者账号,并且加入了“iOS Developer Program”
    • Mac OS 10.9以上系统(如果已经申请p12证书则不需要)

登录iOS Dev Center

打开网站iOS Dev Center
使用苹果开发者账号登录iOS Dev Center:

登录成功后在页面右侧选择“Certificates, Identifiers & Profiles”:

在“Certificates, Identifiers & Profiles”页面的“iOS Apps”栏中任选一项,如“Certificates”:

打开“iOS Certificates”页面,可以看到所有已经申请的证书及描述文件:

申请苹果App ID

(如果已经申请,可跳过此节)
在“iOS Certificates”页面“Identifiers"下选择“App IDs",可查看到已申请的所有App ID,点击右上角的加号可创建新“App ID”:

打开“Register iOS App ID”页面,在“App ID Description”栏下的“Name”项中输入名称(如“HBuilderApp”):

在“Explicit App ID”栏下的“Bundle ID”项中输入App ID(使用反向域名格式字符串,如“io.dcloud.HBuilderApp”):
注意:HBuilder中App云端打包界面的AppID栏需要输入此值

在“App Services”栏下选择应用要使用到的服务(如需要使用到消息推送功能,则选择“Push Notifications”):

设置完成后选择“Continue”,弹出确认页面:

确认后选择“Submit”提交,再次确认就可以在“App IDs"页面看到刚创建的App ID:

生成证书请求文件

不管是申请开发(Development)证书还是发布(Distribution)证书,都需要使用证书请求(.certSigningRequest)文件,证书请求文件需在Mac OS上使用“Keychain Access”工具生成。
在“Spltlight Search”中搜索“Keychain”并打开“Keychain Access”工具:

打开菜单“Keychain Access”->“Certificate Assistant”,选择“Request a Certificate From a Certificate Authority...”:

打开创建请求证书页面,在页面中输入用户邮件地址(User Email Address)、证书名称(Common Name),请求类型(Request is)选择保存到磁盘(Saved to disk):

点击“Continue”后弹出保存路径:

点击“Save”后保存证书请求文件,成功提示:

保存文件名称为“CertificateSigningRequest.certSigningRequest”,后面申请开发(Development)证书和发布(Production)证书时用到。

申请开发(Development)证书和描述文件

开发(Development)证书用于测试环境下使用,可以直接安装到手机上(不用提交到Appstore),但一个描述文件最多只能绑定100台设备(因此通过这种证书正式发布应用是行不通的)。

申请开发(Development)证书

在“Certificates, Identifiers & Profiles”页面“Certificates"下选择“Development",可查看到已申请的所有开发(Development)证书,点击右上角的加号可创建新证书:

打开“Add iOS Certificate”页面,在“Development”栏下选中“iOS App Development”:

在页面底部选择“Continue”:

打开确认证书请求页面,点击“Continue”继续:

打开证书生成页面,点击“Choose File...”选择“生成证书请求文件”章节生成的“CertificateSigningRequest.certSigningRequest”文件,点击“Generate”生成cer证书成功:

生成证书成功后打开证书下载页面,选择“Download”下载保存证书(ios_development.cer):

双击保存到本地的ios_development.cer文件导入到“Keychain Access”:

导入成功后,可以在证书列表中显示:

选中导入的证书,右键选择“Export "Developer" ...”:

打开证书保存页面,输入文件名、选择路径后点击“Save”:

打开设置证书密码页面,输入密码及确认密码后点击“OK”:

打开访问“Keychain Access”密码页面,输入Mac OS管理员密码,点击“Allow”,保存开发(Development)证书(如“HBuilderCert.p12”)。

添加调试设备

开发描述文件必须绑定设备,所以在申请开发描述文件之前,先添加调试的设备。
(如果已经添加设备,可跳过此节)
在“Certificates, Identifiers & Profiles”页面“Devices”下选择“All",可查看到已添加的所有设备信息,点击右上角的加号可添加新设备:

打开“Registering a New Device or Multiple Devices”页面,输入设备名称和UDID:


将设备连接到电脑,启动iTunes,点击次区域可切换显示设备的UDID,右键选择复制

输入完成后,点击“Continue”继续,确认输入信息:

点击“Register”,完成添加。

申请开发(Development)描述文件

在“Certificates, Identifiers & Profiles”页面“Provisioning Profiles”下选择“Development",可查看到已申请的所有开发(Development)描述文件,点击右上角的加号可创建新描述文件:

打开“Add iOS Provisioning Profile”页面,在“Development”栏下选中“iOS App Development”:

点击“Continue”按钮,打开“App ID”选择页面,选择要使用的“App ID”(如之前创建的“io.dcloud.HBuildApp”),点击“Continue”:

打开“Select certificates”页面,选择前面创建的开发证书:

点击“Continue”,打开选择调试设备页面,选择用于调试安装的设备(最多100太设备):

点击“Continue”,输入描述文件的名称(如“HBuilderProfile”):

点击“Generage”,生成描述文件成功:

点击“Download”下载保存开发描述文件(如HBuilderProfile.mobileprovision)。

申请发布(Distribution)证书和描述文件

发布(Production)证书用于正式发布环境下使用,用于提交到Appstore审核发布。

申请发布(Production)证书

在“Certificates, Identifiers & Profiles”页面“Certificates"Production",可查看到已申请的所有发布(Production)证书,点击右上角的加号可创建新证书:

打开“Add iOS Certificate”页面,在“Production”栏下选中“App Store and Ad Hoc”:

在页面底部选择“Continue”:

打开确认证书请求页面,点击“Continue”继续:

打开证书生成页面,先点击“Choose File...”选择“生成证书请求文件”章节生成的“CertificateSigningRequest.certSigningRequest”文件,再点击“Generate”生成cer证书:

生成证书成功后打开证书下载页面,选择“Download”下载保存证书(ios_production.cer):

双击保存到本地的ios_production.cer文件导入到“Keychain Access”:

导入成功后,可以在证书列表中显示:

选中导入的证书,右键选择“Export "Developer" ...”:

打开证书保存页面,输入文件名、选择路径后点击“Save”:

打开设置证书密码页面,输入密码及确认密码后点击“OK”:

打开访问“Keychain Access”密码页面,输入Mac OS管理员密码,点击“Allow”,保存开发(Production)证书(如“HBuilderCert.p12”)。

申请发布(Distribution)描述文件

在“Certificates, Identifiers & Profiles”页面“Provisioning Profiles”下选择“Distribution",可查看到已申请的所有发布(Distribution)描述文件,点击右上角的加号可创建新描述文件:

打开“Add iOS Provisioning Profile”页面,在“Development”栏下选中“iOS App Development”:

点击“Continue”按钮,打开“App ID”选择页面,选择要使用的“App ID”(如之前创建的“io.dcloud.HBuildApp”),点击“Continue”:

打开“Select certificates”页面,选择前面创建的发布证书:

点击“Continue”,输入描述文件的名称(如“HBuilderProfileDistribution”):

点击“Generage”,生成描述文件成功:

点击“Download”下载保存开发描述文件(如HBuilderProfileDistribution.mobileprovision)。

为什么要导出.p12文件

当我们用大于三个mac设备开发应用时,想要申请新的证书,如果在我们的证书里,包含了3个发布证书,2个开发证书,可以发现再也申请不了开发证书和发布证书了(一般在我们的证书界面中应该只有一个开发证书,一个发布证书,没必要生成那么多的证书,证书一般在过期之后才会重新添加。)

如图:

这时候,再点击“+”时,就会发现点击不了开发和发布证书,也就是添加不了开发证书和发布证书了:

有两个解决不能添加证书的办法

第一种方法——“revoke”(不推荐):

将以前的证书“revoke”掉,如图:

然后重新生成一个新的证书。

这种方法是可以的,但是会造成相应的Provisioning Profiles失效,这个可大可小。如果只有你一个人则问题不大,如果是一个团队大家都在用,你把这个证书删除了,会导致别人的描述文件失效,这意味着别人不能发布应用了(还可以开发),这可是大问题,所以不提倡这种做法。

第二种方法——“.p12”(推荐):

我们的每一个证书都可以生成一个.p12文件,这个文件是一个加密的文件,只要知道其密码,就可以供给所有的mac设备使用,使设备不需要在苹果开发者网站重新申请开发和发布证书,就能使用。

注意:一般.p12文件是给与别人使用的,本机必须已经有一个带秘钥的证书才可以生成.p12文件,如图:

在别人的电脑上要成功安装,须具备两个文件:

  • 该证书导出的“.p12”文件。

  • 苹果开发者中的与“证书”对应的“描述文件”

如果需要用于开发的,那么需要这两个文件:

.p12文件本身就是一个加密的证书,所以用这两个文件就可以让其他mac设备使用了:

拿到这两个文件后,依次双击“证书”,“.p12“文件(需要输入密码,密码就是当时生成.p12时设定的密码,),作用是加入钥匙串中,使我们的电脑具备开发的证明,”描述文件“(作用是置于xcode中,让xcode知道我们开发的合法性),添加完后就可以使用了。

iOS证书和描述文件的更多相关文章

  1. iOS证书和描述文件的配置

    1.登录Apple开发者账号,进入Apple Developer主页,点击Account 2.点击Certificates,ID&Profiles 3.生成CRS文件 1.打开mac上的钥匙串 ...

  2. iOS开发:创建真机调试证书及描述文件

    iOS开发:创建真机调试证书及描述文件 关于苹果iOS开发,笔者也是从小白过来的,经历过各种困难和坑,其中就有关于开发证书,生产证书,in_house证书,add_Hoc证书申请过程中的问题,以及上架 ...

  3. 【转】ios开发证书,描述文件,bundle ID的关系

    ios开发证书,描述文件,bundle ID的关系   苹果为了控制应用的开发与发布流程,制定了一套非常复杂的机制.这里面的关键词有:个人开发者账号,企业开发者账号,bundle ID,开发证书,发布 ...

  4. 阐明iOS证书和provision文件

    译:阐明iOS证书和provision文件 许多iOS开发人员都会和你说在iOS开发很困惑的问题之一,将app真正运行在真实的设备(iPhone iPad而不是模拟器),因为所有的这些都会涉及从苹果获 ...

  5. ios开发证书,描述文件,bundle ID的关系

    苹果为了控制应用的开发与发布流程,制定了一套非常复杂的机制.这里面的关键词有:个人开发者账号,企业开发者账号,bundle ID,开发证书,发布证书(又叫"生产证书"),开发描述文 ...

  6. [iOS]开发者证书和描述文件的作用

    先说下证书吧. 然后是描述文件

  7. 6、申请发布(Distribution)证书和描述文件

    发布(Production)证书用于正式发布环境下使用,用于提交到Appstore审核发布. 申请发布(Production)证书 在“Certificates, Identifiers & ...

  8. 4、申请开发(Development)证书和描述文件

    开发(Development)证书用于测试环境下使用,可以直接安装到手机上(不用提交到Appstore),但一个描述文件最多只能绑定100台设备(因此通过这种证书正式发布应用是行不通的). 申请开发( ...

  9. Windows/Linux 生成iOS证书及p12文件

    操作步骤 生成csr文件(通过OpenSSL命令) 生成mobileprovision文件(通过Apple开发者后台) 生成cer文件(通过Apple开发者后台) 生成P12文件(通过OpenSSL命 ...

随机推荐

  1. jQuery-easyui实现关闭全部tabs

    有时候当我们打开很多tabs选项卡时,要关闭它只能一个一个的进行关闭,显然太麻烦,这时可以在选项卡的最右边添加一个按钮 实现关闭全部. function openTab(text, url, icon ...

  2. java获取类的信息

    关键技术剖析 1.java.lang.reflect包实现了java的反射机制,在使用反射机制时,需要导入该包. 2.Class类的forName方法能够根据类名加载类,获得类的Class对象. Cl ...

  3. WebStorm按Tab建快速生成代码模块

    WS中,比如调试每次都要写的console.log(xxx);每次都要敲一遍,还有if模块,for循环模块,难道没有快捷键,可以生成代码模块吗,答案是“有”. 操作步骤如下(汉化版WS): 1.Alt ...

  4. OO中,先有对象还是先有类?

    就是问,在面向对象思想里,先有对象还是先有类,乍一看和先有鸡蛋还是先有鸡是一类问题,其实不然!这个问题,在lz考研复试的时候被面试官问过,一模一样,如今又在一个笔试题里看到了类似的题目,眨一下,有人会 ...

  5. 11.Configure Many-to-Many(配置多对多关系)【Code-First系列】

    现在学习EF Code-First多对多的配置. 这里我们举例:学生和班级实体,一个学生可以选修多个课程,多个学生也可以选修同一个课程. 一.使用数据注解特性,配置多对多的关系 using Syste ...

  6. 在c#中get同步访问http

    参照文章:http://blog.csdn.net/qianmenfei/article/details/37974767 public static string SendMessage(strin ...

  7. 改进uwsgi启动脚本,使其支持多个独立配置文件

    最近在研究flask,在架设运行环境的时候犯了难.因为我想把每个独立的应用像NGINX处理多个网站那样,每个应用单独一个配置文件.而网上流传的uwsgi启动脚本都只支持单个配置文件.虽然有文章说可以把 ...

  8. 关于项目中值对象Identifier的设计-领域驱动

    到现在为止做了不项目,发现每个实体都会有个相应的值对象. 先简单说一下值对象和实体之间的区别: (以下内容来着<领域驱动设计>一书) 当一个小孩画画的时候,他注意的是画笔的颜色和笔尖的粗细 ...

  9. EC笔记,第二部分:10.让=返回指向*this的引用

    Effective C++ 学习笔记 10 让=返回指向*this的引用 Table of Contents 1. 原因 2. 建议:在没有充分理由标新立异前,最好的做法是遵从传统. –by SkyF ...

  10. 在Python应用中使用MongoDB

    Python是开发社区中用于许多不同类型应用的强大编程语言.很多人都知道它是可以处理几乎任何任务的灵活语言.因此,在Python应用中需要一个什么样的与语言本身一样灵活的数据库呢?那就是NoSQL,比 ...