Skip to main content

如何打包成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