Flutter 混淆打包,签名等问题
来源:flutter.dev 更新时间:2023-05-25 21:55
签名:构建和发布为 Android 应用-签名 - Flutter 中文文档
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 就被签名了。
使用如下命令:
-
输入命令
cd [project]
- 运行
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 --split-per-abi --obfuscate --split-debug-info=./symbols
ios:
flutter build ios --obfuscate --split-debug-info=./symbols