吴顺财 發表於 2022-12-1 09:59:00

iOS开发证书、bundle ID、App ID、描述文件、p12文件,及企业证书打包发布详述

<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="boe86-0-0">&nbsp;</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="72f03-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="72f03-0-0"><span data-offset-key="72f03-0-0">引言</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="12lrj-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="12lrj-0-0"><span data-offset-key="12lrj-0-0"> 此操作手册用于提供客户进行企业发布299美金的账户发布非AppStore的app程序的CSR证书,distribution证书以及p12证书导出用。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="98ik3-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="98ik3-0-0"><span data-offset-key="98ik3-0-0">2 .iOS开发证书,描述文件,bundle ID的关系</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="5d9n5-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="5d9n5-0-0"><span data-offset-key="5d9n5-0-0">苹果为了控制应用的开发与发布流程,制定了一套非常复杂的机制。这里面的关键词有:个人开发者账号,企业开发者账号,bundle ID,开发证书,发布证书(又叫“生产证书”),开发描述文件,发布描述文件,推送证书等...。初级开发者很难理解这中间的关系和作用。下文就对上述列出的关键内容和它们的关系做个详细介绍。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="e9e44-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="e9e44-0-0"><span data-offset-key="e9e44-0-0">开发者账号</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="49rqb-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="49rqb-0-0"><span data-offset-key="49rqb-0-0">开发者账号其实就是apple id,只不过要成为开发者,需要去苹果开发者中心激活开发权限。激活开发者账号分为三种,个人,公司和企业。这三种账号各自有些区别,所以如果应用需要上appstroe,就要创建个人或者公司类型的账号;</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="8pd90-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="8pd90-0-0"><span data-offset-key="8pd90-0-0">如果只想内部发布,就可以申请企业账号;</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="2gms9-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="2gms9-0-0"><span data-offset-key="2gms9-0-0">个人账号和公司账号的区别就是公司账号能邀请多个账号,他们可以和你共享资源协同开发此应用,而不需要总是问你要你的账号使用。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="86bia-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="86bia-0-0"><span data-offset-key="86bia-0-0">bundle ID</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="5r0pd-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="5r0pd-0-0"><span data-offset-key="5r0pd-0-0">bundle ID可以翻译成包ID,也可以叫APP ID 或应用ID,它是每一个ios应用的全球唯一标识。无论代码怎么改,图标和应用名称怎么换,只要bundle id没变,ios系统就认为这是同一个应用。每开发一个新应用,首先都需要到member center-&gt;identifier-&gt;APP IDS去创建一个bundle id。但是bundle id分为两种:</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="2i0sv-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="2i0sv-0-0"><span data-offset-key="2i0sv-0-0">Explicit App ID(明确的APP ID),一般格式是:com.domainname.appname。这种id只能用在一个app上。每一个新应用都要创建一个。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="c5oa5-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="c5oa5-0-0"><span data-offset-key="c5oa5-0-0">Wildcard App ID(通配符APP ID), 一般格式是:com.domainname.*。这种id可以用在多个应用上,虽然方便,但是使用这种id的应用不能使用通知功能,所以并不常用。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="4crud-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="4crud-0-0"><span data-offset-key="4crud-0-0">iOS Certificates(证书)</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="dnka4-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="dnka4-0-0"><span data-offset-key="dnka4-0-0">ios certificates就是证书。它的作用就是证明你的mac具有开发或发布某个开发者账号下应用的权限。而且证书还分成两种,一种是开发证书(Development certificate); 另一种是发布证书或叫生产证书(Production certificate)。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="bat20-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="bat20-0-0"><span data-offset-key="bat20-0-0">1 .development certificate</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="7u3cm-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="7u3cm-0-0"><span data-offset-key="7u3cm-0-0">开发证书是证明你的mac具有开发和真机调试你的程序的东西。但是每个证书关联着一个开发者账号,也就是说,你只能使用这个证书开发这个账号底下的应用,它是通过bundle id来知道该应用是不是属于自己的账号。所以每次为一个开发者帐号开发应用,就得需要这个账号创建的开发证书。</span></div>
</div>
<div class="Image-captionContainer" data-size="normal">
<div class="Image-resizerContainer css-ym3v7r" data-size="normal">
<div class="ImageDelete-Container css-xi606m">
<div class="ImageDelete-Wrapper css-1gomreu"><img class="Image FocusPlugin--unfocused Image--isBlock lazyload" data-size="normal" data-rawwidth="1888" data-rawheight="717" data-watermark="watermark" data-original-src="https://picx.zhimg.com/v2-b42cc1339c3d7864df7c617f53ccc1a4.png" data-watermark-src="https://pica.zhimg.com/v2-235644d716c2375be0d3afc9c28cdc8c.png" data-src="https://pica.zhimg.com/80/v2-b42cc1339c3d7864df7c617f53ccc1a4_720w.png">
<div class="css-s0x03z">&nbsp;</div>
</div>
</div>
</div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="4rvte-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="4rvte-0-0"><span data-offset-key="4rvte-0-0">2 .Production certificate</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="328vm-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="328vm-0-0"><span data-offset-key="328vm-0-0">生产证书是证明你的mac是否具有发布应用的权限。在archive到appstore的时候,必须有生产证书,否则时上传不成功的。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="3p1su-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="3p1su-0-0"><span data-offset-key="3p1su-0-0">3.根证书</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="fjno5-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="fjno5-0-0"><span data-offset-key="fjno5-0-0">无论是开发证书还是生产证书,都必须从根证书上派生。根证书就是根mac产生的证书,menber center上保存的那个证书就是根证书,它只能安装在创建它的那台mac上,其他的开发mac必须从那台根mac上导出证书使用。也就是所有的子证书都只能从根证书派生而来。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="fls5k-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="fls5k-0-0"><span data-offset-key="fls5k-0-0">iOS Provisioning Profiles(描述文件)</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="ams0f-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="ams0f-0-0"><span data-offset-key="ams0f-0-0">描述文件它用来标识某个设备是否具有安装某个应用的权限。描述文件分为开发描述文件和发布描述文件。其中发布描述文件又分为临时发布描述文件和正式发布描述文件。</span></div>
</div>
<ol class="public-DraftStyleDefault-ol" data-offset-key="9ph8h-0-0">
<li class="Editable-styled public-DraftStyleDefault-orderedListItem public-DraftStyleDefault-reset public-DraftStyleDefault-depth0 public-DraftStyleDefault-listLTR" data-block="true" data-editor="41c4d" data-offset-key="9ph8h-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="9ph8h-0-0"><span data-offset-key="9ph8h-0-0">开发描述文件(develop provisioning profile) 开发描述文件,创建它需要bundle ID + 开发证书 + 测试设备(在devices中添加); 编译的时候必须三者对应,否则编译器会报错。</span></div>
</li>
<li class="Editable-styled public-DraftStyleDefault-orderedListItem public-DraftStyleDefault-depth0 public-DraftStyleDefault-listLTR" data-block="true" data-editor="41c4d" data-offset-key="drr6n-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="drr6n-0-0"><span data-offset-key="drr6n-0-0">临时发布描述文件(distribution ad hoc) 临时发布描述文件是用来在有限设备上发布的。创建它需要bundle ID +发布证书+发布设备,编译时也必须三者对应。</span></div>
</li>
<li class="Editable-styled public-DraftStyleDefault-orderedListItem public-DraftStyleDefault-depth0 public-DraftStyleDefault-listLTR" data-block="true" data-editor="41c4d" data-offset-key="a5h2n-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="a5h2n-0-0"><span data-offset-key="a5h2n-0-0">正式发布描述文件(distribution appstore/distribution ad house)</span></div>
</li>
</ol>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="c1ubt-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="c1ubt-0-0"><span data-offset-key="c1ubt-0-0">个人账号和企业账号创建的正式发布描述文件是不同的。因为个人账号是在appstrore上发布,所以创建的是distribution appstore描述文件,而企业账号只能内部发布,所以创建的叫distribution ad house描述文件。但是它们创建所需要的东西都是一样的:bundle ID + 发布证书。 因为他们是在不确定的设备上安装的,所以不需要选择设备。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="5lqv2-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="5lqv2-0-0"><span data-offset-key="5lqv2-0-0">2. Apple开发账号添加团队成员</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="1btsh-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="1btsh-0-0"><span data-offset-key="1btsh-0-0">申请了一个公司或企业级的苹果开发者账号,可以添加团队成员协同开发。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="ftn15-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="ftn15-0-0"><span data-offset-key="ftn15-0-0">团队成员有三种角色,分别是 Agent (代理), Admin (管理),Member (成员)。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="d3vi2-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="d3vi2-0-0"><span data-offset-key="d3vi2-0-0">代理: 就是注册开发者账号的那一个,权限最高,续费和创建开发商证书只能使用该账号;</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="2ti16-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="2ti16-0-0"><span data-offset-key="2ti16-0-0">管理: 管理分发证书、管理测试设备、管理应用配置等等;</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="3rpjj-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="3rpjj-0-0"><span data-offset-key="3rpjj-0-0">成员: 没有管理权限,只能下载和请求数据。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="8jt3b-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="8jt3b-0-0"><span data-offset-key="8jt3b-0-0">关于团队成员的详细介绍,可见:官方文档</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="8f2vm-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="8f2vm-0-0"><span data-offset-key="8f2vm-0-0">去开发者中心登录开发者账号,可以看到开发者信息。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="31dbk-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="31dbk-0-0"><span data-offset-key="31dbk-0-0">开发证书,生产证书,描述文件,AppID关系及生成。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="6skmf-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="6skmf-0-0"><span data-offset-key="6skmf-0-0">首先要申请证书,申请苹果开发者账号教程,还没有的话申请一个或者借用、这里不再详叙。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="1284s-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="1284s-0-0"><span data-offset-key="1284s-0-0">登录开发者中心,如果还没申请证书,界面如下:</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="fkhe5-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="fkhe5-0-0"><span data-offset-key="fkhe5-0-0">转存失败重新上传取消</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="5l6hj-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="5l6hj-0-0"><span data-offset-key="5l6hj-0-0">如果有证书登录界面如下:</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="f484i-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="f484i-0-0"><span data-offset-key="f484i-0-0">有账号后就可以正式开发上架了,具体流程如下:</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="4hi95-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="4hi95-0-0"><span data-offset-key="4hi95-0-0">1 .生成开发和发布证书</span></div>
</div>
<ol class="public-DraftStyleDefault-ol" data-offset-key="fbnpa-0-0">
<li class="Editable-styled public-DraftStyleDefault-orderedListItem public-DraftStyleDefault-reset public-DraftStyleDefault-depth0 public-DraftStyleDefault-listLTR" data-block="true" data-editor="41c4d" data-offset-key="fbnpa-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="fbnpa-0-0"><span data-offset-key="fbnpa-0-0">.通过钥匙串获取证书请求文件Certificate Signing Request (CSR)文件。 选择“钥匙串访问”-“证书助理”-“从证书颁发机构请求证书…”,如下图: 填写邮件地址和常用名称,选择“存储到磁盘”,会生成一个CSR文件到本地磁盘。</span></div>
</li>
<li class="Editable-styled public-DraftStyleDefault-orderedListItem public-DraftStyleDefault-depth0 public-DraftStyleDefault-listLTR" data-block="true" data-editor="41c4d" data-offset-key="8eqmu-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="8eqmu-0-0"><span data-offset-key="8eqmu-0-0">. 登录开发者中心,选择Certificates, Indentifiers &amp; Profiles可以获取开发和发布证书。 Certificates -&gt; All -&gt; + 选择In-House and Ad Hoc是发布证书,选择iOS App Development是打包证书。下面选择发布证书 Choose File选择生成的的CSR文件,点击generate生成cer证书。 可以看见生成的开发和生产证书如下: 选择Download下载到本地,然后双击或拖拽到钥匙串中安装 安装后的开发和发布证书.png 破解xcode3、4方法,免证书开发ios程序,省99美金 application/x-rar 2 . 生成App ID。 选择Identfiers -&gt; App IDs -&gt; + Name 可以随便填,但不能是中文和特殊符号,主要起描述作用。 Bundle ID就是App的Bundle ID完全一样,全球唯一,一般格式是:com.domainname.appname。 还可以选择NFC,推送等功能,选中Continue -&gt; Register -&gt; Done ;就完成了App ID 的注册。</span></div>
</li>
<li class="Editable-styled public-DraftStyleDefault-orderedListItem public-DraftStyleDefault-depth0 public-DraftStyleDefault-listLTR" data-block="true" data-editor="41c4d" data-offset-key="ehvdt-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="ehvdt-0-0"><span data-offset-key="ehvdt-0-0">生成描述文件Provisioning Profile(企业版不需要device即iPhone的UDID,因此跳过)。</span></div>
</li>
</ol>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="8qc0h-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="8qc0h-0-0"><span data-offset-key="8qc0h-0-0">选择Provisioning Profile-&gt;All -&gt; +:</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="578hu-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="578hu-0-0"><span data-offset-key="578hu-0-0"> 转存失败重新上传取消 点击加号生产描述文件.png</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="dh9u4-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="dh9u4-0-0"><span data-offset-key="dh9u4-0-0">iOS App Development是开发证书的描述文件,n House是企业发布证书的描述文件。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="bqutk-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="bqutk-0-0"><span data-offset-key="bqutk-0-0">选择要生成的描述文件的类型.png</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="8722j-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="8722j-0-0"><span data-offset-key="8722j-0-0">选择刚刚生产的App ID,点击Continue。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="5r4em-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="5r4em-0-0"><span data-offset-key="5r4em-0-0">选择刚刚生产的开发或发布证书:</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="2oj1b-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="2oj1b-0-0"><span data-offset-key="2oj1b-0-0">填写描述文件名称,可以随便填,便于自己理解就好。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="3lsmu-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="3lsmu-0-0"><span data-offset-key="3lsmu-0-0">可以下载描述文件双击安装,也可以去项目中Xcode的偏好设置去下载安装:</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="dli9n-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="dli9n-0-0"><span data-offset-key="dli9n-0-0">现在应用程序就可以打包上线啦!</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="cfcb4-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="cfcb4-0-0"><span data-offset-key="cfcb4-0-0">4.证书导出p12文件</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="dm1qj-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="dm1qj-0-0"><span data-offset-key="dm1qj-0-0">为什么要导出.p12文件?</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="enc0b-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="enc0b-0-0"><span data-offset-key="enc0b-0-0">当我们用大于三个mac设备开发应用时,想要申请新的证书,如果在我们的证书里,包含了3个发布证书,6个开发证书,可以发现再也申请不了开发证书和发布证书了。(一般在我们的证书界面中应该只有一个开发证书,一个发布证书,没必要生成那么多的证书,证书一般在过期之后才会重新添加。)会提示超过了最大数量,并且不能选择生产证书了。如下图:</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="b6eft-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="b6eft-0-0"><span data-offset-key="b6eft-0-0">转存失败重新上传取消 不能添加证书的解决办法。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="4oqea-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="4oqea-0-0"><span data-offset-key="4oqea-0-0">1 .撤销(Revoke)已经生成的证书(不建议使用),然后重新生成一个新的证书。如下图:</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="7qu9p-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="7qu9p-0-0"><span data-offset-key="7qu9p-0-0">注意:这种方法是可以的,但是会造成相应的Provisioning Profiles失效,这是小问题。但是又要重新申请证书甚至描述文件很浪费时间,所以不提倡这种做法。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="bf0k3-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="bf0k3-0-0"><span data-offset-key="bf0k3-0-0">2 . 导出.p12文件</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="el960-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="el960-0-0"><span data-offset-key="el960-0-0">每一个证书都可以生成一个.p12文件,这个文件是一个加密的文件,只要知道其密码,就可以供给所有的mac设备使用,使设备不需要在苹果开发者网站重新申请开发和发布证书,就能使用。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="fp9vr-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="fp9vr-0-0"><span data-offset-key="fp9vr-0-0">注意:一般.p12文件是给与别人使用的,本机必须已经有一个带秘钥的证书才可以生成.p12文件</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="c4is9-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="c4is9-0-0"><span data-offset-key="c4is9-0-0">打开钥匙串-&gt;我的证书,选择要导出的证书,右键选择导出“....”证书。如下图:</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="4qvmo-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="4qvmo-0-0"><span data-offset-key="4qvmo-0-0">填写要导出证书名称,保存的地址路径,文件类型选择为个人信息交换(.p12)</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="41c4d" data-offset-key="c3afg-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="c3afg-0-0"><span data-offset-key="c3afg-0-0">生成的p12文件,将p12文件,密码,和描述文件发给别人就可正常开发啦。</span></div>
</div><br><br>
来源:https://www.cnblogs.com/xnyzie/p/16940547.html
頁: [1]
查看完整版本: iOS开发证书、bundle ID、App ID、描述文件、p12文件,及企业证书打包发布详述