IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android 出海aab的资源混淆(兼容gradle7.0+) -> 正文阅读

[移动开发]Android 出海aab的资源混淆(兼容gradle7.0+)

由于项目出海, 需要对app进行各方面的混淆,避免马甲包,以及规避被恶意攻击的风险;? 其中一方面就是对资源的混淆, 发现了一个可用的库

https://github.com/bytedance/AabResGuard

但但是, 这个插件github上最新版本是 0.1.9, Gradle插件7.0+会报错:?

  • Type 'com.bytedance.android.plugin.tasks.AabResGuardTask' property 'aabResGuard' is missing an input or output annotation.
  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

不用担心, 网上已经有人给出了解决方式:

[Gradle issue] Gradle 7.0 编译问题 · Issue #75 · bytedance/AabResGuard · GitHub?

?没错,有人已经适配了gradle7.0并发布了0.1.10版本, 需要到特有的仓库去下载;

下面就是完整的接入流程:

1.首先添加插件依赖:

root/build.gradle

buildscript {
    repositories {
        google()
        mavenCentral()
        mavenLocal()
        maven { url 'https://raw.githubusercontent.com/martinloren/AabResGuard/mvn-repo' }
    }

    dependencies {
        //......
        //AabResGuard
        classpath "com.bytedance.android:aabresguard-plugin:0.1.10"
    }
}

2.自定义一个aab_proguard.gradle

apply plugin: "com.bytedance.android.aabResGuard"
aabResGuard {
    mappingFile = file("mapping.txt").toPath() // Mapping file used for incremental obfuscation
    whiteList = [ // White list rules
                  "*.R.raw.*",
                  "*.R.drawable.icon",
                  "*.R.string.default_web_client_id",
                  "*.R.string.firebase_database_url",
                  "*.R.string.gcm_defaultSenderId",
                  "*.R.string.google_api_key",
                  "*.R.string.google_app_id",
                  "*.R.string.ga_trackingId",
                  "*.R.string.google_crash_reporting_api_key",
                  "*.R.string.google_storage_bucket",
                  "*.R.string.project_id",
                  "*.R.string.*google*"
    ]
    obfuscatedBundleFileName = "duplicated-app.aab" // Obfuscated file name, must end with '.aab'
    mergeDuplicatedRes = true // Whether to allow the merge of duplicate resources
    enableFilterFiles = true // Whether to allow filter files
    filterList = [ // file filter rules
//                   "*/arm64-v8a/*",
                   "META-INF/*"
    ]

    enableFilterStrings = false // switch of filter strings
    unusedStringPath = file("unused.txt").toPath() // strings will be filtered in this file
    languageWhiteList = ["en", "zh"] // keep en,en-xx,zh,zh-xx etc. remove others.
}

3.引入插件以及配置:

app/build.gradle

    apply from:'aab_res_proguard.gradle'

4.执行打包aab, 生成的混淆后的aab在 build/output/bundle/xxxx/duplicated_app.aab

其他参考:

AabResGuard添加依赖总结_碧云天丶的博客-CSDN博客

AabResGuard from sebthom - DevPick.io

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-09-21 00:40:22  更:2022-09-21 00:42:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 5:48:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码