谦逊的骄傲 發表於 2022-9-1 16:16:00

iOS开发之进阶篇(1)—— 证书、打包上架流程、p12文件

<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="fieud-0-0">&nbsp;</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="bhlhs-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="bhlhs-0-0"><span data-offset-key="bhlhs-0-0">iOS开发相关的证书有很多种,iOS开发证书(iOS App Development)、iOS发布证书(iOS Distribution (App Store and Ad Hoc))、网站推送ID证书(Website Push ID Certificate)、Apple Pay付款处理证书(Apple Pay Payment Processing Certificate)等等。Xcode 11以后,又新增了Apple Development和Apple Distribution,前者是iOS/macOS/tvOS/watchOS各平台开发证书的结合,后者是这些平台的发布证书结合。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="29emh-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="29emh-0-0"><span data-offset-key="29emh-0-0">种类繁多,我们挑选一般的App从开发到上架App Store所必备的证书。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="9qsq7-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="9qsq7-0-0"><span data-offset-key="9qsq7-0-0">以Xcode 11版本以后的开发环境为例,其实只要具备两个证书就够了:苹果开发证书(Apple Development)、苹果发布证书(Apple Distribution)。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="1mnu7-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="1mnu7-0-0"><span data-offset-key="1mnu7-0-0">Apple Development</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="4f5df-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="4f5df-0-0"><span data-offset-key="4f5df-0-0">苹果开发证书,包括 iOS / macOS / tvOS / watchOS 各平台的开发证书。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="2i9fu-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="2i9fu-0-0"><span data-offset-key="2i9fu-0-0">当我们进行真机调试的时候,就需要安装这个证书。证书是安装在Mac电脑的“钥匙串访问”里面的,只要安装一次即可,并不是每创建一个工程就都要安装一次证书。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="8pai3-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="8pai3-0-0"><span data-offset-key="8pai3-0-0">要进行真机调试,我们一般需要以下步骤:</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="cij28-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="cij28-0-0"><span data-offset-key="cij28-0-0">生成证书申请文件</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="ctcil-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="ctcil-0-0"><span data-offset-key="ctcil-0-0">打开Mac的钥匙串访问App</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="cl82f-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="cl82f-0-0"><span data-offset-key="cl82f-0-0">证书助理=》从证书颁发机构请求证书</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="fjleh-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="fjleh-0-0"><span data-offset-key="fjleh-0-0">填写相关信息</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="8fms-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="8fms-0-0"><span data-offset-key="8fms-0-0">选择存储到本地(比如桌面),因为我们后面生成证书的时候会用到这个文件。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="dr9t2-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="dr9t2-0-0"><span data-offset-key="dr9t2-0-0">生成开发证书</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="7v1qp-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="7v1qp-0-0"><span data-offset-key="7v1qp-0-0">登录Apple developer, 选择证书,添加之。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="i98r-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="i98r-0-0"><span data-offset-key="i98r-0-0">选择App Developer,continue</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="2ihfi-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="2ihfi-0-0"><span data-offset-key="2ihfi-0-0">然后点击Choose File,上传我们刚才生成的申请文件(.certSigningRequest)。continue</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="ct7o9-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="ct7o9-0-0"><span data-offset-key="ct7o9-0-0">直至生成了开发证书显式于列表中(不同电脑会生成不同的开发证书):</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="44j1t-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="44j1t-0-0"><span data-offset-key="44j1t-0-0">安装开发证书</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="2otsb-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="2otsb-0-0"><span data-offset-key="2otsb-0-0">点击你刚生成的证书,下载之。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="evqnr-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="evqnr-0-0"><span data-offset-key="evqnr-0-0">双击安装之。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="874n0-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="874n0-0-0"><span data-offset-key="874n0-0-0">然后我们就可以在钥匙串访问的App里面的我的证书里看到安装成功了</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="dcv4t-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="dcv4t-0-0"><span data-offset-key="dcv4t-0-0">愉快地进行真机开发调试</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="27m28-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="27m28-0-0"><span data-offset-key="27m28-0-0">Apple Distribution</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="1kmcp-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="1kmcp-0-0"><span data-offset-key="1kmcp-0-0">苹果发布(分布)证书,包括 iOS / macOS / tvOS / watchOS 各平台的发布证书,可用于发布商店版(App Store) 和 内测版(Ad Hoc)。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="43b5a-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="43b5a-0-0"><span data-offset-key="43b5a-0-0">发布App,一般需要以下步骤:</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="f53nb-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="f53nb-0-0"><span data-offset-key="f53nb-0-0">生成证书申请文件,这个申请文件在前面的开发证书已经生成了,可以继续使用。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="ahm4k-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="ahm4k-0-0"><span data-offset-key="ahm4k-0-0">生成发布证书</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="7ue90-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="7ue90-0-0"><span data-offset-key="7ue90-0-0">同样,登录Apple developer,新建一个证书,然后选择Apple Distribution。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="7tftm-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="7tftm-0-0"><span data-offset-key="7tftm-0-0">一个账号最多只能生成三个发布证书,我这个账号已经申请满了,所以是灰色不可选。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="16kkg-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="16kkg-0-0"><span data-offset-key="16kkg-0-0">上传的时候选择一个发布证书就行了,证书有效期是一年,到期后App Store上的现有App将不受影响。但是,不能使用过期或已撤销证书来更新App,可生成新的证书继续更新App。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="550to-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="550to-0-0"><span data-offset-key="550to-0-0">后面和申请开发证书一样,Choose File上传申请文件然后下一步直至生成发布证书:</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="fuhtp-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="fuhtp-0-0"><span data-offset-key="fuhtp-0-0">3. 安装发布证书</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="fop8e-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="fop8e-0-0"><span data-offset-key="fop8e-0-0">下载之。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="ag2n3-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="ag2n3-0-0"><span data-offset-key="ag2n3-0-0">钥匙串访问里查看:</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="ad0pd-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="ad0pd-0-0"><span data-offset-key="ad0pd-0-0">4. 愉快地发布App</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="77cj4-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="77cj4-0-0"><span data-offset-key="77cj4-0-0">App打包上架流程</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="bjj4e-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="bjj4e-0-0"><span data-offset-key="bjj4e-0-0">App Store部分</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="dloqi-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="dloqi-0-0"><span data-offset-key="dloqi-0-0">php 从数据库提取二进制图片的处理代码</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="f9vf1-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="f9vf1-0-0"><span data-offset-key="f9vf1-0-0">pdf</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="s4e6-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="s4e6-0-0"><span data-offset-key="s4e6-0-0">0星</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="d9soa-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="d9soa-0-0"><span data-offset-key="d9soa-0-0">超过10%的资源</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="cfpl4-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="cfpl4-0-0"><span data-offset-key="cfpl4-0-0">28KB</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="8v4ih-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="8v4ih-0-0"><span data-offset-key="8v4ih-0-0">下载</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="49tde-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="49tde-0-0"><span data-offset-key="49tde-0-0">因为我们要上传安装包到App Store,所以得先App Store Connect里面创建一个App,而创建App是基于套装ID来创建的。所以我们第一步是创建套装ID。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="cfoo6-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="cfoo6-0-0"><span data-offset-key="cfoo6-0-0">创建套装ID</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="a6024-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="a6024-0-0"><span data-offset-key="a6024-0-0">进入开发者网站里的证书设置</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="9nrk9-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="9nrk9-0-0"><span data-offset-key="9nrk9-0-0">创建App ID</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="ac55f-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="ac55f-0-0"><span data-offset-key="ac55f-0-0">填写信息,Bundle ID与工程中的Bundle Identifier一致。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="bqk7f-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="bqk7f-0-0"><span data-offset-key="bqk7f-0-0">创建成功如下:</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="entsl-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="entsl-0-0"><span data-offset-key="entsl-0-0">接着,创建描述文件Profiles,此描述文件即对应App Store Connect里的套装ID。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="47bke-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="47bke-0-0"><span data-offset-key="47bke-0-0">选择App ID,选择发布证书等等创建好。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="av3n4-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="av3n4-0-0"><span data-offset-key="av3n4-0-0">然后到App Store Connect里创建App</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="48a3j-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="48a3j-0-0"><span data-offset-key="48a3j-0-0">填写信息</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="77dcf-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="77dcf-0-0"><span data-offset-key="77dcf-0-0">套装ID选择刚才在证书配置里面创建好的App。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="2ijfo-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="2ijfo-0-0"><span data-offset-key="2ijfo-0-0">至此创建App完毕。接下来在Xcode打包上传。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="8lvs9-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="8lvs9-0-0"><span data-offset-key="8lvs9-0-0">Xcode部分</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="e1104-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="e1104-0-0"><span data-offset-key="e1104-0-0">首先我们看看TARGETS的Architecture配置</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="drg27-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="drg27-0-0"><span data-offset-key="drg27-0-0">在Build Active Architecture Only选项里,Debug选择Yes表示调试的时候只编译生成当前机型对应的架构,这样使得编译调试的时候更快;Release选择No表示发布时编译Valid Architectures中的所有架构,如果不编译某个架构,那么这个架构对应的机型将无法安装这个安装包。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="ams0h-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="ams0h-0-0"><span data-offset-key="ams0h-0-0">各机型的处理器对应架构</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="4ok8g-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="4ok8g-0-0"><span data-offset-key="4ok8g-0-0">模拟器32位处理器 – i386</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="4f6mn-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="4f6mn-0-0"><span data-offset-key="4f6mn-0-0">模拟器64位处理器 – x86_64</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="6cqlg-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="6cqlg-0-0"><span data-offset-key="6cqlg-0-0">真机32位处理器 – armv7、armv7s(armv7兼容armv7s)</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="26md8-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="26md8-0-0"><span data-offset-key="26md8-0-0">真机64位处理器 – arm64架构</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="bm4hh-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="bm4hh-0-0"><span data-offset-key="bm4hh-0-0">具体机型对比</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="kg7k-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="kg7k-0-0"><span data-offset-key="kg7k-0-0">armv6: iPhone、iPhone 2、iPhone 3G、iPod Touch(第一代)、iPod Touch(第二代)</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="aesi1-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="aesi1-0-0"><span data-offset-key="aesi1-0-0">armv7: iPhone 3Gs、iPhone 4、iPhone 4s、iPad、iPad 2</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="85rae-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="85rae-0-0"><span data-offset-key="85rae-0-0">armv7s: iPhone 5、iPhone 5c (armv7兼容armv7s)</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="4gcu8-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="4gcu8-0-0"><span data-offset-key="4gcu8-0-0">arm64(无armv64): iPhone 5s之后机型</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="e0vks-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="e0vks-0-0"><span data-offset-key="e0vks-0-0">现在来说,我们只需要支持armv7和arm64这两个架构就可以了。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="6icot-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="6icot-0-0"><span data-offset-key="6icot-0-0">这里顺便提一下,如果我们使用的第三方库不支持某些框架的话,那么我们是无法使用到所缺失框架对应的机型上的。比如说,我们某些库不支持 i386/x86_64 框架,那么我们将无法使用模拟器来运行代码。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="djrau-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="djrau-0-0"><span data-offset-key="djrau-0-0">接着我们的打包上架流程。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="d5ht8-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="d5ht8-0-0"><span data-offset-key="d5ht8-0-0">图太多了,就挑几个主要流程吧。。。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="cgaiv-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="cgaiv-0-0"><span data-offset-key="cgaiv-0-0">至于App信息填写审核等步骤这里就不讨论了。。。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="ceutf-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="ceutf-0-0"><span data-offset-key="ceutf-0-0">.p12文件</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="5gloi-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="5gloi-0-0"><span data-offset-key="5gloi-0-0">前面说过发布证书一个开发者账号最多只能创建三个。而且这个证书是和电脑绑定的,也就是说,A电脑创建的证书不能用在B电脑上。那么问题来了,从A电脑拷贝一个工程到B电脑,B电脑倒是可以自己创建开发证书来调试这个工程,可如果发布证书满了不能再创建,这时候就发布不了了。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="q885-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="q885-0-0"><span data-offset-key="q885-0-0">如果想在B电脑上也能发布App,那么就需要从A电脑导出发布证书(里面含有私钥):</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="8n8e3-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="8n8e3-0-0"><span data-offset-key="8n8e3-0-0">起名,加密等</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="9d7fe" data-offset-key="bomia-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="bomia-0-0"><span data-offset-key="bomia-0-0">导出的文件即为p12后缀的文件,然后放到B电脑中安装,即可在钥匙串中生成发布证书(包含私钥),就可以用于发布App了。</span></div>
</div><br><br>
来源:https://www.cnblogs.com/gddg/p/16646931.html
頁: [1]
查看完整版本: iOS开发之进阶篇(1)—— 证书、打包上架流程、p12文件