Google Play 开发者账户被封 如何改代码快速上架

本篇不保证百分之百成功,但至少在我们内部,此操作是成功上架到Google Play 并保持超半年还在的。

下面聊聊具体的步骤措施

1. App Name

取一个跟之前不一样的就行,建议拿到名字上相关网站搜一下,同名是否多,尤其是有存在且对方已做商标保护的,那就更加不要同名了

参考:https://apkcombo.com/zh/
需VPN

2. 包名

同样,取一个跟之前不一样的

同时,比如公司名称简称sl,建议包名中就不要有sl了

eg:com.sl.appname 此类就不建议

3. Logo

设计一个新的即可

4. 签名

重新生成一个新jks文件、密码和名称都变更下,与之前的不要有关联

比如公司名称简称sl,建议jks中就不要有sl了

5. 域名

买一个新的域名使用,一个app一个单独域名

6. 项目结构目录

调整下结构目录,比如名称、嵌套顺序等

7. 文件名(类名、布局文件名、资源文件名)

修改所有的类名、布局文件名、资源文件名

8. 如果有相应的依赖Module

也做包名、项目结构目录、文件名调整

9. UI

尤其是启动页、首页、尽量重新设计,主题色最好与之前有较大变化

10. 图标

图标的文件名必须全部修改
单纯修改文件名,一个文件的md5其实不会变,需要修改文件的内容

还可以对图片进行压缩、格式转换,png convert to webp

or webp convert to png

11. 布局文件的控件id

比如之前是btn_login,调整为btn_submit等

12. 布局文件的控件类型

比如之前是LinearLayout,调整为androidx.appcompat.widget.LinearLayoutCompat

比如之前是TextView,调整为androidx.appcompat.widget.AppCompatTextView

13.strings.xml

比如之前是

<string name="log_pwd" translatable="false">Password</string>

调整为

<string name="log_title_pwd">Password</string>

14. 代码混淆

可参考1:https://github.com/king-ma1993/AndroidProguadRules

建议对bt-proguard.txt内容进行相应替换,每个app保证混淆的内容不一样即可

Android超级变态的混淆词典

常规abcd等混淆方式对逆向的干扰程序并不是很大,所以需要一个变态的字典,使用方法如下:

在proguard-rules.pro文件中进行配置

-obfuscationdictionary bt-proguard.txt
-classobfuscationdictionary bt-proguard.txt
-packageobfuscationdictionary bt-proguard.txt

可参考2:https://github.com/bytedance/AabResGuard/blob/develop/wiki/zh-cn/README.md

对aab包的资源处理

15. ARouter

如果使用了ARouter 路由框架,建议做相应修改

比如之前路由表

const val HOME: String = "/app/home"

调整为

const val INDEX: String = "/newapp/index"

16. 接口映射

举个例子

比如之前登录接口是

@POST("sl/app/login")
suspend fun login(@Body params: HashMap<String, String>): NetResult<LoginResultEntity>

调整为

@POST("ax/FEW/MQx")
suspend fun loginInter(@Body params: HashMap<String, String>): BaseResult<LoginEntity>

可以看到有几个变化

1、接口请求的具体地址变了

2、请求返回的NetResult变了

3、请求返回的实体名称也变了

4、接口请求的方法名也变了

如果内部有多个app,每个app生成的具体请求地址都是不一样的

同时每个app都有相应的请求头

比如之前是

val map = HashMap<String, String>()
map["appName"] = "AppName"

调整为

val map = HashMap<String, String>()
map["xAfew"] = "AppName"

最后再进行加密

17. 未混淆的类(实体类等)

比如之前是

data class LoginResultEntity(
    val token: String? = "",
    val avatar: String? = ""
)

调整为

1、名称变更

2、增加垃圾字段

data class LoginEntity(
    val a="",
    val b="",
    val token: String? = "",
    val avatar: String? = "",
    val c=""
)

18. 垃圾代码

加点垃圾代码

可参考:https://github.com/qq549631030/AndroidJunkCode
唯一注意的是,混淆对相应垃圾代码保持不被混淆

19. 变量、方法名

大部分的变量和方法在混淆都是被重命名的

尤其注意的是打包的aab文件中,没有被重名的,进行相应修改

可通过工具 jadx-gui 进行查看

20. 三方库

相关三方库升级、或者用其他相关库替换

21. 三方SDK key

关于使用的一些三方SDK

比如AppFlyer,新建一个App 会有一个dev key,App Flyer 默认每个app 的 dev key都是一样的,可联系对应商户更改

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值