iOS应用审核被拒的原因及提交应用的注意事项。

  前段时候准备整理‘提交应用审核的一些注意事项’,但因为iPhone X、iPhone8等的发布搁浅了。因为新产品的发布,所以我们开始着手公司应用适配iOS11、iPhone X的工作。遇到了些坑,但总体的工作量并不是很大。如果想了解如何适配iOS11、iPhone X,可以查看我的上篇博客iOS开发适配iOS11&iPhone X 、Xcode9遇到的坑

  如果你是首次提交iOS应用,个人还是很建议你先阅读App Store审核指南的,这样可以有效地避免因很浅显问题被拒的情况。当然苹果的审核指南过于官方化,而且有时会出现应用莫名其妙被拒的情况……。那么让我们一起整理审核被拒的原因,以此为戒,尽量提高审核通过率。

  审核被拒的原因一共分为两大类:

     - Metadata Rejected (元数据被拒)

     - Binary Rejected (二进制被拒)

一:Metadata Rejected (元数据被拒)

  元数据被拒其实就是iTunes Connect 中的解释说明类的内容有问题,比如App信息中的应用的副标题有明显的品牌名,应用的分级不合适…… 都会被拒的。

  而这种情况下并不需重新提交IPA包,根据邮件的提醒直接在iTunes Connect 进行修改就行,然后点击发布,重新排队审核就可以了。

   那么接下来我们详细地说说每个点的注意事项:

   1. 应用名称:

     应用名称最多为6个汉字,超过手机端将会显示不全。

   2. 副标题

    标题中不要出现关键词或相似词语堆砌的现象,不然也会被拒的。

   3. 隐私政策网站(URL)

    所有面向儿童的App,或者提供自动续费或免费订阅的App,都必须提供隐私政策。此外,如果App包含账户注册或需要访问用户的现有账户,或法律另行规定,也必须提供隐私政策。对于收集用户或设备相关数据的App,也建议提供隐私政策。

    当然也可不填,但如果应用是音乐类、视频类、游戏等,涉及到版权的尽量加上。如果不加,很大可能会被拒。

   4. 类别

    应用是什么类型选择什么类别就好,貌似在网上也没看到因类别被拒的。

   5. 分级

    分级要跟你的应用相符。一般都是4+岁 或 17+岁吧,在网上也有看到因级别太低或太高被拒的。

   6. 版本

    版本号应遵循软件版本规范

   7. 版本信息

    描述此版本的新增内容,例如增添了何种新功能,有何改进之处以及修正了哪些错误。

    版本信息中不要出现其他终端设备的提示语如Android、WindowsPhone等。当然应用里面的任何地方也不要出现,也会被拒的。使用iOS、iPhone X等词语的时候,需要注意大小写,写错也会被拒的。

   8. App预览和屏幕快照

    屏幕快照必须为 JPG 或 PNG 格式,且必须采用 RGB 颜色空间。App 预览必须为 M4V、MP4 或 MOV 格式,且不能超过 500 MB。

    屏幕快照上不要出现其他系统的名称和图标,而且也不要出现测试、不文明等词语。RGB色彩空间、无透明度。

    录制的视频中尽量避免加入广告、特效等过多的宣传成分。同时视频必须在苹果真机上录制,画面中不要出现人机交互界面(如手指,不过现在iOS11在控制中心有屏幕录制,可以使用)。

     录制的视频必须在真机上录制,不能采用拉伸、裁剪、填充方式处理生成。

   9. 宣传文本

    苹果最近刚加的,iOS11或更高版本会显示 170字以内 可不填

   10. 描述

    注意用词,不要出现不文明或引起误会的词语。同时也不要出现其他系统的名称如:Android等。使用iOS、iPhone X等词语时,不要写错,不然也会被拒的。

   11. 关键词

    一个或多个关键词,用以描述您的 App。关键词将使 App Store 搜索结果更加准确。关键词之间用英文逗点分隔。

    注意是英文逗号分隔,关键词不要使用不文明词语,不然会因为关键词不符合要求被拒。

   12. 技术支持网址(URL)

    您的 App 技术支持信息网址(URL)。直接可以浏览的网页,如果进去提醒登录会被拒的。

   13. 营销网址(URL)

    您的 App 营销信息网址(URL)。该网址(URL)会在 App Store 中显示。 (可不填)

   14. App Store 图标

     1024 * 1024 分辨率至少72DPI,并采用RGB色彩空间,格式可以为JPG和PNG,无透明度。

    应用图标不要跟Apple的logo风格相似,或一些出名的应用或iOS系统应用图标相似,有很大可能会被拒的。

   15. 版权

    拥有您的 App 专有权的人员或实体的名称,前面是获得权利的年份(例如“2008 Acme Inc”)。请勿提供网址(URL)。

    公司版权信息。

   16. 商务代表联系信息

    公司的一些信息,地址、联系电话、邮箱等。

   17. 路由App覆盖地区文件

    指定您的 App 所支持的区域。文件格式必须为 .geojson 并且只能包含一个 MultiPolygon 元素。

     可不填。

   18. 登录信息

    审核人员测试需要的登录账户,在提交应用后一定要保证该账号等够登录。尽量和服务端协商,别在审核期间删除掉,同时在审核过程中也不要登录该账号。

    如果App是手机验证码登录的,尽量也让服务端配置一个手机号和固定的验证码,同时在备注中说明。

   19. 联系信息

    填写自己的姓名、电话和邮箱即可,或者填项目经理的。

   20. 备注

    对审核过程会有所帮助的、有关您 App 的额外信息, 包括在测试中需要的 App 特别设置等。

    应用中需要说明的尽量在备注中说明,比如定位服务、手机验证码登录。同时也尽量用一句话描述自己的应用方便审核人员进行审核。

   21. 附件

     您可以附加特定的 App 文稿、演示视频和 其他内容,以防止 App 审核延期。请确保 您的文件使用下列扩展名:.pdf、.doc、 .docx、.rtf、.pages、.xls、.xlsx、 .numbers、.zip、.rar、.plist、.crash、 .jpg、.png、.mp4 或 .avi。

     添加附件尽量在备注中说明。

