史上最用心的iOS App上架流程【转】

转:http://www.jianshu.com/p/16fa56eacb5e

题记

麻痹起来嗨!看网上那么多的教程,依然在我心爱的爱屁屁在上架的时候遇到各类 J8 问题,最大的问题就是:Xcode 证书什么的,Provisioning Profile 什么的,Debug 什么的,Production 和Distribution 什么乱 78 糟的都把我搞糊涂了,网上不少教程都是好旧的(虽然思路同样,可是不够详细),因此我打算把我今年已经上架的干货儿(下载地址介绍地址)的上架艰辛历程写下来,一是可让本身之后上架 app 时能够减小一点儿弯路,二是能够给你们一个参考。网络

上架前预热

先登录本身的开发者帐号(本身提早注册好 iOS 开发者帐号,这里假设你已经拥有了一个 iOS 开发者帐号),进入这个页面:
https://developer.apple.com/account/overview.actionapp


 

因为我提交上架的是iOS Apps,所以进入最左边这一栏:测试


 

一开始,看着这几个“Certificates、Identifiers、Devices、Provisioning Profiles”,感受没什么的,可是到实际用起来,特么的我就蒙圈了。下面解释一下这几个究竟是什么鬼,揭开它们的庐山真面目。3d

  • Certificates: 证书,经常使用的证书类型有4种:真机调试证书、推送调试证书,发布证书、推送生产证书。调试

  • Identifiers: App ID,跟项目工程的 Bundle Identifier(就是下图红箭头指向的<font color="red">me.angelen.Ganker</font>)匹配,以下图所示:code


     
  • 须要支持推送、Game Center 等功能的 App ID 不能包含通配符* (下图就是在新建App ID时,选择App ID的后缀)。blog


     
  • Devices: iOS设备在真机调试、AdHoc发布时都须要包含设备的UDID才能够安装。教程

  • Provisioning Profiles: 配置文件(描述文件),不一样类型的开发者帐号都包含 Development、AdHoc 这两种 Profile,不一样的是我的、公司开发者帐号有发布到 AppStore 的 Profile,而企业开发者帐号则是 InHouse 企业内发布的 Profile。ip

看到我又乱了,不怕,慢慢来解释。开发

开始上架之路

1. 申请App ID


 

选中Identifiers的App IDs,点击右上角的“+”号填写相应信息来申请App ID。


 

注意:这个App ID Description的Name是用来描述你的App Id,这个随便填,没有什么限制,最好是项目名称,这样方便本身辨识(不容许中文喔)。


 

注意:App ID Suffix,这是你 App Id 的后缀,这个须要仔细。由于这个内容和你的程序直接相关,后面不少地方要用到,最好是com.yourcompany.yourappname的格式,我用的是项目中的 Bundle Identifier(反正这样是最保险的,上面有提到什么是 Bundle Identifier )。


 

注意:App Services,默认会选择2项,不能修改,只须要选择上本身须要的服务便可,不知道在哪里看到说是必需要选上推送,不然后面就没有办法修改了,可是我本身测试的是能够修改的。若是不放心的程序🐶能够选上喔,而后点击Continue。


 

确认没有错的话直接点击 Submit 后点击 Done 即完成 App ID 的建立,以下图所示:


 

2. 建立证书(Certificates)

2.1 建立证书请求文件

先建立一个证书请求文件。在 Mac 上的应用程序找到“钥匙串访问”,以下图这个图标:


 

打开后,选择 钥匙串访问--证书助理--从证书颁发机构请求证书,以下图所示:


 

填写好证书信息,保存该证书。


 

注意:用户邮件地址填写开发者的邮件,经常使用名称是证书中密钥的名字,CA 电子邮件地址不用填。
点击“继续”,选择存储该证书的位置,便可生成证书请求文件,以下图所示:


 
2.2 开始建立证书

 

证书有两大类,开发证书(Development,也称为调试证书)和发布证书(Production)。

经常使用的有如下几种:

① iOS App Development:真机调试证书。

② Apple Push Notification service SSL (Sandbox):推送调试证书,直接用 Xcode 调试到设备的 App 须要调试证书推送通知。

③ App Store and Ad Hoc:发布证书,App Store、In-House(以前是有这个的,不过我如今看不到,先无论)、Ad Hoc 发布方式都须要这个证书来签名。

④ Apple Push Notification service SSL (Sandbox & Production):推送正式证书,AppStore、In-House、AdHoc 都须要用正式推送证书推送通知。

注意:这几种证书的建立都是须要上传CSR文件(就是刚刚建立好的 CertificateSigningRequest.certSigningRequest文件)。


 

发布证书和开发者证书须要操做两次,分别建立,开发者证书用于真机调试,发布证书用于提交到 App Store。
好比先勾选 iOS App Development,点击 Continue,它会提示你须要一个 CSR 文件。


 

机智如我早就已经建立好了,就是那个上面说的 CertificateSigningRequest.certSigningRequest文件。
好,继续 Continue。


 

选择那个 CSR 文件,点击 Generate。


 

能够把他下载到 Mac 找个地方放着。
一样的,App Store and Ad Hoc 也是同样的方法来建立便可。


 

哎呀,还能够,知道我已经建立了 iOS App Development,给我变灰不能够点击了。
到了最后一步,跟建立 iOS App Development 差很少:


 

不过跟 iOS App Development 的证书的Name有点不一样。一个是 iOS Development: Microlen Yan(个人),另外一个是 iOS Distribution: Y..S.. Technology Co., Ltd.(公司的)。也下载到电脑之后,你 Mac 上有了如下这两个文件:


 

在开发者中心也能够看到:


 

这两个证书都是有效期1年。
双击这两个 cer 证书文件,就能够安装好了这两个证书。(若是安装不上,能够直接将证书文件拖拽到钥匙串访问的列表中)
安装完成以后应该是这样子的:


 

3. 建立配置文件(描述文件Provisioning Profile)


 

点击右上角的“+”号,分别建立开发用的 Provisioning Profile 和发布到 App Store 用的 Provisioning Profile:


 

以iOS App Development为例。


 

选择以前已经建立好的App ID,下一步:


 

选择证书,这个也是刚刚建立好的证书。继续下一步:


 

注意:开发的 Provisioning Profile 须要真机调试,因此这里要绑定一个或以上的真机,这里我是以前添加过真机了,因此能够直接勾选;若是没有的话,须要将真机的 UUID 复制出来在此添加(方法:使用手机 Safari 访问 http://fir.im/udid )。还有就是,在发布的 Provisioning Profile 中,是没有这一步的,道理咱们都懂!(不懂也不要问度娘)
好,勾选了以后,直接 Continue:


 

填写好了 Profile Name 以后,点击 Generate 生成:


 

下载下来吧,骚年!而后去建立发布用的 Provisioning Profile,步骤和以上的差很少。
在选择证书的时候有一点点不一样:


 

一样完成之后,下载下来。如今就多了两个 Provisioning Profile:


 

双击就添加到 Xcode 中,这样在真机调试或者发布时,就能够分别有不一样的 Provisioning Profile 与其对应。不过,其实能够不用下载保存,由于能够在Xcode那里下载的(具体操做下面有,我也是后来才据说的,原谅我没有好好读书)。

4. 项目配置(在 Xcode 进行)

在 Xcode 中,选择 Xcode--Preference 如下界面,选择 Accounts 选项卡:


 

选中那个 Admin 的,而后点击 View Details...


 

在这里能够下载你的 Provisioning Profile(Xcode作得还能够的是否是)。
配置如下项目 PROJECT 的 Provisioning Profile 属性:


 

而后用真机打包:Product--Archive(若是不是连真机,好像 Archive 这个菜单项是灰色不能够点击的)


 

为了保险起见、让苹果审核顺利一点,先点击“Validate...”来验证一下:


 

验证验证着就出现如下这个问题了:


 

看来是这个 iTunes Connect 的问题,那就先去 iTunes Connect 去注册一个该 app 的信息吧。


 

https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/ra/ng/
我试了好屡次才进去的,apple 这个坑爹货。点击“个人 App”,新建一个 App 吧。


 

点击建立以后


 

填写完相应信息,点击“1.0 准备提交”。
把要填的信息包括:版本信息、App 综合信息、Game Center(个人暂时没有用到)、App 审核信息、额外信息,填写完毕以后存储一下(建议每填一下存储一下,iTunes Connect 常常网络搞飞机的)。
对了,还有一个“构建版本”,这个把代码打包成 ipa 文件而已。构建版本(下面有构建方法)完成以后,再来这个 iTunes Connect 里填写“构建版本”


 

构建版本的方法有两种,一种是使用 Xcode,另外一种就是下载一个叫 Application Loader 这个软件:


 
  • Xcode 构建版本:
    用真机打包:Product--Archive 以后进入如下页面(或者已经 Archive 了的话就能够经过 Window--Organizer 进入):

     

看到蓝色背景的按钮没有,Upload to App Store...以后按照提示操做吧。

我建议使用 Application Loader 的。

  • Application Loader 构建版本:
    如上图,点击“Export...”,导出一个 ipa 文件(其实这个时候就能够点击“Validate...”,可是我懒)。
    而后打开 Application Loader 这个软件,双击“交付您的应用程序”:

     

它会验证你的 app,若是这里上传完毕没有报错的话,那么 10 分钟左右等 apple 那边处理完这个版本,就能够到 iTunes Connect 里的“构建版本”选择刚刚上传好的这个版本。
填好就像这样子啦:


 

好,信息都填写完毕了。iTunes Connect 右上角提交审核吧!祝君 app 顺利上架!

 



文/angelen(简书做者) 原文连接:http://www.jianshu.com/p/16fa56eacb5e 著做权归做者全部,转载请联系做者得到受权,并标注“简书做者”。