如何打包发布flutter项目

步骤1 创建 keystore(如果已经创建,请跳过)

  • Windows+R,cmd打开终端,运行:
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
  • 输入必要信息
    如何打包发布flutter项目_第1张图片
  • 在用户目录下 C:\Users\用户名目录\my-release-key.keystore,生成了签名
    如何打包发布flutter项目_第2张图片

步骤2 将的签名证书 copy 到 android/app 目录下

如何打包发布flutter项目_第3张图片

步骤3 引用应用程序中的 keystore

创建一个名为 /android/key.properties 的文件,其中包含对密钥库的引用:

storePassword=from previous step>
keyPassword=from previous step>
keyAlias=key
storeFile=, e.g. /Users//key.jks>


//示例:
storePassword=000000
keyPassword=000000
keyAlias=my-key-alias
storeFile=my-release-key.keystore

步骤4 在 gradle 中配置签名

通过编辑 /android/app/build.gradle 文件为您的应用配置签名:

  • 在android{}前面加上:
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

如何打包发布flutter项目_第4张图片

  • 在buildTypes {前面加上:
    如何打包发布flutter项目_第5张图片
signingConfigs {
    release {
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile file(keystoreProperties['storeFile'])
        storePassword keystoreProperties['storePassword']
        }
}
buildTypes {
    release {
        signingConfig signingConfigs.release
    }
}

步骤6 修改 App 名称和图标

修改应用名称

打开位于 /android/app/src/main/ 中的 AndroidManifest.xml 文件,找到 application 节点,编辑 application 标签的android:label, 修改应用的名称。
如何打包发布flutter项目_第6张图片

修改应用图标

  • 使用 Hbuilder 工具快速生成应用图标;
  • /android/app/src/main/res/ 目录中,将图标文件放入使用配置限定符命名的文件夹中。把自己生成的图标,按照规范的名称和大小,覆盖 Flutter 的默认图标。
    如何打包发布flutter项目_第7张图片
    如何打包发布flutter项目_第8张图片

步骤5 构建一个发布版(release)APK

  • 在项目根目录下中打开终端(或者直接在编辑器的终端中),运行
flutter build apk

如何打包发布flutter项目_第9张图片

步骤6 安装apk

  • 安装在模拟器
运行
flutter install
  • 安装在真机

在项目的flutter_tets\build\app\outputs\apk\release目录下可以看到apk,复制到手机上之后,正常安装即可。如何打包发布flutter项目_第10张图片

踩坑

真机发布之后,无法发送网络请求。Android应用需要进行网络请求时,需要在AndroidManifest中注册网络权限。

  • 1
 <uses-permission android:name="android.permission.READ_PHONE_STATE" />
 <uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  • 2 在AndroidManifest中的application添加一句
android:usesCleartextTraffic="true"

你可能感兴趣的:(如何打包发布flutter项目)