过审AppStore到底有多痛,经历过就知道了!
攻略前情摘要
作者『风海铜锣』在苹果 AppStore 上架一款浏览器 App,历尽艰辛两次上架提审成功,在此分享其中经历的过程,希望对大家有所帮助。
本篇文章是作者前一篇《2021年注册新iOS开发者账号和上包经历记录 》的续集。
2021年遭遇苹果审核2.3.1的开发过审经历
作者:风海铜锣
在今年注册了新的开发者账号,并且审核一次通过后,万万没想到我要经历为期13天和2.3.1作斗争的经历。期间几度摸不着北,查阅了网上国内国外几十篇别的网友发的相关心得,并和各路网友交流,尝试了种种办法,最后总算艰难突破。所以觉得有必要水一篇文章记录一下经过。
首先介绍一下产品的基本情况。
产品类型:工具、浏览器
版本迭代:第二版
功能更新:追加视频嗅探和下载功能,产品改名
审核结果:2.3.1 和 4.3
首次改动
提交审核后立刻遇到2.3.1和4.3,对于4.3我是有丰富的心得经验的,这次产品名我原计划用某些热门词汇的”谐音词“来蹭一蹭前期热度,理论上这种做法属于可判可不判的灰色地带,但是既然判了,那也没什么好说的。所以立刻把产品名恢复为原来的产品名。
更关键的是2.3.1,如前所述,我在产品里追加了视频嗅探和下载功能,确实这是个非常敏感的功能,因为网络资源的下载涉及到一个版权敏感问题,此前我认为浏览器在这方面或许有一定的规避属性,大不了加个白名单,对于可能侵权的部分进行白名单处理即可,但是想不到苹果的审核反应竟是这么的明确。
这里贴一下本次2.3.1的内容摘要
Guideline 2.3.1 - Performance
We noticed that your app may contain hidden features, functionality, or content. Specifically, your app allows users to save or download music, video, or other media content without authorization from the relevant third-party sources.
没话说,这个功能宁可不要了,也要保住产品的正常迭代。
于是我立刻动手删除了视频嗅探的相关功能,再次提交审核。
反复被拒
接下去发生的事情,如果我一一记录,就显得过于冗余了。整个过程就是我删代码,然后苹果继续说我包含视频下载功能,我继续删,苹果维持原判。
最后,我不得不通过回复面板询问苹果究竟是什么情况,我已经彻底删除了和视频下载有关的代码,为什么还会说我包含视频下载功能?
我的措辞大致如下:
Dear reviewers, I have fully checked the code and removed the code related to video downloads as required, but the review was rejected. Can you provide some tips and what changes should I make?
而苹果的回复是清一色的:
Thank you for your reply. We continue to find that your app may contain hidden features, functionality, or content. Specifically, your app allows users to save or download music, video, or other media content without authorization from the relevant third-party sources.
往复回合持续了4到5次,直到我把有关联的代码清理的干干净净了,苹果依然直接给出了同样的答复。
发起申诉
事到如今我已经无计可施了,我想既然我已经自认有理了,没有必要卑微的不断自砍一刀。所以直接发起了申诉。
申诉文案大致如下:
As a browser, my app provides download functions provided by normal websites (such as online storage), and these downloads are considered permitted. For video sites, this browser does not provide any download function, nor does it allow users to download videos through any means, and only allows online viewing.
总的来说因为我的英文本就不太够用,这次表达总体来说是失败的。
才隔了一天,审核中心收到请求并确认处理后,立刻收到回复:
Guideline 2.3.1 - Performance
We noticed that your app may contain hidden features, functionality, or content.Specifically, your app includes content that is considered pornographic.
注意这句your app includes content that is considered pornographic,回复结果让人震惊,怎么反复拉锯的“视频下载”忽然变成了“色情”了。
继续被拒
围绕着新的审核结果,我又针对性的寻找和“色情”有关的蛛丝马迹。
由于浏览器默认会唤起百度首页,于是我怀疑是否是因为百度的新闻推送偶尔出现的软色情信息?于是直接把首页给替换了。
但是这样删改之后,审核结果却依然是:
Thank you for your reply. We continue to find that your app includes content that is considered pornographic.
这就很无语了,而且我也不服气了,因为实在不想用英语回复了,在咨询若干网友后,确认其实回复面板用中文回复也没什么问题后,我开始组织中文进行如下回复:
尊敬的审核人员,您好。
这一次我们再次收到审核被拒通知“Guideline 2.3.1 - Performance”,在这里澄清一下,我们未对本软件的任何内容进行隐藏,我们对应用第三方库实现也进行了复查(我们目前仅引入了一个第三方库),确认第三方库全部符合应用程序商店审查指南和苹果开发者计划条款。
且第三方库的隐私政策在这里:https://www.umeng.com/page/policy
关于您提出的“your app includes content that is considered pornographic.”,这一点我们非常不认同,我们开发的应用是一款浏览器。浏览器呈现的内容由网站决定,浏览器本身并不提供内容,更不可能擅自提供、隐藏色情内容!
尊敬的审核人员,如果您坚持认为我们的产品违规,可否请提供一下违规的具体提示,不管是截图、可能产生误会的敏感词等,这将对我们有莫大的帮助。
顺祝愉快。
次日凌晨,审核面板回复了,依然是被拒,但是文案却改变了:
Thank you for your reply. We continue to find that your app contains hidden features or functionality that can change the behavior of the app after review. To resolve this issue, it would be appropriate to ensure that all features and functions in the app are visible and fully accessible during review.
这次的文案只提隐藏特性,却没有提到“色情”和“视频下载”了。
忍无可忍的回滚版本
考虑到我第一版审核通过的如此顺畅,怎么到了第二版就这么艰难?既然如此,不如把代码回滚到第一版审核通过的版本。只保留两项改动
App Icon换成新的 。
App Store的关键字等更新 。
意想不到的是,提交审核后依然被拒:
Guideline 2.3.1 - Performance
We noticed that your app may contain hidden features, functionality, or content.
The App Store ecosystem is built on trust and users should never be misled about the apps they download. Attempting to hide features, functionality, or content in your app may lead to removal from the Apple Developer Program.
总而言之,又是2.3.1,但是不提具体原因,既没有说“色情”,也没有说“视频下载”。
持续回复的结果
到这里我开始寻思,第一版本审核通过了,说明产品本身的问题应该是不大的,第二版本提供了“视频下载”功能导致了2.3.1,原本无可厚非,但是后续不断修改后还一直驳回,即便回撤版本也不奏效了,那就说明开始时遭遇了规则明确的2.3.1后,后续的审核拒绝是某种审核惯性使然,已经不是改回第一版就能解决了。
出于这个考虑,我于是下定决心不再改动代码了,直接在回复面板和审核人员据理力争,中间经过两次继续遭拒后,我在回复面板中写下如下的话:
尊敬的审核人员,我不知道因为什么原因导致你会认为我开发的产品实现了某种“隐藏”特性,在此我必须声明,我开发的产品并没有任何主观设计的“隐藏”功能,我本人也强烈反对“隐藏功能”这一破坏市场秩序的行为。
但是确实不排除某些第三方库可能存在这类行为,因此我在引入第三方库时非常谨慎,目前引入的仅仅是
Umeng
和hpple
。(我会在附件提供这两个库的截图)。如果需要,我会果断移除这两个库的代码。但是目前经过我的考察,它们不大可能导致我的产品出现隐藏开关的情况。我在上网查阅资料时,得知某些产品因为代码中含有
WebView
以及evaluateJavascript
而触犯2.3.1规则,在此本人需要解释一下,本人开发的产品是一款浏览器,而浏览器通过WebView
实现基础功能,通过evaluateJavascript
实现脚本运行是合理且必要的。如果是因为这个原因导致2.3.1违规,我认为需要根据具体产品案例进行分析。如果是因为别的原因导致我的产品触犯了2.3.1,可否请你提供具体的细节,比如某些函数命名出现敏感词之类的,帮助我完成审核,这将对我帮助很大。
另外,提供一下我的手机号码 +86-xxxxxxxxx,如果你能电话联系达到更好的沟通效果,我会非常感激。
发出这篇冗长的回复后,静候消息,结果次日凌晨(2021-07-05),我居然收到了邮件。
The status of your app, xxxx, is now “Ready for Sale”.
以上就是本人这13天经历的审核历程,13天说长不长,苹果审核效率也是极高,除了发起申诉的那一次是两天时间,几乎每一次都是在当天夜里1到2天就出结果。但是整个过程却非常煎熬,所幸结局是美好的,总算通过了审核。相信经过这次后,接下去的审核会比较顺利……吧?
光是记录这一过程就说了那么多,在此期间我查阅了大量网上的经验,自己也做了不少总结。之后会单独开一篇进行记录。
- 完 -
Creator星球游戏开发社区,欢迎大家投稿分享技术,让我们链接到更多的伙伴,助力开发者技术精进,知识变现!