前言:内容大幅度参考了网上一些博客 + 亲自实践。若文末忘记注明出处,请见谅,留言修改..
为什么制作马甲?
-
防止app因为违规被苹果下架后"一无所有"
付费视频类,彩票类的app多少都会违反苹果的一些规范有被下架的风险,马甲包可以在app被下架的时候顶上去,那什么情况下会被下架呢- 之前审核的时候用到开关,审核过了之后APP的内容和审核时的内容差异较大,苹果复查的时候发现被下架
- 用户举报,被下架
- 竞品方举报,被下架
-
为主app导入流量,因为马甲包一般和主app用的是同一套后台,用户数据上是互通的,可以通过在马甲包里添加跳转链接等方式引导用户去下载使用主app,往主app里导入流量
-
广撒网,增加收入.
之前做过付费视频APP,其实那个时候付费视频的黄金期已经快过了,上架的第一个APP通过做aso优化,一天的用户充值可以达到15000左右,但是再想提高充值就很难了(针对我们当时APP的情况).但是再上架一个功能一样马甲包,通过aso优化很轻松就能做到日充值10000左右,可以脑洞大开一下如果上架100个马甲包会是一种怎样的体验.其实一般的小公司能做上架七八个就很够用了,日流水近10万,很可观了
其实苹果2018年5月份之前对马甲包的审核力度还不是很大,但是七月份之后苹果对马甲包的审核处理力度增大了很多.是因为在这期间世界杯的到来,很多博彩类的app马甲包上架,这种情况也被央视报道,说苹果审核不够严谨,应用市场上充斥着大量的马甲包,导致应用市场混乱,引起了苹果的重视,大量下架了这类app,理所应当马甲包的上架审核也严格了很多.
在这之后马甲包上架就更加困难了,苹果对代码层面的审核也严格了很多,所以马甲包的代码混淆就要比之前力度更大,包括资源文件,费代码,混淆都要尽量多的添加和修改.马甲包的功能也要尽可能的完善丰富起来(功能单一容易被2.1大礼包),而且这些功能不能太大众化,同类产品也很用可能用类似的马甲.
解决两个问题
2.1 : 说是违反了一个或多个应用市场规则,一旦跟马甲包、棋牌、彩票等扯上关系(比如关键词含有赌博、竞彩等),都将会上标记,进入机审流程,最后以2.1理由批量拒绝。
4.3 : 应用程序提供了与提交给App Store的其他应用程序相同的特性集;它只是内容或语言不同,这被认为是垃圾邮件的一种形式
-
混淆 脚本混淆 念茜-OC代码混淆
注意:添加混淆作用的头文件(这个文件名是脚本confuse.sh中定义的)
#import "codeObfuscation.h" 需要自己手动addFileTo…被拒,苹果新规:不允许使用这种脚本混淆了。违反了2.3.1,说有隐藏功能,base64加密API肯定不能再使用了,苹果都说了,加密特征太过明显。
### Guideline 2.3.1 - Performance
We discovered that your app contains hidden features. Specifically, it would be appropriate to remove all code obfuscation and selector mangling or to explain in detail the purpose of its inclusion before resubmitting for review.
The next submission of this app may require a longer review time, and this app will not be eligible for an expedited review until this issue is resolved.
**Next Steps**
- Review the Performance section of the [App Store Review Guidelines](https://developer.apple.com/app-store/review/guidelines/).
- Ensure your app is compliant with all sections of the [App Store Review Guidelines](https://developer.apple.com/app-store/review/guidelines/) and the [Terms & Conditions](https://developer.apple.com/terms/) of the Apple Developer Program.
- Once your app is fully compliant, resubmit your app for review.
Submitting apps designed to mislead or harm customers or evade the review process may result in the termination of your Apple Developer Program account. Review the [Terms & Conditions](https://developer.apple.com/terms/) of the Apple Developer Program to learn more about our policies regarding termination.
询问为什么说我们有隐藏功能的苹果回复:
Thank you for the response. Your app includes code obfuscation and selector mangling (ConfuseCode, it would be appropriate to remove all code obfuscation and selector mangling (ConfuseCode) or to explain in detail the purpose of its inclusion before resubmitting for review.
- 手动混淆
1. 修改项目名参考链接
2. 添加一些SDK
3. 修改类名(类前缀)
4. 修改图片名称
KLGenerateSpamCode
KLGenerateSpamCode 是一个应对苹果对重复应用的审核(Guideline 4.3 Design Spam)的工具,用于避免苹果机审检测概率。
主要功能有:
- 修改工程名
- 修改类名前缀
- 扫描工程中的代码,生成同等数量的 Category 文件,文件中及是同等方法数量的垃圾代码。
- 修改 xxx.xcassets 文件夹中的 png 资源文件名。
- 删除代码中的所有注释和空行(这个貌似没什么必要)。
审核流程
# 机审:
- APP工程重命名
- 文件夹名、文件名重命名:类前缀
- API(方法名、属性):方法名前缀
- 添加大量的垃圾文件(只添加,不引用好像也不行,可以创建一些view/model 不添加显示)
- 往之前的代码中添加废代码,进行混淆(记住添加注释是没有用的,)
- 资源文件的属性进行修改,就是md5编码与之前的资源文件不同(其实很简单,让ui把素材放入ps中再重新导出就可以了)
由此可见:+类前缀、方法名前缀是有多重要...
# 人审:
1.UI界面尽量跟之前有大的区别(这里可以做开关)
2.修改截图,icon,logo,ui,ue,url,界面风格,配色
3.马甲包功能不能太简单容易被苹果送上2.1大礼包
说起来简单:就是代码尽量多的混淆,跟之前包的代码有大的区别.马甲包内容尽量与众不同,功能尽量完善
做起来难:做一个完美的马甲包其实跟做了一个新的App差不多了
关于审核流程:
第一种机器审核(主要是App代码上、App相关资料方面)
被拒信息一般都是:
Guideline4.3 - Design - Spam(找技术改代码)
Your app duplicates the content and functionality of apps submitted to the AppStore, which is considered a form of spam.
这种主要是对App进行扫描,就和我们毕业论文查重一样,针对关键性信息进行匹配,当这个匹配度超过一定的比例,苹果就会认为重复应用。
在代码层级上来查,现在苹果应该是已经达到全面扫描二进制文件,从中提取技术特征,有种查杀病毒的赶脚。比较明显的就是现在游戏App如果接入了某宝或者某信的支付SDK,那么这种包体必定会被拒,这就是苹果预先对一些带有第三方支付的sdk采集技术特征,然后机器扫描你是否接入了这个SDK。
如果是资料的话,无非是苹果的两个开发者后台(http://developer.apple.com/和http://itunesconnect.apple.com/)上的信息,这种和代码层上排重差不多,同样是提取特征值。
具体是上面那种原因被拒,根据我上包的经验来看,如果是从提交审核到拒审的时间间隔较短,那么很大可能就是资料上的重复导致。这种情况下,我们需要对我们的资料进行排查了。如果间隔时间较长,那么这种就一定是代码的问题,我们就需要在对代码进行混淆、垃圾代码等操作,反正必须改变特征比例。
第二种人工审核(对APP的内容、功能进行核验,防止APP有bug,防止APP模仿其他应用,内容与其他APP重复)
被拒信息一般都是:
Guideline4.3 - Design - Spam (改UI)
Wefound that your app provides the same feature set as other apps submitted to the App Store, which is not appropriate to the App Store.
这种在我看来,就是界面、功能、app名称等,和其他的App太相似了,审核人员一看就觉得是个马甲包;另外一种就是审核人员可能只是怀疑,这种我们就稍微进行假页面的添加、修改下前期的UI界面,如果这种还被审核人员查到了,就需要申诉,说明我们不一样。
第三种 名字等相似度过高
名字相似度太高,很多产品或运营同学经常是这个账号被拒太多次之后,就转移到另一个账号去上,同时又没有将原来账号里的APP作废,这样就导致4.3问题的出现。要记得,如果是要重新在其他账号上架,一定要关注名字、icon以及代码的问题。
关于审核时间:
只要出现4.3或2.1 全都出现了审核延迟,大概7-10天左右再会审核的.所以花了这么长时间,而创建了新的应用,就不会延时.基本上当天晚上就会审(周未除外)
关于应用相似度
应用全是做电商类的,原生代码都是封装了第三方的,也都一样,因为是外包公司,底层都一样,一个框架开发出来的.前端UI及JS方面.50%差不多,每款应用都有进行了修改,一般改动的是30%-50%.
其它说明
我们的应用也不属于马甲包吧,外包公司,制定了一套模块或是封装了一些代码,拿来重用,界面部分都是定制的.苹果要死认定是我是重复应用,我这也是百口莫辨,无奈只有不断提交上次,不断尝试. 实在上架不了,技术也要另寻高就了.为了糊口也没有办法.
结论:
旧应用进行更新上架,两次是100%一晚通过, 新应用,只要当前账户有被拒了4.3 再创建了新的,也会被拒4.3。比较危险的情况是:一个开发者账号下,存在过一直因为4.3的原因审核被拒,再在这个账号上提交马甲包,很容易被推迟审核或则再次因为4.3被拒,最好放弃这个账号,采用新账号去提交审核。
https://www.vincents.cn/2018/10/24/ios-hikari/
https://www.niaogebiji.com/article-17212-1.html
网友评论