一、 android 打包
更换图标和名称
![flutter 打包到各平台_flutter](//dev-img.mos.moduyun.com/20231113/e76b5149-d9f2-4cec-a7d1-171c9fa8c4f9.png)
创建秘钥库
mac/linux
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
Windows
keytool -genkey -v -keystore c:\Users\USER_NAME\key.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias key
执行
执行最后输入 y
![flutter 打包到各平台_Windows_02](//dev-img.mos.moduyun.com/20231113/0c341d57-73c0-435c-ac77-753ae68e9406.png)
home路径下回生成
![flutter 打包到各平台_android_03](//dev-img.mos.moduyun.com/20231113/91eb1e72-b0b0-4f11-b1e3-63bf7f711616.png)
文件
从应用程序引用密钥库
创建一个文件
![flutter 打包到各平台_Windows_04](//dev-img.mos.moduyun.com/20231113/3123cc4b-5fcf-408a-abbf-071459fcf78a.png)
storePassword=pw
keyPassword=pw
keyAlias=key
storeFile=/Users/meng/key.jks>
密码是刚输入的
配置/android/app/build.gradle文件
在android{ 之前添加
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
在android里加入
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
打包
命令行输入
打包时遇见几个错误
错误1
![flutter 打包到各平台_flutter_05](//dev-img.mos.moduyun.com/20231113/d72c914c-a984-4173-a2ed-67d2d0da3851.png)
搜了半天没找到解决版本,打开小飞机又 build apk 一下,好了!
错误2
![flutter 打包到各平台_flutter_06](//dev-img.mos.moduyun.com/20231113/a76f5cae-668f-4c19-a81c-dac382a8d17e.png)
这个是因为main函数没在main.dart 文件里,之后我把入口移动到main.dart里。解决了
成功后输出到以下路径
![flutter 打包到各平台_flutter_07](//dev-img.mos.moduyun.com/20231113/2d8f5b49-4db2-41ec-aec0-90944d901028.png)
android目录下的-
二、IOS打包
直接
![flutter 打包到各平台_android_08](//dev-img.mos.moduyun.com/20231113/6fc33ced-abac-4468-82a5-0417a8a9835d.png)
切换到xcode
![flutter 打包到各平台_flutter_09](//dev-img.mos.moduyun.com/20231113/4eecf90f-e884-4cab-8318-91a6b0fe6be2.png)
选择平台
![flutter 打包到各平台_flutter_10](//dev-img.mos.moduyun.com/20231113/5478fafa-bd0b-4752-aea6-580071f25c99.png)
distribute app,validate app 选择distribute app
![flutter 打包到各平台_Windows_11](//dev-img.mos.moduyun.com/20231113/08132f9e-66dd-4223-83c8-04635e88d2c6.png)
1.上传到苹果商店
2.
3.企业级账号
4.
------
![flutter 打包到各平台_android_12](//dev-img.mos.moduyun.com/20231113/ab632f30-2265-4af3-9498-6bd57a736821.png)
三、Web
1.安装flutter_web的编译工具webdev
flutter pub global activate webdev
设置web可用
flutter config --enable-web
未正式发布
四、Windows
flutter 1.22.0-10.0.pre.380
Dart 2.11.0
flutter config --enable-windows-desktop
用新版本的flutter创建一个app
![flutter 打包到各平台_android_13](//dev-img.mos.moduyun.com/20231113/d37fcb80-ab8c-4fd6-9f59-6e0409ed52c0.png)
生成后有windows文件夹
执行
打包
![flutter 打包到各平台_Windows_14](//dev-img.mos.moduyun.com/20231113/42f97a56-9acf-4495-a48a-296e14bd682f.png)