4.3 重复 App 请不要为同一个 app 创建多个套装 ID。如果您的 app 针对特定位置、运动队、大学等存在不同版本,请考虑提交单个 app,并提供 App 内购买项目以提供不同的功能。同时,请避免继续在已有大量类似 app 的类别下进行开发;App Store 上已经有太多模拟放屁、打嗝声音的 app,以及手电筒和爱经 app。上传大量相似版本 app 的开发者会遭到 Apple Developer Program 的除名。
有过向 App Store 提交 App 被拒经历的人,大概都听说过这个恐怖的 4.3 条款,下面做一个详细的介绍:
首先,搞清楚你是被人工审核拒绝,还是机器审核拒绝的。
你的应用进入审核(In Review)的时候,你会收到一封邮件,之后被拒绝(Rejected)的时候又会收到一封邮件。如果这两封邮件的时间差非常小,比如小于半小时,那么基本上就是被机审拒绝了,否则大概率是人工审核拒绝。另外如果你的项目里面复用了其他项目的代码,你自己心里也应该有数,
如果是被人工审核拒绝了,由于每次审核你的 App 的人可能不一样,可以直接尝试换个 BundleID 再次提交,如果屡次被拒,可能你不得不考虑一下更改一下 App 的 UI,包括但不限于导航方式、主题色、页面结构等等,或者干脆加点功能、砍点功能。
对于机审被拒,首先要做的一步是代码混淆。这个工作不是专门针对 4.3 条款的,项目本身为了防止被别有用心的人反编译,也是常常需要进行加固处理的。
对于纯代码层面的混淆,直接推荐你看这篇博客:https://blog.csdn.net/yiyaaixuexi/article/details/29201699,不同的手段所做的工作都差不多,难度也不高,无非就是让反编译出来的函数名、类名、变量名都显示为随机字符串。这篇博客里面的内容我已经实际使用、并提交 App Store 试过,亲测有效。
对于工程层面的混淆,要做以下几个工作:
前往你的应用的 AppStoreConnect 页面,在 TestFlight 栏目下,找到你之前提交过的构建版本,点击“将构建版本设置为过期”,这一步是必须要做的
之前填写过的关键词、开发者网站链接、App 名称、App 图标,全部换成无意义的随机内容,和你的真正内容不要有关联。如图,这种空置的 App 我已经有好多个了。
如果有条件的话,建议购买多个 App Store 开发者账号,使用空账号提交马甲包,避免在苹果那边沾染上不良记录,保证自己的主力盈利的账号不要被封号。
或者可以和其他同样被 4.3 条款折腾的开发者一起购买空闲账号,专门用来处理马甲包。
不确定自己的应用能不能通过 4.3 审核的时候,可以不用急着一次上线全部内容。
等通过审核之后,考虑到,你下次提交不一定还能过审,通过审核的应用一定不要“取消发布”,而是要让它在一个小地方先上线。等你确定你之后的更新要失败了,你没办法改代码了,再通过勾选地区的方式,让你的应用在其他地区上线。就算发一版,总比什么都没有要强。
不要迷信苹果,不要自我怀疑。上架 App 是商业行为,App Store 拒绝你上架不能说明任何问题。苹果公司能力极强,但是 App Store 的审核团队并不神圣。
不服就干,App Store 让你上架,你就是合理的;App Store 不让你上架,说明你能力不够,搞赢 4.3 条款,你就是赢家,千万不要因为被拒就觉得问题出在你自身,上有政策,下就有对策。