二:Binary Rejected (二进制被拒)

   二进制被拒,也就是你提交的包有问题了,这种情况需要你根据邮件提醒,然后对比App Store审核指南,然后修改相应代码,再次打包提交。提交时Build也要相应地加1,不然Application Loader会默认为同一个包,无法提交上去。

   那么接下来我们详细地说说每个点的注意事项:

   1. 启动页

    提交前检查启动页,如果黑屏,有一定可能会被拒。

   2. 应用版权信息

    一般启动页会放一些版权和版本信息,注意不要带beta、测试等字样,同样不要出现其他系统名称和图标(例如:Android的状态栏),应用里面也不要带,不然也会被拒。

   3. iOS大小写规范

     特别是iOS、iPhone X等。还有一些英语词汇,注意大小写。

   4. UI风格

     如果不符合苹果系统的UI风格也会被拒。具体请参考苹果UI注意事项

   5. 检查更新

    检查更新已经被苹果限制了,如果是在审核期间弹出更新提醒是很严重的。

   6. 第三方登录

     如果手机没有安装某应用时应该将相应第三方登录图标隐藏,当然微博不用隐藏。分享也是,手机中没安装的也需要隐藏的。

   7. 登录

    如果是账号、密码登录需要给审核人员提供一个账号和密码。如果你的应用是手机验证码登录,让服务端配置个手机号和固定的验证码,同时需要在备注中说明。

   8. 注册协议

    注册时需要添加用户注册协议,如果不添加的话,审核人员看到也是会被拒的。

   9. 应用太过简单被拒。

    这个应该是看你是什么类型的应用,如果再App Store中有很多类似的应用也是有可能被拒的。只要不是什么马甲包,基本登录、注册什么的都有,一般也是不会被拒的。被拒了可以申诉的。

   10. 网络检测

    应用应该监听网络状态,断网的时候要进行提醒,而不是一直卡在某个界面。在提交之前手机打开美国VPN每个界面都要跑一遍,检查接口是否存在问题,有问题及时协同服务端进行修复。

   11. IPV6 被拒

    更新到最新的网络库。监听网络状态,加断网提醒。美国VPN跑一圈。搭建ipv6环境,判断是服务端还是客户端未支持IPV6,然后再进行解决。

    或者全局搜索下方IPV4代码,如果应用中没有,基本就是服务器的问题。

1
2
3
4
5
6
7
8
9
10
11
12
inet_addr()
inet_aton()
inet_lnaof()
inet_makeaddr()
inet_netof()
inet_network()
inet_ntoa()
inet_ntoa_r()
bindresvport()
getipv4sourcefilter()
setipv4sourcefilter()

   12. 按钮或某个功能无法使用

    如果按钮点击无效时,需要将其置灰或隐藏。某个功能无法使用时将其隐藏。

   13. 访问权限未设置

    如果应用中有访问相机、麦克风等功能,都需要在info.plist中添加相应权限,同时应用中需要使用代码进行判断是否有权限。如果没有权限弹出弹窗提醒用户跳转。

   14. 没按照要求使用了应用内购买

     苹果规定:如果系统通过付费才可以解锁某款应用中的一些功能(例如,订阅内容、游戏货币、游戏关卡、获取优质内容或解锁完整版本等),必须使用应用内付费(IAP)。应用不允许包括按钮、外部链接或者其他调用方式和行为指导用户采用非IAP的方式付费……如果你的应用内付费的付费类型不正确,你的应用会被拒绝。此外,应用不可以直接或间接使用应用内付费的内容和功能向其他用户赠送礼品。

   15. 私有API的调用

    去除私有API的调用。(”prefs:root=” 已经被列为私有API了,如果跳转到设置界面调用此API也会被拒的)

三:写在最后

   1. 认真阅读 App Store审核指南,遵循苹果的相应规则。

   2.在iTunes Connect 中的户和职能中添加自己的邮箱,被拒后会有邮件通知你。根据邮件的提醒判断是因元数据被拒还是二进制文件被拒。然后根据提示进行修改。

   3. 到App Store 下载客户端 iTunes Connect,然后登录2.中添加的邮箱,审核的状态会实时推送给你,可以实时跟踪审核的状态。

参考资料: