上架Google马甲包 思路 攻略 等

最后编辑时间: 2022-11-12

1.Google马甲封掉的大致原因

①. 上过马甲包的同学都知道,Google审核马甲包特别的严格变态,一般来说,审核时间越久,越容易出问题,通常都是机器审核后有问题,会交给人工审核, 一般机器审核差不多两到三个工作日,如果,三到四个工作日没出结果,十有八九这个马甲是有问题的

②. 关联问题,最为严重的和值得思考的问题,咋也不知道Google的审核是怎么判断关联的,个人通过上架很多马甲包得出这几个途径,

1:class文件高度相似,2:res资源文件和xml布局文件   3:后台数据返回格式  4:Google账号及环境   5:马甲UI   6:电脑关联

其实仔细想一想,差不多这几大类。

2.Google解决封掉办法

①:再此之前,可以了解下 Google混淆 这篇文章,提升马甲时间

②:想解决马甲被封,被关联,最重要的就是要新,最好不要和上一个马甲有任何关联,视作一个新包来看待

③:自己总结的几点经验:从项目来说 

1.必须要创建新的项目,创建新的包名,

2.项目中所有的lib和module最好打乱,路径子目录最好每次都打乱,

3.所有的类名,路径,xml中的id必须更换名字,res图片让ui更换MD5,马甲ui首页最好每次都换种不同的风格

4.混淆可以用上面这个,部分java类可以转kotlin,kotlin可以转转java等,保证最大程度与旧包不一致

5.关联问题: 每次必须用新的Google账号,包括电脑,上一个马甲,必须换掉电脑,每个电脑只能上架一个马甲包,每个电脑,每个马甲包,必须都要有一个大陆外的手机卡,用来测试,或者上架时,当作vpn来打包使用,也就是一个马甲包一个大陆之外得IP

6.最好不要测试,先上架,审核通过后,再从GooglePlay中下载测试,

7.新马甲项目,必须要在新的电脑上,创建jks文件,不要再自己电脑上创建,创建jks文件的时候,可以连接新手机(大陆之外的手机卡)进行创建,包括生成sha1和256及散列密钥,这些都要保证在新的设备上获取

8.打包aab的时候,也必须链接新手机(大陆之外的手机卡)进行打包。有些同学说vpn不行吗,说实话,如果做过vpn的话,就知道,这个真不行,不信可以用vpn进行打包,

9.大致就是:每个马甲都要对应一套新设备如:大陆之外手机卡   新电脑  新项目  新账户,以免产生关联     代码 目录结构,能多改就多改!ui,能变就变!数据返回格式,能改就改(不用太大改动,就比如每个马甲包返回的时候,外层再套一层大的data)!

3.XmlClassGuard混淆任意类,上架GooglePlay的杀手锏利器

 Google混淆  这个是大佬的最新的一篇混淆文章,可以用这个,节省时间

在这里,自己也用几次,打算把整个实现流程写下来,说实话,这个是真的很好用,希望后面的同学不要在这个地方踩坑,在这里就不过多描述了直接上步骤,简单易懂

1.万物万事先倒依赖

  maven{ url’https://raw.githubusercontent.com/martinloren/AabResGuard/mvn-repo’ }

classpath”com.bytedance.android:aabresguard-plugin:0.1.6″

classpath”com.github.liujingxing:XmlClassGuard:1.0.1″

2. 在app中添加,多module中,其余的不用配,只需要在app中

applyplugin:”xml-class-guard”

applyfrom:’aabresguard.gradle’

3.运行

4.这个工具需要在新版上运行  要下载最新版as,gradle必须是7.2  别的版本会报错  as官网


如有报错,或者 xml-class-mapping.txt 文件抱错,请在评论区留言,

最后,aabresguard 白名单配置,在app目录下   如下,,请自行创建白名单文件,这里发不了

applyplugin:”com.bytedance.android.aabResGuard”

aabResGuard{

//    mappingFile = file(“mapping.txt”).toPath() // 用于增量混淆的 mapping.txt 文件

    // 白名单规则

    whiteList = [

“*.R.raw.*”,

]

obfuscatedBundleFileName =”mua.aab” // 混淆后的文件名称,必须以 `.aab` 结尾

    mergeDuplicatedRes =true // 是否允许去除重复资源

    enableFilterFiles =true // 是否允许过滤文件

    // 文件过滤规则

    filterList = [

“*/arm64-v8a/*”,

“META-INF/*”

    ]

enableFilterStrings =false // 过滤文案

    unusedStringPath = file(“unused.txt”).toPath()// 过滤文案列表路径 默认在mapping同目录查找

    languageWhiteList = [“en”,”in”]// 保留en,en-xx,zh,zh-xx等语言,其余均删除

}

请在下方留下您的评论.加入TG吹水群