在App出海历程中,账号关联问题始终困扰着广大出海开发者,而账号资料和App代码又是其中最容易关联的两点。
App代码混淆在上架合规中扮演着举足轻重的角色,作为一位出海老兵,在工作中积攒了一些代码混淆相关的实用工具,希望分享出来供大家参考。也希望大家不吝赐教,共同解决好App代码关联问题。谷歌上架必备混淆工具推荐,建议转发收藏,期待共同维护一份更全的代码混淆工具List!

一、Android自带混淆工具是ProGuard
通过ProGuard混淆,代码中的类名、方法和变量名会被替换成无意义的短名称,从而降低代码的可读性,可维护性及代码重复率。
我们也可以自定义混淆(字典)规则,以为来实现同一份代码混淆后的路径不一致。建议大家也不要传Mapping文件到Google后台。
官网介绍:https://developer.android.com/build/shrink-code?hl=zh-cn
二、AndResGuard
ProGuard是针对代码的混淆,AndResGuard只针对资源。他会将原本冗长的资源路径变短,例如将res/drawable/logo变为a/b/c 。
开源项目地址:https://github.com/shwenzhang/AndResGuard,对于海外App来说比较鸡肋。https://ndResGuard/
三、AabResGuard
从功能上讲,它和上面的AndResGuard是类似的。因为海外发包必须是aab格式了,所以AabResGuard对我们的作用更大一些,它以aab开头,代表它可以直接对已经打包好的aab文件进行资源混淆操作。但小编曾经测试过,一个图片改名前和改名后,sha1值是一样的,所以如果真要防关联,只改名是不行的。
开源项目地址:https://github.com/bytedance/AabResGuard
四、XmlClassGuard
我们把它可以看成是Proguard的辅助助手,它可以混淆所有的java代码,包括4大组件。它的主要功能是是混淆xml文件用到的类,因为我们知道各种xml文件(如layout,AndroidManifest.xml会用到各种java类 ),它就辅助混淆这些类的包名。它极大降低aab包查重率,能在一定程度上避免上架Google Play因查重率过高,导致下架或封号的问题。对于封过的包,我可以可以拿用XmlClassGuard混淆后的代码进行二次开发,还是有一定作用的。
开源项目地址:https://github.com/liujingxing/XmlClassGuard
五、StringFog
自动对dex/aar/jar文件中的字符串进行加密的Android插件工具,辅助开发者加密敏感字符串信息,避免因为Google的关键字过滤审查导致出现违规问题。
开源项目地址:https://github.com/MegatronKing/StringFog
六、App加固工具
对于App加固在代码合规方向的使用,行业从业人员争议很大,质疑有以下几大观点:
1. App加固有对抗审核的意图,会让Google觉得你在隐藏什么,增加审核风险。
2. Google要求上架的应用不能与其它已上架应用有相同的体验(包括代码),马甲包等重复应用上架会被拒绝,也有可能会因”账户关联”直接导致封号。Google为判定马甲包,对应用的内容(代码、图标、资源等)都做了一系列审核,由于App加固只暴露出壳代码,这个壳代码所有App的保护后代码几乎一致,一旦上架多个被保护的App,很容易被Google判定为重复应用。
3.大多App加固意味着动态加载Dex,而动态加载意味着有一定的审核风险。
本着技术无罪的原则,小编持保留态度,大家自行考虑。但小编在做竞品分析的过程中,发现很多App依然在使用国内的爱加密,顶像等App加固并常年在架。
如果要使用App加固,可自研或者寻找支持自定义加固代码的合作商。
虽然说了这么多,小编还是建议有能力有财力的企业还是得自行开发全新的App,这才是最保险的方式!!!
文章转自:趣浪出海