阅读 1852

Flutter的apk打包

配置APP图标

因为作为iOSer,所以我在这只讲Android的APP图标在VScode中的配置。

  • 项目根目录/android/app/src/main/res/
  • 进入之后你会看到很多mipmap-为前缀命名的文件夹,后边的是像素密度,可以看出图标的分辨率。
名称 dpi
mdpi (中) 160dpi
hdpi (高) 240dip
xhdpi (超高) 320dip
xxhdpi (超超高) 480dip
xxxhdpi (超超超高) 640dip

将对应像素密度的图片放入对应的文件夹中,图片记得用png格式,记得名字要统一,才能一次性进行配置

AndroidManifest.xml 文件

这个文件主要用来配置APP的名称、图标和系统权限,所在的目录在:

项目根目录/android/app/src/main/AndroidManifest.xml

android:label="flutter_app"   //配置APP的名称,支持中文
android:icon="@mipmap/ic_launcher" //APP图标的文件名称,所以这个图标文件名可以在这个地方配置
复制代码

生成 keystore

  • 在VScode输入flutter doctor -v找到Android toolchain栏目下的Java binary at:,复制这个标题项的地址。
  • 我Mac的地址是/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
  • 在VScode的终端输入查询到的java根目录地址以及keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key 即:/Applications/'Android Studio.app'/Contents/jre/jdk/Contents/Home/bin/keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
  • 回车后,他会要求你输入密钥库口令,记住你的口令,稍后会用到。
  • 继续操作后,还会要求你的密钥密码,同样也要记住这个密码。
  • 之后在你的user目录下生成key.jks.这个key.jks路径可以在上面的命令行中修改。记住这个文件不能共享给任何人!
  • 有了这个key.jks文件后,可以到项目目录下的android文件夹下,创建一个名为key.properties的文件,并打开粘贴下面的代码。

storePassword=<password from previous step>//输入上一步创建KEY时输入的 密钥库 密码 keyPassword=<password from previous step>//输入上一步创建KEY时输入的 密钥 密码 keyAlias=key storeFile=<E:/key.jks> //key.jks的存放路径

配置key注册

key生成好后,需要在build.gradle文件中进行配置。这个过程其实很简单,就是粘贴复制一些东西,你是不需要知道这些文件的具体用处的。

  • 第一项:

进入项目目录的/android/app/build.gradle文件,在android{这一行前面,加入如下代码:

def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
复制代码
  • 第二项:

把如下代码进行替换:

buildTypes {
    release {
        signingConfig signingConfigs.debug
    }
}
复制代码

替换成:

signingConfigs {
    release {
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile file(keystoreProperties['storeFile'])
        storePassword keystoreProperties['storePassword']
    }
}
buildTypes {
    release {
        signingConfig signingConfigs.release
    }
}
复制代码

修改gradle配置

很多人在生成apk的时候都遇到了Running Gradle task 'assembleRelease'错误提示。

修改项目下 build.gradle 和 flutter 安装目录flutter/packages/flutter_tools/gradle/flutter.gradle 两个文件中 buildscript 和allprojects 中的:

google()
jcenter()
复制代码

替换为:

maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
复制代码

生成apk

直接在终端中输入:

flutter build apk

文章分类
iOS
文章标签