专栏首页KyXu马甲包指南 - 攻克 App Store 4.3 条款

马甲包指南 - 攻克 App Store 4.3 条款

4.3 重复 App 请不要为同一个 app 创建多个套装 ID。如果您的 app 针对特定位置、运动队、大学等存在不同版本,请考虑提交单个 app,并提供 App 内购买项目以提供不同的功能。同时,请避免继续在已有大量类似 app 的类别下进行开发;App Store 上已经有太多模拟放屁、打嗝声音的 app,以及手电筒和爱经 app。上传大量相似版本 app 的开发者会遭到 Apple Developer Program 的除名。

有过向 App Store 提交 App 被拒经历的人,大概都听说过这个恐怖的 4.3 条款,下面做一个详细的介绍:

  • 【马甲包】指的是内容几乎一样,只是主题色或者是名称等不重要信息略有改动的雷同 App。
  • 【4.3 条款主要针对谁】一方面源于很多大公司希望批量产出类似 App 进行 A/B 测试;另一方面源于很多小产品希望通过对相同的产品用不同的关键词来进行宣传,获取更多的流量(同一个 App,上 10 个马甲包,收入增 10 倍);这些行为破坏了 App Store 的生态,导致苹果会用非常严格的手段来进行打击。
  • 【4.3 条款麻烦在哪】第一点在于这个条款宁可错杀也不放过,就算你什么错都没犯,也很可能被误伤。 第二点在于,简单的修改是不足以绕过这个条款的,一旦遭遇它,后面无论你怎么修改,再次重新提交也几乎没有通过审核的可能。
  • 【4.3 条款并不是完全搞不定】如今上架马甲包已经变成了很多公司的一个常规性业务,只要手段合适,是可以进行一定的规避的。
  • 【什么情况可能导致遭遇 4.3 条款】提交 App 给人工审核之前,会先经过一次机器审核,基本上就是个反编译的过程。如果项目里面大量复用了其他 App Store 上线项目的代码,会被机器审核回绝;如果产品形态和其他现有 App 几乎一致,会被人工审核拒绝。

判定拒绝来源

首先,搞清楚你是被人工审核拒绝,还是机器审核拒绝的。

你的应用进入审核(In Review)的时候,你会收到一封邮件,之后被拒绝(Rejected)的时候又会收到一封邮件。如果这两封邮件的时间差非常小,比如小于半小时,那么基本上就是被机审拒绝了,否则大概率是人工审核拒绝。另外如果你的项目里面复用了其他项目的代码,你自己心里也应该有数,

如果是被人工审核拒绝了,由于每次审核你的 App 的人可能不一样,可以直接尝试换个 BundleID 再次提交,如果屡次被拒,可能你不得不考虑一下更改一下 App 的 UI,包括但不限于导航方式、主题色、页面结构等等,或者干脆加点功能、砍点功能。

工程混淆

对于机审被拒,首先要做的一步是代码混淆。这个工作不是专门针对 4.3 条款的,项目本身为了防止被别有用心的人反编译,也是常常需要进行加固处理的。

对于纯代码层面的混淆,直接推荐你看这篇博客:https://blog.csdn.net/yiyaaixuexi/article/details/29201699,不同的手段所做的工作都差不多,难度也不高,无非就是让反编译出来的函数名、类名、变量名都显示为随机字符串。这篇博客里面的内容我已经实际使用、并提交 App Store 试过,亲测有效。

对于工程层面的混淆,要做以下几个工作:

  • 项目里面的文件目录、子文件夹排列等,尽可能改动要大,完全打乱最好
  • 所有图片、音频资源文件名,建议批量修改,为了便于批量处理,可以加上较长的前缀,比如“CodeExampleTest_123.mp3”
  • 类名、变量名也建议批量重构,Xcode 自带了 Refactor - Rename 的重命名功能,直接加上前缀处理起来很快
  • BundleID 一定要换,作为一个新 App 重新提交,并且最好和之前的 BundleID 差别较大

App Store Connect 清理工作

1. 清理二进制文件

前往你的应用的 AppStoreConnect 页面,在 TestFlight 栏目下,找到你之前提交过的构建版本,点击“将构建版本设置为过期”,这一步是必须要做的

2. 清理 App 信息

之前填写过的关键词、开发者网站链接、App 名称、App 图标,全部换成无意义的随机内容,和你的真正内容不要有关联。如图,这种空置的 App 我已经有好多个了。

3. 换账号

如果有条件的话,建议购买多个 App Store 开发者账号,使用空账号提交马甲包,避免在苹果那边沾染上不良记录,保证自己的主力盈利的账号不要被封号。

或者可以和其他同样被 4.3 条款折腾的开发者一起购买空闲账号,专门用来处理马甲包。

分阶段测试审核

不确定自己的应用能不能通过 4.3 审核的时候,可以不用急着一次上线全部内容。

  1. 内容上 在内容上只上线最最核心的东西,第一次提交,能不要的东西都可以不要,比如设置页什么的。这样万一你后续提交的都被拒,那么这一版可能成为你相当长时间无法更新、甚至永远都无法更新的一个版本,你要保证它起作用。
  2. 信息上 一开始的版本,除了要把 ASO 的关键词写好之外,截图、App Store 描述可以都只放最最基本的内容,争取先把第一关过了,后面更新再改这些内容,哪怕代码不动,直接通过发版来更新这些内容也行。
  3. 地区上 一开始上线,想碰审核的时候,上线地区可以不要选择所有地区,可以只随便选择一个地区,尽量保证过审。这个地区在你的 App 上架之后是可以随便改的,所以你一开始不妨就让它在一个语言不通的小国家上线,反正也不会有人用。

等通过审核之后,考虑到,你下次提交不一定还能过审,通过审核的应用一定不要“取消发布”,而是要让它在一个小地方先上线。等你确定你之后的更新要失败了,你没办法改代码了,再通过勾选地区的方式,让你的应用在其他地区上线。就算发一版,总比什么都没有要强。

最后

不要迷信苹果,不要自我怀疑。上架 App 是商业行为,App Store 拒绝你上架不能说明任何问题。苹果公司能力极强,但是 App Store 的审核团队并不神圣。

不服就干,App Store 让你上架,你就是合理的;App Store 不让你上架,说明你能力不够,搞赢 4.3 条款,你就是赢家,千万不要因为被拒就觉得问题出在你自身,上有政策,下就有对策。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【教你赚钱】5 分钟教你成为会赚钱的独立开发者

    在过去的几个月里,我辞掉了北京的工作,断更了从大二就开始坚持写的技术博客,从一个大公司里面的 iOS 工程师,变成一个在家忙忙碌碌的独立开发者。

    KyXu
  • 【iOS开发】发布 Widget App 注意事项

    在被 App Store Review 拒绝了一次之后,我的一款 Today Widget App 上线了,把过程中遇到的坑分享出来。

    KyXu
  • 【iOS开发】App 上架相关事宜、解决技巧

    在这篇文章中介绍一下,在 App 已经做完之后,到出现在 App Store 之前这段时间,可能需要了解的知识和会用到的技巧。

    KyXu
  • iOS14新特性探索之一:App Clips轻应用

            App Clips是苹果WWDC 2020所发布的iOS 14新特性中最具焦点的一项功能。一经曝光,就引发了互联网上针对其特性的各种讨论。有人说...

    珲少
  • 2017年Q1季移动App使用情况分析

    2017年Q1全球网站流量监测机构发布了Android首次超过Windows成为第一大操作系统,这是自20世纪90年代来Windows首次被对手超越。 在中国A...

    腾讯大数据
  • 决战下半场:小程序技术助力金融APP重回C位

    本文不是一篇纯技术文章,想与IT、电商、互金、网金以及负责数字化运营的部门同侪们一起探讨一下App的数字化建设。

    凡泰极客
  • 银行、券商们的下一代App该往哪里走?

    传统金融机构们的App——尤其以手机银行、手机证券为最,发展到今天,已经产生一系列的问题:从用户角度看,体验普遍不好、高度同质化;从业务运营角度看,几乎没有什么...

    凡泰极客
  • 处境艰难的 App 开发者们如何自救

    这是我朋友的公司不再研发原生 App 的原因——在网页端创业简单的多。怎么会这样呢?基于浏览器的网页端生态系统已经存在了 20 多年,而 App 系统却仅存世 ...

    非著名程序员
  • 分析了 6000 款 App,竟有这么多佳软神器没用过

    摘要:在《6000 多款 App,看我如何搞定她们并将其洗白白~》中我们详细地分享了有关Scrapy框架抓取App数据的流程,并对抓回来的数据作了进一步的清洗。...

    1480
  • 【教你赚钱】5 分钟教你成为会赚钱的独立开发者

    在过去的几个月里,我辞掉了北京的工作,断更了从大二就开始坚持写的技术博客,从一个大公司里面的 iOS 工程师,变成一个在家忙忙碌碌的独立开发者。

    KyXu

扫码关注云+社区

领取腾讯云代金券