前阵子我们开展了一次问卷调查,收集了读者朋友们关于 App Review 的一些问题。首先非常感谢大家配合参与问卷调查的,近期我们也组织了几个对 App Review 有相当经验的老司机来做了专题交流,以下是我们对 App Review 的一些经验总结,也包含了对问卷中的部分问题解答。
后续我们也会定期收集问题,并持续做这方面的分享。同时,我们也创建了一个「iOS App Review 技术讨论群」,感兴趣的可以在文章末尾获得添加方式,让我们一起讨论和交流。
审核流程
关于审核团队
苹果在全球多个地点都有审核团队,绝大多数我们所提交的 App 主要会按照递交时间先后分给各审核团队进行审核流程。但可以明确的一点是,国内的 App 一定会由懂中文的审核人员进行审核流程。基于这些点,我们可以总结出以下经验可以分享给大家:
- 审核过程中的交流,比如 App Store Connect 信息页面的回复,「联系我们」中的邮件或者电话沟通,都可以使用中文进行。在提供中文回复之外,也最好附上英文翻译。尤其是需要提交一些资质文件时。如果您的 App 需要额外的审核,这将有助于避免延迟。如果引用了文件中的内容则最好明确指出所引用的内容在具体哪一个章节。
- 由于全球各地时差的存在,审核过程一周七天每天都可能进行,也就是说除了苹果官方通知的节假日或服务维护日,平常苹果审核团队是不休周末的。
关于审核效率
这几年苹果审核提效的成果还是很明显的,从早期一次审核一个礼拜的周期,到现在 90% 的 App 都会在 24 小时内完成审核。这方面也有几点经验分享给大家。
-
一次审核流程是从你提交至苹果审核开始,到审核通过结束的。因而就算中间审核被拒了,也是还在审核流程内,修改完被拒的内容重新提交 App 包后,并不需要重新再提交一次审核。更为推荐的做法是,传完包后,在 App Store Conect 中的 App Review Message 页面里直接回复审核人员已修改完对应问题,希望继续审核,回复内容要有针对性,被拒原因有几个,就一条条回复。这时候,如果上次的问题导致上次的审核无法全部完成,对应的审核人员就会针对上次的问题继续审核,而不会又重新把 App 所有内容再次审核。与审核时间一样,正常 24 小时内苹果会继续审核流程,不用重新排队。(这里谈的是普遍情况,当然也有特殊的情况,重新提交审核会触发新的一次审核流程,也就是会重新排队并分配审核人员,这里的审核人员就不一定是上一次一样的了,所以不建议重新提交。)
-
合理利用「加急审核」 这个选项,通过申请「加急审核」,我们的 App 排队时间会大幅度缩短,从过往经验来看,加急审核最快的通过时间甚至达到了十几分钟以内,最慢的也会在十几个小时内处理。被拒后,也可以提交「加急审核」申请。每个开发者账号不应无限制地滥用加急审核,苹果审核团队是相对人性化的,只要诉求合理,一般也会进加急队列。可以使用「加急审核」的场景一般为,紧急 Bug 需要发版本修复,需要在指定时间发布版本配合营销活动等等。但必须注意,一定是合理使用,不能滥用。
-
提前将本 App 内值得注意的信息补充到 App Store Connect 中的「备注」一栏里,比如某些功能的操作路径、录屏文件截图和政策说明等等,并且保证测试账号的可用性。此外也要确保 在 App Store Connect 中同一页面内的 App「联系信息」有效并及时更新,以便审核团队及时联系您来沟通与您的 App 相关的事项。
-
与苹果审核团队联系的方式,可以由 App Reivew 信息页面的直接回复,也可以直接在 App Store Connect 里「联系我们」中申请邮件或者电话的方式,不要害怕或者排斥与审核人员进行交流,可以使用中文书面回复或电话交流(审核团队只能提供英文的书面回复),准备好自己的问题以及资料,正常沟通即可。
-
IPA 提交至 App Store Connect 后处理时间超过 1 个小时,这点目前没有明确的方式提效,只能看苹果能否意识到这个是比较大的问题而去推进了。Apple 鼓励大家到“联系我们”的页面去提出这个反馈以及相关的建议和要求。
-
不同 App 类型的排队时间并不是一定相同的,因而不是其他 App 审核通过了,你的还在排队就是出问题了。
关于审核被拒
如果您不同意 App 被拒绝的理由或者确认不是自己的问题,最好的方式是直接在信息中心回复来自审核团队的信息以说明情况,如果有必要可以录制对应视频。另外如果您觉得您的 App 的功能或者技术实现方式被误解,您可以选择对 App 被拒绝提出申诉。
Q:行业或者业务特殊性导致被拒,不知道如何处理?
A:苹果审核团队会结合当地政策和相关法规进行审核,如果确实是政策要求的相关问题,可以与审核团队进行邮件或电话沟通协商,关于政策法规相关问题,建议您先咨询公司商务和法务人员,和审核团队沟通时重点是:明确向审核人员解释和说明相关的条款,并提供足够的证据支持。
Q:别的 App 做了一样的事情可以发布在 App Store,我的 App 就被拒?
A:一次审核流程,就是针对当前 App 的,是独立的一个事件,和其他 App 没有关系。就算与审核人员沟通,提供其他 App 的证据,也不会影响到我们 App 的审核结果。其他 App 能审核通过发布,是另一个审核流程的事情。我们的关注点还是要集中在自己的 App 是否合规上。
Q:被拒原因里并不明确指出 App 功能的问题,找不到哪里被拒?
A:一般被拒的消息里会有:对应的条款,被拒问题的细节,后续步骤中要解决的问题,相关的资源信息以及截图,可以仔细查看。如果确定没有的话,建议直接回复苹果团队的信息,希望提供问题截图来帮助解决问题。
Q:App 不直接提供功能,但可以操作硬件提供功能支持,比如人脸采集等,是否也一样需要满足审核条款里的要求?
A:苹果 App 的出发点一定是为了用户,如果是使用了 App 来获取用户信息(直接或者间接),那么就还是需要有相关的隐私条款支持及符合隐私相关的审核要求。其他功能的使用,则需要具体情况具体分析,开发者可以给审核团队提供足够多的信息来进行判断。
审核条款
苹果审核条款是在持续更新的,比如 2022 年 6 月 30 日 生效的「账号删除」条款,请留意来自 Apple Developer News & Announcements 的最新消息。这些消息也可以在 Apple developer website 中找到。有的时候 App 以前能过审核,但某一次之后过不了审核,这也是正常现象。建议大家及时更新 App 并确保其符合最新的审核指南要求。下面主要谈谈收集到的一些问题和可以尝试的处理方式。
账号删除
这个条件是最近才新增的,强烈建议先查看官方 的 Offering account deletion in your app,里面很多信息都比较详细了。
Q:没有注册功能的账号,是否需要增加账号删除功能?
A:无注册功能,就可以没有删除功能。但决不允许为了不做删除功能,而特地隐藏了注册功能,欺骗审核的后果是很严重的,可以直接封号。
Q:账号删除功能里,是否有明确的交互或者 UI 要求?
A:条款里我们并没有看到做相关限制,但原则是用户能够比较清晰容易地找到这个入口,一般来说在账号设置页中提供入口是对用户比较友好的方式。如果已经提供了相关功能,但仍因为无该功能而被拒绝,可以回复操作路径或录像引导审核人员继续审核。也就是说,事先在 review notes 内提供找到账户删除功能的操作路径可以有助于简化审核过程。
Q:有做三方关联的账号数据,是否需要到三方平台进行解绑?
A:这点目前并没有看到有强制要求,比如 App 接入了微信登录,这时候我们只需要将自己平台的用户数据删除干净即可,在第三方平台有提供接口的情况下尽量解绑,但并没有强制要求需要去微信清除微信平台的绑定数据。
Q:App 里有账号找回功能,我们的账号删除功能是否可以不清除完整数据?
A:账号删除功能与账号找回功能,并不能混为一谈。账号删除功能就必须保证用户数据是完全被删除的,如果需要保留账号数据,则应该另外提供功能服务(比如提供账号锁定之类的功能,明确告知用户之后可以找回数据),但不能混在账号删除里做。
不同分发方式对应的审核条款
现如今,苹果公开提供分发 App 的方式一共有四种:
- Apple Business Manager(ABM) and Apple School Manager(ASM)
- Unlisted app distribution
- TestFlight Public Link
- App Store
这几种方式对应的审核条款都是一样的,但实际审核过程中,会对不同方式的审核重点做一定的调整。它的目标是让您的 App 尽快到达你的测试用户手中,所以并非所有的审核条款都会在这个过程被审核。TestFlight 审核通过并不意味着 App Review 的审核也会自动通过。您在最终递交审核之前还是要确保您的 App 满足所有 App Review 审核条款要求。ABM 的审核,则对账号登录这块并没有那么严格;Unlisted app 属于正在尝试的一种分发方式,目前经验有限,不过大体是和 App Store 差不多的要求。
开发者账号
封号
苹果对违规账号的打击力度一直是很大的,一方面我们要遵守相关审核条款,不做违规的事,并且保证账号相关联的信息也不会被其他违规账号所牵连。如果确实遇到账号不知为何被封,可以联系苹果团队进行核查申诉,若证明被误伤,可以恢复。
企业账号续费
今年苹果继续进一步整治企业账号滥用的情况,体现在我们这里的就是企业账号续费需要进行额外申请了。几个读者群里前阵子都有一些读者在咨询,我们结合操作经验也做一些分享。
- 续费问卷一定要好好填,说明我们使用企业账号的必要性和合理性,可以用中文。
- 问卷填写后的审核周期可能比较长,我们了解过的基本都需要 2-4 周左右才会有进展,因而不用太着急。
- 如果确实临近企业账号到期时间了,可以联系苹果账号团队进行沟通,希望加快进度或者在申请没有结果前延长已有账号的有效时间。
接下来我将给各位同学划分一张学习计划表!
学习计划
那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:
阶段一:初级网络安全工程师
接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。
综合薪资区间6k~15k
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?
阶段二:中级or高级网络安全工程师(看自己能力)
综合薪资区间15k~30k
7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。
零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;
Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完
用Python编写漏洞的exp,然后写一个简单的网络爬虫
PHP基本语法学习并书写一个简单的博客系统
熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)
了解Bootstrap的布局或者CSS。
阶段三:顶级网络安全工程师
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
学习资料分享
当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份【282G】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。