admin 发表于 2017-9-29 12:56:15

iOS开发|史上最用心的iOS App上架流程

http://upload-images.jianshu.io/upload_images/683662-e00681f5c17869df.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240
题记麻痹起来嗨!看网上那么多的教程,依然在我心爱的爱屁屁在上架的时候遇到各种 J8 问题,最大的问题就是:Xcode 证书什么的,Provisioning Profile 什么的,Debug 什么的,Production 和Distribution 什么乱 78 糟的都把我搞糊涂了,网上很多教程都是好旧的(虽然思路一样,但是不够详细),所以我打算把我今年已经上架的干货儿(下载地址,介绍地址)的上架艰辛历程写下来,一是可以让自己以后上架 app 时可以减少一点儿弯路,二是可以给大家一个参考。
上架前预热先登陆自己的开发者账号(自己提前注册好 iOS 开发者账号,这里假设你已经拥有了一个 iOS 开发者账号),进入这个页面:
https://developer.apple.com/account/overview.action

http://upload-images.jianshu.io/upload_images/683662-09674e456b52bad5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


由于我提交上架的是iOS Apps,因此进入最左边这一栏:

http://upload-images.jianshu.io/upload_images/683662-00e62ad072cbe152.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

[*]Certificates: 证书,常用的证书类型有4种:真机调试证书、推送调试证书,发布证书、推送生产证书。
[*]Identifiers: App ID,跟项目工程的 Bundle Identifier(就是下图红箭头指向的<font color="red">me.angelen.Ganker</font>)匹配,如下图所示:

http://upload-images.jianshu.io/upload_images/683662-43713c0450739ac9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240
[*]需要支持推送、Game Center 等功能的 App ID 不能包含通配符* (下图就是在新建App ID时,选择App ID的后缀)。

http://upload-images.jianshu.io/upload_images/683662-745ec0af3956d18c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240
[*]Devices: iOS设备在真机调试、AdHoc发布时都需要包含设备的UDID才可以安装。
[*]Provisioning Profiles: 配置文件(描述文件),不同类型的开发者账号都包含 Development、AdHoc 这两种 Profile,不同的是个人、公司开发者账号有发布到 AppStore 的 Profile,而企业开发者账号则是 InHouse 企业内发布的 Profile。
看到我又乱了,不怕,慢慢来解释。
开始上架之路1. 申请App IDhttp://upload-images.jianshu.io/upload_images/683662-8280db79faf16c6b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-a9fa59a088bf6e73.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-fded38e7bf717205.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-fafac3fe8be0b010.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


注意:App Services,默认会选择2项,不能修改,只需要选择上自己需要的服务即可,不知道在哪里看到说是必须要选上推送,否则后面就没有办法修改了,但是我自己测试的是可以修改的。如果不放心的程序可以选上喔,然后点击Continue。

http://upload-images.jianshu.io/upload_images/683662-7903edd06c0601f6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-9ed1dda0d561f58e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


2. 创建证书(Certificates)2.1 创建证书请求文件先创建一个证书请求文件。在 Mac 上的应用程序找到“钥匙串访问”,如下图这个图标:

http://upload-images.jianshu.io/upload_images/683662-3e2a41203ecdb1ff.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-66bbeced3a2a80fd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-f5eed3295570e390.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-fe85198574c7550e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


2.2 开始创建证书http://upload-images.jianshu.io/upload_images/683662-9b4a0b73d3c3c3a6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


证书有两大类,开发证书(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文件)。

http://upload-images.jianshu.io/upload_images/683662-5bc7312fa647ecfb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-99b1c0247d9e27b9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-ae6439a378e866c9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-ff8f608d78f13f1e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-63be984675feb3b2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


哎呀,还可以,知道我已经创建了 iOS App Development,给我变灰不可以点击了。
到了最后一步,跟创建 iOS App Development 差不多:

http://upload-images.jianshu.io/upload_images/683662-fa66ad5bdd515c9a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-231c528e06410d3d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


在开发者中心也可以看到:

http://upload-images.jianshu.io/upload_images/683662-6063f828040a1cec.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-3c3977d7ffb2e28d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


3. 创建配置文件(描述文件Provisioning Profile)http://upload-images.jianshu.io/upload_images/683662-62d34e11cd9a3de0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-4d1e15821ee1015c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


以iOS App Development为例。

http://upload-images.jianshu.io/upload_images/683662-c3361d2cd07581d8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


选择之前已经创建好的App ID,下一步:

http://upload-images.jianshu.io/upload_images/683662-007dcabb419fac2c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-f85f0a18f074959a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-cbcc52c17d6ea3d3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-e40024cb6e8c8ece.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-41665af98d768ffc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


同样完成以后,下载下来。现在就多了两个 Provisioning Profile:

http://upload-images.jianshu.io/upload_images/683662-aaf5a86dcab85883.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


双击就添加到 Xcode 中,这样在真机调试或者发布时,就可以分别有不同的 Provisioning Profile 与其对应。不过,其实可以不用下载保存,因为可以在Xcode那里下载的(具体操作下面有,我也是后来才听说的,原谅我没有好好读书)。
4. 项目配置(在 Xcode 进行)在 Xcode 中,选择 Xcode--Preference 以下界面,选择 Accounts 选项卡:

http://upload-images.jianshu.io/upload_images/683662-bbc2a0d3769c1142.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-78f63157460671d8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


在这里可以下载你的 Provisioning Profile(Xcode做得还可以的是不是)。
配置以下项目 PROJECT 的 Provisioning Profile 属性:

http://upload-images.jianshu.io/upload_images/683662-ebb35abc53fad637.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


然后用真机打包:Product--Archive(如果不是连真机,好像 Archive 这个菜单项是灰色不可以点击的,现在可以不用连都可以了)

http://upload-images.jianshu.io/upload_images/683662-4172997c3df73d48.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-3f9d2d515dcd05ca.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-85aa1802109a0e94.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-972b60297b6975bf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-587842f9a02b0b5b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


点击创建之后

http://upload-images.jianshu.io/upload_images/683662-d5c6652b294bbeef.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-15a52eff1fef81c9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


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

http://upload-images.jianshu.io/upload_images/683662-c92b1f93b0f61cdc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240



[*]Xcode 构建版本:
用真机打包:Product--Archive 之后进入以下页面(或者已经 Archive 了的话就可以通过 Window--Organizer 进入):
http://upload-images.jianshu.io/upload_images/683662-7ff587da516fa136.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240
看到蓝色背景的按钮没有,Upload to App Store...之后按照提示操作吧。
我建议使用 Application Loader 的。

[*]Application Loader 构建版本:
如上图,点击“Export...”,导出一个 ipa 文件(其实这个时候就可以点击“Validate...”,但是我懒)。
然后打开 Application Loader 这个软件,双击“交付您的应用程序”:
http://upload-images.jianshu.io/upload_images/683662-8c71239dfdf692d6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240
它会验证你的 app,如果这里上传完毕没有报错的话,那么 10 分钟左右等 apple 那边处理完这个版本,就可以到 iTunes Connect 里的“构建版本”选择刚刚上传好的这个版本。
填好就像这样子啦:

http://upload-images.jianshu.io/upload_images/683662-15a52eff1fef81c9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


好,信息都填写完毕了。iTunes Connect 右上角提交审核吧!祝君 app 顺利上架!
如果文章帮助了你,不妨赏一口狗粮。



作者:angelen
链接:http://www.jianshu.com/p/16fa56eacb5e
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
页: [1]
查看完整版本: iOS开发|史上最用心的iOS App上架流程