flutter 打包 仅做记录

如果你用的是 AndroidStudio 启动android 模拟器会自动build

如果因为版本报错 有一个属性高版本不支持 在android/build.gradle 中的 classpath 应该是3.4.1 改成3.2.1就没问题了

 

主要参考两篇文章
https://blog.csdn.net/weixin_41191134/article/details/88837684
https://www.cnblogs.com/niceyoo/p/11046253.html

 

需要用到jdk 如果没有的话需要去下载  https://www.oracle.com/technetwork/java/javase/downloads/index.html

1.生成签名文件

在打包之前我们需要一个签名文件,证明文件的唯一性。

keytool -genkey -v -keystore ~/AndroidStudioProjects/myapp/sign.jks -keyalg RSA -keysize 2048 -validity 10000 -alias keyalias

~/AndroidStudioProjects/myapp/sign.jks为签名问价存放目录,keyalias 为密钥名。



查看证书SHA1:

keytool -list -v -keystore ~/AndroidStudioProjects/myapp/sign.jks -alias keyalias -storepass 123456 -keypass 123456

其中 keyalias、storepass、keypass 分别为: 别名、密钥库密码、 sign文件密码

 

 2.然后新建文件 key.properties

在Flutter工程中/android/key.properites创建该文件

storePassword=123456
keyPassword=123456
keyAlias=keyalias
storeFile=../sign.jks

3.配置/android/app/build.gradle文件
 


    signingConfigs {
        release {
            keyAlias 'keyalias'
            keyPassword '123456'
            storeFile file('../../sign.jks')
            storePassword '123456'
        }
    }

完整的代码:

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
    compileSdkVersion 28

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.example.myapp"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    signingConfigs {
        release {
            keyAlias 'keyalias'
            keyPassword '123456'
            storeFile file('../../sign.jks')
            storePassword '123456'
        }
    }


    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

 

4.打包APK

在当前项目目录的终端中执行:flutter build apk

生成的目录:当前项目\build\app\outputs\apk\release\xx.apk 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值