如何打包成App
Android
- 连接到模拟器
flutter run -d emulator
flutter run -d 127.0.0.1:62026
- 添加启动背景图
android/src/main/res/drawable
android/src/main/res/drawable-v21
将splash_screen_background.png复制到drawable目录下
替换layer-list标签中间部分
<item android:drawable="@drawable/splash_screen_background" />
- 支持刘海屏
android/src/main/AndroidManifest.xml
<!-- 支持刘海屏-->
<meta-data android:name="android.notch_support" android:value="true"/>
- 修改App名称、App图标、添加网络权限
android/src/main/AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:label="我的应用名称"
android:icon="@mipmap/ic_launcher">
</application>
- 修改快照名称
lib/main.dart
return MaterialApp(
title: "我的快照名称",
)
- 签名文件
keytool -genkeypair -v -storetype PKCS12 -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 100000
查看签名
keytool -v -list -keystore <keystore file>
将 my-release-key.keystore 放到路径 android/app 文件夹下
打开文件 android/gradle.properties,添加代码
MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=*****
MYAPP_RELEASE_KEY_PASSWORD=*****
打开文件 android/app/build.gradle,添加代码
android {
...
defaultConfig { ... }
signingConfigs {
release {
if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')){
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}
}
构建全部架构的安装包
gradlew assembleRelease
构建单一架构的安装包
flutter build apk --split-per-abi
查看apk的签名
keytool -printcert -jarfile app.apk
- 生成图标
flutter pub run flutter_launcher_icons
Windows
flutter build windows