likes
comments
collection
share

Flutter 混淆打包以及一些注意事项

作者站长头像
站长
· 阅读数 70

混淆Dart代码

Flutter 1.16.2 以上默认支持混淆,不需要特殊设置,只需要在构建命令后面加上

--obfuscate --split-debug-info=/<project-name>/<directory>

具体可看官方文档:混淆Dart代码

构建发布包

具体配置请看官方文档(只有很少的配置,很简单):生成并发布Android应用生成并发布iOS应用

构建命令:

Android:

flutter build apk --obfuscate --split-debug-info=./symbols

Google目前建议Android使用 App Bundle 的发布格式,构建命令如下:

flutter build appbundle --target-platform android-arm,android-arm64,android-x64

有不知道 App Bundle 发布格式的同学可以查看官方文档(中文的): Android App Bundle 简介

iOS:

flutter build ios --obfuscate --split-debug-info=./symbols

注意:

  1. 如果不想混淆代码的话,iOS只需要去掉 “--obfuscate --split-debug-info=./symbols” 进行构建就可以了,Android 的话单独去掉 “--obfuscate --split-debug-info=./symbols” 是没有用的,需要在构建命令后面加上 “--no-shrink” 表示不混淆代码:
    flutter build apk --no-shrink
    
  2. 如果你的程序入口不是“main.dart”,而是像我一样改成“MyApp.dart”的话,需要在构建命令后面加上 “--target=lib/MyApp.dart” 指定程序入口:
    flutter build apk --target=lib/MyApp.dart
    或者
    flutter build ios --target=lib/MyApp.dart
    
  3. 在Android上如果你觉得生成出来的apk包太大,或者觉得只需要适配单独一种架构的手机就可以了,你也可以单独构建一种架构的apk包:
    flutter build apk --target=lib/MyApp.dart --no-shrink --split-per-abi
    或者
    flutter build apk --target=lib/MyApp.dart --no-shrink --target-platform android-arm,android-arm64,android-x64 --split-per-abi
    
    此命令会生成三种架构单独的apk包:app-armeabi-v7a-release.apk、app-arm64-v8a-release.apk、app-x86_64-release.apk,大大减少apk包的大小。

问题

转载自:https://juejin.cn/post/6909280872856289288
评论
请登录