flutter打包apk流程及签名证书配置

1,695 阅读1分钟

1,生成签名,在指定目录下

keytool -genkey -v -keystore E:\gitflutter\flutter_nft\android\key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

2,修改指定目录下文件夹 android/app/build.gradle

#需要添加的开始
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
#需要添加的结束

android {


```

defaultConfig {
    // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
    applicationId "com.example.flutter_nft"
    //minSdkVersion flutter.minSdkVersion
    minSdkVersion 21  # 这个改成21 ,不然支付宝不能用
    targetSdkVersion flutter.targetSdkVersion
    //targetSdkVersion 19
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
}
```
```
signingConfigs {

        release {
//            keyAlias 'key'
//            keyPassword 'gubanjie'
//            storeFile file('key.jks')//此种写法默认key文件在android-app文件夹下
//            storePassword 'gubanjie'
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
        debug {
//            keyAlias 'key'
//            keyPassword 'gubanjie'
//            storeFile file('key.jks')
//            storePassword 'gubanjie'
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
        debug {
            signingConfig signingConfigs.release
        }
    }
```

2,执行命令,打包正式 flutter build apk --no-sound-null-safety --no-tree-shake-icons -v

3,找到路径复制正式包 build/app/outputs/flutter-apk/app-release.apk