App上架流程 & 上架被拒10大原因

上架前预热

先登陆自己的开发者账号(自己提前注册好 iOS 开发者账号,这里假设你已经拥有了一个 iOS 开发者账号),进入这个页面:https://developer.apple.com/account/overview.action
App上架流程 & 上架被拒10大原因

由于我提交上架的是iOS Apps,因此进入最左边这一栏:
App上架流程 & 上架被拒10大原因

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

  • Certificates: 证书,常用的证书类型有4种:真机调试证书、推送调试证书,发布证书、推送生产证书。
  • Identifiers: App ID,跟项目工程的 Bundle Identifier(就是下图红箭头指向的me.angelen.Ganker)匹配,如下图所示:
    App上架流程 & 上架被拒10大原因
  • 需要支持推送、Game Center 等功能的 App ID 不能包含通配符* (下图就是在新建App ID时,选择App ID的后缀)。
    App上架流程 & 上架被拒10大原因
  • Devices: iOS设备在真机调试、AdHoc发布时都需要包含设备的UDID才可以安装。
  • Provisioning Profiles: 配置文件(描述文件),不同类型的开发者账号都包含 Development、AdHoc 这两种 Profile,不同的是个人、公司开发者账号有发布到 AppStore 的 Profile,而企业开发者账号则是 InHouse 企业内发布的 Profile。

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

开始上架之路

1. 申请App ID

App上架流程 & 上架被拒10大原因

选中Identifiers的App IDs,点击右上角的“+”号填写相应信息来申请App ID。
App上架流程 & 上架被拒10大原因

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

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

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

如果不放心的程序员,可以选上喔,然后点击Continue。

App上架流程 & 上架被拒10大原因

确认没有错的话直接点击 Submit 后点击 Done 即完成 App ID 的创建,如下图所示:
App上架流程 & 上架被拒10大原因

2. 创建证书(Certificates)

2.1 创建证书请求文件

先创建一个证书请求文件。在 Mac 上的应用程序找到“钥匙串访问”,如下图这个图标:
App上架流程 & 上架被拒10大原因

打开后,选择 钥匙串访问–证书助理–从证书颁发机构请求证书,如下图所示:
App上架流程 & 上架被拒10大原因

填写好证书信息,保存该证书。
App上架流程 & 上架被拒10大原因

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

2.2 开始创建证书

App上架流程 & 上架被拒10大原因

