App Store作为苹果官方的应用商店,审核严格周期长一直让用户头疼不已,很多app都“死”在了审核这一关,那我们就要放弃iOS用户了吗?当然不是!本期我们从iOS app上架流程开始梳理,详细了解下iOS app上架的那些事。
iOS app上架总体流程:

如果你是第一次申请注册使用Apple ID登录苹果开发者网站,需要同意“苹果开发者协议”,提交请求,这个时候你的Apple ID 就已经成为了一个开发者的ID了。如图1-1:
苹果开发者中心网址:https://developer.apple.com/

图1-1 同意苹果开发者协议并提交申请

图2-1 加入苹果开发者计划

图2-2 开始注册

图2-3 注册说明
补充说明2-1:
·
双重验证相关
苹果新规定Apple ID需开启双重验证才能注册开发者账号,所以在加入开发者之前需要根据提示开启设备进行双重验证;验证方法采用登录电脑上的iCloud根据提示进行验证(或者其他设备,如登录手机进行双重验证),以下是部分相关图片

图2-4 双重验证相关

图2-5双重验证相关

图2-6 选择开发者类型
补充说明2-2:
·
Apple 开发者账号
.
个人账号:个人申请用于开发 Apple App 所使用的账号,仅限于个人使用,可以在 App Store 发布应用,申请比较容易,¥688.00/年 ($99.00/year)。
.
公司账号:以公司名义申请的开发者账号,用于公司内部的开发者共用,可以在 App Store 发布应用,申请流程相对麻烦,¥688.00/年 ($99.00/year)。
.
企业账号:一般是公司规模在 500 人以上的企业,用于内部测试、分发应用的账号,不能在 App Store 发布应用,申请流程相对麻烦,¥1988/($299.00/year)。
·
不同开发者账号步骤与所需资料


填写详细的注册信息,统一相关协议,通过验证审核之后再次点击继续进入支付页面,具体步骤参考图2-7:

图2-7 填写注册信息

图2-8 同意协议并且继续

图2-9 注册等待验证通过

图2-10 支付

图2-11 再次登录

图2-12 填写付费信息的页面
支付成功后,苹果会在48小时内对订单进行处理,之后可能会收到邮件要求到指定的页面上传身份证照片。
如果遇到任何问题,可以拨打苹果开发的售后服务电话4006701855。
补充说明2-3:
·
邓白氏DUNS的申请
邓白氏DUNS编码相当于公司在苹果公认的权威组织中注册了自己的身份证;可以点击相关链接先进行验证,没有可以直接申请。具体申请步骤可以参考百度经验:https://jingyan.baidu.com/article/27fa7326bd29df46f9271f10.html
使用APICloud平台开发iOS应用需要用到几个证书,下面的图为各个证书使用的地方。接下来为各个证书的创建教程。


首先打开苹果开发网站,通过Account进入开发账户,如图:

登录成功后选择Certificates, Identifiers &
Profiles(如果没有这一项请查看教程最开始的说明),如图:

如图,在左侧菜单选择Identifiers,然后点击添加按钮

选择App IDs,点击右上角的Continue按钮

在Bundle ID处选择Explicit,填写自己项目的ID,这里填写的ID即是控制台上传证书页面需要填写的App IDs

如果应用需要使用推送功能,在下面的Capabilities列表中勾选上Push Notifications项,点击Continue

确认信息无误后点击Register,完成创建。

若开发账号下已经存在certificate了可以跳过创建的步骤,一个账号下有一个certificate即可,多个应用可以共用。
生成certSigningRequest文件
如图,打开应用程序->实用工具->钥匙串访问

如图,选择从证书颁发机构请求证书

接下来填写邮件地址,选择存储到磁盘,点击继续

如图,保存文件到桌面。

制作p12证书
如图所示,点击左边的Certificates,然后点击添加按钮

如图,如果是个人或公司账号,选择iOS Distribution (App Store
and Ad Hoc),如果是企业账号,则选择In-House and Ad Hoc,点击Continue

如图,选择Choose File选择之前生成的certSigningRequest文件,点击Continue完成创建

如图所示,cer证书创建成功,点击Download将证书下载到本地

双击打开证书将其安装到钥匙串,若弹出安装提示,选择安装到“登录”,在钥匙串中找到安装的证书,若提示此证书是由未知颁发机构签名的,请下载Apple Worldwide Developer Relations Certification Authority证书进行安装,地址http://developer.apple.com/certificationauthority/AppleWWDRCA.cer,在左边选择“登录”和“我的证书”,找到证书,在证书上面点击鼠标右键,然后在菜单中选择导出证书,如图:

在弹出页面中指定证书名,点击存储,然后输入证书密码(此密码在控制台上传证书页面输入),点击好,生成p12格式证书。

