Flutter如何打包APK并混淆代码

我想用Flutter开发一个Android应用,但不知道如何打包生成APK文件。听说发布前还需要混淆代码来保护源码,具体该怎么操作呢?能否详细说明从打包到混淆的完整流程?包括需要修改哪些配置文件、使用什么命令以及需要注意的事项。

2 回复

使用Flutter打包APK并混淆代码的步骤:

  1. 运行 flutter build apk --release 生成发布版APK
  2. android/app/build.gradle 中启用混淆:
    android {
      buildTypes {
        release {
          minifyEnabled true
          shrinkResources true
          proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
      }
    }
    
  3. android/app/proguard-rules.pro 中添加Flutter特定规则,避免误删必要代码。

更多关于Flutter如何打包APK并混淆代码的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中打包APK并混淆代码,请按以下步骤操作:

  1. 配置混淆规则

    • android/app/build.gradle 文件中,启用混淆并添加规则:
    android {
        buildTypes {
            release {
                signingConfig signingConfigs.debug // 或配置自己的签名
                minifyEnabled true   // 启用代码混淆
                shrinkResources true // 移除未使用的资源
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
  2. 编辑混淆规则文件

    • android/app/proguard-rules.pro 中添加Flutter和依赖库的保留规则:
    # 保留Flutter相关类
    -keep class io.flutter.app.** { *; }
    -keep class io.flutter.plugin.** { *; }
    -keep class io.flutter.util.** { *; }
    
    # 保留插件和平台相关代码
    -keep class com.your.package.name.** { *; }
    
    # 通用Android规则
    -dontwarn android.**
    -keepattributes Signature, InnerClasses, EnclosingMethod
    
  3. 构建APK

    • 在终端运行以下命令:
    flutter build apk --release
    
    • 生成的APK位于 build/app/outputs/apk/release/app-release.apk

注意事项

  • 混淆可能影响第三方库,需在 proguard-rules.pro 中添加相应保留规则。
  • 测试混淆后的APK,确保功能正常。
  • 如需优化,可使用 --split-per-abi 生成特定架构的APK。

通过以上步骤,即可完成APK打包和代码混淆。

回到顶部