证书有两大类,开发证书(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上架流程 & 上架被拒10大原因

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

机智如我早就已经创建好了,就是那个上面说的 CertificateSigningRequest.certSigningRequest文件。
好,继续 Continue。
App上架流程 & 上架被拒10大原因

选择那个 CSR 文件,点击 Generate。
App上架流程 & 上架被拒10大原因

可以把他下载到 Mac 找个地方放着。
同样的,App Store and Ad Hoc 也是一样的方法来创建即可。
App上架流程 & 上架被拒10大原因

哎呀,还可以,知道我已经创建了 iOS App Development,给我变灰不可以点击了。
到了最后一步,跟创建 iOS App Development 差不多:
App上架流程 & 上架被拒10大原因

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

在开发者中心也可以看到:
App上架流程 & 上架被拒10大原因

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

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

App上架流程 & 上架被拒10大原因

点击右上角的“+”号,分别创建开发用的 Provisioning Profile 和发布到 App Store 用的 Provisioning Profile:
App上架流程 & 上架被拒10大原因

以iOS App Development为例。
App上架流程 & 上架被拒10大原因

选择之前已经创建好的App ID,下一步:
App上架流程 & 上架被拒10大原因

选择证书,这个也是刚刚创建好的证书。继续下一步:
App上架流程 & 上架被拒10大原因

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

填写好了 Profile Name 之后,点击 Generate 生成:
App上架流程 & 上架被拒10大原因

下载下来吧,骚年!然后去创建发布用的 Provisioning Profile,步骤和以上的差不多。
在选择证书的时候有一点点不同:
App上架流程 & 上架被拒10大原因

同样完成以后,下载下来。现在就多了两个 Provisioning Profile:
App上架流程 & 上架被拒10大原因

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

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

在 Xcode 中,选择 Xcode–Preference 以下界面,选择 Accounts 选项卡:
App上架流程 & 上架被拒10大原因

选中那个 Admin 的,然后点击 View Details…
App上架流程 & 上架被拒10大原因

在这里可以下载你的 Provisioning Profile(Xcode做得还可以的是不是)。
配置以下项目 PROJECT 的 Provisioning Profile 属性:
App上架流程 & 上架被拒10大原因

然后用真机打包:Product–Archive(如果不是连真机,好像 Archive 这个菜单项是灰色不可以点击的)
App上架流程 & 上架被拒10大原因

为了保险起见、让苹果审核顺利一点,先点击“Validate…”来验证一下:
App上架流程 & 上架被拒10大原因

验证验证着就出现以下这个问题了:
App上架流程 & 上架被拒10大原因

看来是这个 iTunes Connect 的问题,那就先去 iTunes Connect 去注册一个该 app 的信息吧。
App上架流程 & 上架被拒10大原因

https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/ra/ng/
我试了好多次才进去的,apple 这个坑爹货。点击“我的 App”,新建一个 App 吧。
App上架流程 & 上架被拒10大原因

点击创建之后
App上架流程 & 上架被拒10大原因

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

构建版本的方法有两种,一种是使用 Xcode,另一种就是下载一个叫 Application Loader 这个软件:
App上架流程 & 上架被拒10大原因

  • Xcode 构建版本:
    用真机打包:Product–Archive 之后进入以下页面(或者已经 Archive 了的话就可以通过 Window–Organizer 进入):
    App上架流程 & 上架被拒10大原因

看到蓝色背景的按钮没有,Upload to App Store…之后按照提示操作吧。

我建议使用 Application Loader 的。

  • Application Loader 构建版本:
    如上图,点击“Export…”,导出一个 ipa 文件(其实这个时候就可以点击“Validate…”,但是我懒)。
    然后打开 Application Loader 这个软件,双击“交付您的应用程序”:
    App上架流程 & 上架被拒10大原因

它会验证你的 app,如果这里上传完毕没有报错的话,那么 10 分钟左右等 apple 那边处理完这个版本,就可以到 iTunes Connect 里的“构建版本”选择刚刚上传好的这个版本。
填好就像这样子啦:
App上架流程 & 上架被拒10大原因

好,信息都填写完毕了。iTunes Connect 右上角提交审核吧!

另外:

苹果刚刚发布了iOS应用遭拒的十大原因,帮助开发者更好地设计符合苹果要求的应用。   

在苹果列出的十大原因中,占比最高的是“信息提交不全”,达到14%。属于这一原因的有可能是应用描述不够完善,也有可能是用户忘记包含支持页的链接。但这一理由的涵盖范围非常广泛,或许缺乏指导意义。   

除此之外,排名第三的“不遵守《开发者项目授权协议》”同样过于宽泛。其他8条虽然较为具体,但所谓的“漏洞”同样包含很多情况。

这十大原因在遭拒应用中的合并占比达到60%。   

以下为详细原因列表以及所占比例:   

1、信息提交不全(14%)   

2、应用存在漏洞(8%)   

3、不遵守《开发者项目授权协议》(6%)   

4、用户界面太复杂或不够好(6%)   

5、名称、描述、截屏与应用内容或功能不相关(5%)   

6、包含错误、欺诈或误导性内容,或者使用与其他应用相似的的名称或图标(5%)   

7、iTunes Connect中的应用名与设备上显示的应用名不相似,引发困扰(4%)   

8、包含占位文本(4%)   

9、评级不合适(3%)   

10、beta、demo、trail或test版软件也会被拒

上一篇:iOS 企业版 安装失败 原因


下一篇:【Android 界面效果43】Android LayoutInflater的inflate方法中attachToRoot的作用