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
转载自:https://juejin.cn/post/6845166891737022478