6云编译mobileprovision发布证书制作
这里以个人、公司账号创建App Store类型发布证书为例,企业账号创建In House类型发布证书类似。
App Store类型证书
App Store证书只能用于发布应用到AppStore,不能安装在非越狱设备上面。如图,点击左侧菜单Profiles,然后点击添加按钮

选择App Store,点击Continue

如图,选择上面创建的App ID,点击Continue

如图,选择certificates,点击Continue

输入证书名称,点击Generate,完成创建

7云编译mobileprovision测试证书制作
个人或公司账号生成的App Store类型mobileprovision证书,应用在没有发布到App Store之前只能在越狱设备上安装,若要在非越狱手机上面安装,则需要把设备udid添加到测试设备列表Devices里,并且生成Ad Hoc类型mobileprovision证书。
获取设备udid
获取设备udid可以通过老版本iTunes获取(最新版本无法获取),macOS Catalina及更新系统则可以直接通过“访达”获取,另外也可以通过其它一些手机助手获取。
1、macOS Catalina及更新系统中通过”访达“获取。打开”访达“,连接设备,如图,点击划线上面区域后,会展示出序列号及udid信息,然后点鼠标右键拷贝(拷贝的内容包含序列号、udid等,需手动再筛选udid)。


2、通过老版本iTunes获取。打开iTunes,连接设备,如图,找到序列号,然后点击序列号,该栏会变成UDID,点击鼠标右键,拷贝UDID。


添加测试设备
如图选择左侧菜单Devices,点击添加按钮

输入Name和获取的UDID,点击Continue

点击Register,最后点击Done,添加设备完成。
Ad Hoc类型证书
对于个人和公司账号,Ad Hoc类型证书可以安装到指定的测试设备上面调试。如图,点击左侧菜单Profiles,然后点击添加按钮

如图,选择Ad Hoc,点击Continue进入下一步

如图,选择App ID,点击Continue进入下一步

如图,选择certificates,点击Continue进入下一步

选择设备,然后点击Continue

输入证书名称,点击Generate完成创建
更多内容详见:https://docs.apicloud.com/Dev-Guide/iOS-License-Application-Guidance#1

图6-1 进入iTunes
Connect

图6-2 新建App
补充说明6-1“名称”是新建的app在App Store中显示的名字;“SKU”可以填写当天日期外加一个编号即可,这是你为你的应用指定的一个标识符。

图6-3 点击“1.0准备提交”填写App相关信息
接着添加预览图和屏幕快照,编写应用描述和关键词,设置应用图标编辑应用分级,应用图标必须提供1024x1024的图片且图片不能设置alpha通道(透明度);应用分级是为了确定应用使用群体的年龄段。
补充说明6-2苹果官方对于app屏幕快照及预览的规范要求:







注:如果你的应用中有需要登录后才能使用的功能那么就必须提供一个演示账号以供审核应用时使用。

图6-4 提供联系人信息和演示账号

图6-5 选择发布方式并保存应用信息
注:根据自己情况选择,是否手动发布版本。
APICloud平台直接云编译生成ipa包,下载下来用Transporter工具上传到AppStoreConnect。
苹果的三种审核机制

外媒 CNBC 在一篇关于苹果 App
Store 如何审核App 的报道中分享了一些关于应用审核的细节。
报道称,目前 App Review 总部有 300 多名评审员,苹果的每个评审员每天大概需要审核 50 -- 100 个应用程序,Watchtower 会跟踪每一个 App 的审核情况,以便回复开发者或通过开发者修改后重新提交审核时进行比对,同时也为苹果收集 App 质量相关数据。
对于评审员来讲,苹果为其制定了 SLA 的考核制度(服务级别协议),要求评审员在 24 小时内需要达到 50% 的应用完成审核,48 小时内需要达到 90% 的应用完成审核。苹果称,会有 40% 的 App 被拒审或更新被驳回,核查出相关问题,并反馈给开发者。在同时多维度考核数据时,SLA 会达到正常标准,低于正常值时,评审员会收到邮件通知进行警告。新闻报道地址:https://www.cnbc.com/2019/06/21/how-apples-app-review-process-for-the-app-store-works.html
苹果审核标准共分为五大类:安全、性能、业务、设计及法律,我们要严格按照审核标准来开发和提交我们的APP。当然,在提审之前还有一些准备工作需要确保完成好:
·
要确保APP没有明显的崩溃和错误。
·
确保APP的可用性和完整性,不能是演示APP或demo。
·
APP所有预览图、简介、关键词等都要是和产品业务相关的。
·
更新您的联系信息,以便 App Review 部门在需要时与您取得联系
·
提供有效的演示帐户和登录信息,以及审核所需要的资源。
·
APP启用后台服务,确保其在审核期间处于活动和可用状态
·
相关权限要说明其⽤用途,如果是壳上架或混淆代码,就更需要注意
官方审查指南:https://developer.apple.com/app-store/review/guidelines/
下面是七麦数据统计的近30天的被拒条款统计,仅供参考。

出自:https://zhuanlan.zhihu.com/p/146128612