打包的具体操作,可以参照官网,只是官网没有那么细
1、修改AndroidManifest.xml
2、构建配置 可以跳过
3、构建签名
4、创建 key.properties
5、配置混淆
6、修改builg配置build.gradle
7、打包
--------------------------------------------------分割线--------------------------------------------------------------------
1、修改AndroidManifest.xml
路径:<app dir> /android/app/src/main/AndroidManifest.xml
3、构建签名
使用keytool, 可以直接在Android Studio 的terminal里面操作
口令:keytool -genkey -v -keystore G:/keys/test.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias key
区分开来的字段需要注意,存储路径 和 别名, 路径里面的文件自己创建。
输入口令之后,开始填写一些信息,名字,公司....到了 【否】 这里写y,继续,没有报错的话签名就构建ok了,notepad++打开一坨乱码,我还在怀疑能用不呢。
4、创建 key.properties
路径:<app dir>/android/key.properties 文件手动创建
主要用来引入刚刚的签名文件
key.properties
storePassword = exanple 这是你创建签名写的密码
keyPassword = exanple 这是你创建签名写的密码
keyAlias = key 口令里面的alias key 对应
storeFile = G:/andro/example/android/app/keys/test1.keystore 绝对路径
5、配置混淆
路径:<app dir> /android/app/proguard-rules.pro 手动创建
proguard-rules.pro
#Flutter Wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.** { *; }
-keep class io.flutter.util.** { *; }
-keep class io.flutter.view.** { *; }
-keep class io.flutter.** { *; }
-keep class io.flutter.plugins.** { *; }
6、修改builg配置build.gradle
路径:<app dir>/android/app/build.gradle
build.gradle
def keystorePropertiesFile = rootProject.file("key.properties") // 引入
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
android {
compileSdkVersion 28
lintOptions {
disable 'InvalidPackage'
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "myapp.flutter_kiminitodoke"
minSdkVersion 16
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release // debug
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
7、打包
进入项目目录
flutter build apk
打包好的发布APK位于<app dir>/build/app/outputs/apk/app-release.apk。
至此就ok了,过程中我也遇到了些问题。
1、签名路径问题,没有写绝对路径。
2、打包完成后闪退:就是程序的问题,然后我调试的时候也是闪退,后来是我手残改了这里,然后颜色都不对了,也是扯淡。
然后节本没有其他问题了。
来源:oschina
链接:https://my.oschina.net/u/4358285/blog/3535581