跳到主要内容

Flutter 混淆打包,签名等问题

管

管理员

https://flutter.dev/docs/deployment/android#enabling-proguard

2021年06月13日 3,489 次阅读
本页目录

签名:构建和发布为 Android 应用-签名

keytool -genkey -v -keystore C:\Users\Administrator\upload-keystore.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias zhijian


keytool -importkeystore -srckeystore C:\Users\Administrator\upload-keystore.jks -destkeystore C:\Users\Administrator\upload-keystore.jks -deststoretype pkcs12


构建一个 APK

虽然 app bundle 比 APKs 更被推荐使用,但是有一些 Store 目前还不支持 app bundle方式。这种情况下,要为各种目标 ABI (Application Binary Interface) 分别构建发布的 APK 文件。

如果你完成签名步骤, APK 就被签名了。

使用如下命令:

  1. 输入命令 cd [project]

  2.  运行flutter build apk --split-per-abi  (flutter build 默认带有 --release 参数)。
     

          这个命令会生成如下三个 APK 文件

  • [project]/build/app/outputs/apk/release/app-armeabi-v7a-release.apk
  • [project]/build/app/outputs/apk/release/app-arm64-v8a-release.apk
  • [project]/build/app/outputs/apk/release/app-x86_64-release.apk

如果移除 --split-per-abi 将会生成一个包含 所有 目标 ABI 的 fat APK 文件。这种 APK 文件将会在比单独构建的 APK 文件尺寸要大,会导致用户下载一些不适用于其设备架构的二进制文件。



经过测试 flutter最新版 (2.2.3) 默认添加:“--no-shrink” 表示不混淆代码(如下图:)

所以安卓同样需要加上 --obfuscate --split-debug-info=./symbols 命令才能混淆
 

最终命令:

android:

flutter build apk --release --split-per-abi --obfuscate --split-debug-info=./symbols --extra-gen-snapshot-options=--save-obfuscation-map=out/android/map.json

ios:
flutter build ios --release --obfuscate --split-debug-info=./symbols --extra-gen-snapshot-options=--save-obfuscation-map=out/android/map.json

相关

相关文章

同分类文章 →
2026年10月31日 flutter

`auth()->id()` 到底返回谁?Sanctum 多态令牌与双会员系统的踩坑记录

## 引子先看一段看起来很正常的代码:```php$userId = auth('sanctum')->id();if ($userId) {    $res['isLiked'] = $this->likes()        ->where('user_id', $userId

2026年07月28日 flutter

Dart 3 记录(Records)和密封类(Sealed classes)

Dart 3 引入了几个极其强大的语言特性,其中最耀眼、对我们日常开发改变最大的就是 记录(Records) 和 密封类(Sealed classes),它们配合 模式匹配(Pattern Matching),让 Dart 的表现力达到了现代编程语言(如 Swift、Kotlin、Rust

2026年06月29日 flutter

flutter的 Clean Architecture架构设计

Clean Architecture(清晰架构)是一种将应用程序分层的设计模式,强调关注点分离与依赖规则,通过将业务逻辑与框架、UI、数据源解耦,提升代码的可测试性、可维护性与可扩展性。在 Flutter/Dart 环境下,Clean Architecture 通

微信

扫码加我微信

微信二维码