一直以以来都是用android studio 打包,今天来研究一下怎么用命令行打包APK;
首先,打开flutter项目包下目录
android/app/src/main/res/
可以看到有这个几个目录
配置APP名称和图标、系统权限,打开目录:
/android/app/src/main/AndroidManifest.xml
android:label="myflutter" //设置APP名称,可以为中文就不多说了 android:icon="@mipmap/ic_launcher" //配置APP图标路径
生成 keystore
keytool -genkey -v -keystore /E:/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
注意:/E:/key.jks 为需要存储.jks文件的目录
安卓根目录下创建 key.properties文件
添加如下代码:
storePassword=秘钥库密码 keyPassword=KEY密码 keyAlias=key storeFile=<E:/key.jks> // 生成的文件路径
打开 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 } }
为:
buildTypes { release { signingConfig signingConfigs.release } }
并添加如下代码:
defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.example.myflutter" //APPID minSdkVersion 16 // 可运行应用的最低版本的 Android 平台,由该平台的 API 级别标识符指定 targetSdkVersion 27 // 指定运行应用的目标 API 级别。在某些情况下,这允许应用使用在目标 API 级别中定义的清单元素或行为,而不是仅限于使用那些针对最低 API 级别定义的元素或行为。 versionCode 1 // 版本号 versionName "1.0" // 版本名称 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" }
flutter build apk
成功之后会显示如下图内容:
这样我们的apk包就新鲜出炉了;