配置

VSCode默认是没有使用密钥签名的,往往我们在正式项目中是需要签名的。那就创建好了。。。所以需要自己创建并使用密钥签名

步骤一 创建密钥库

执行以下命令:

keytool -genkey -v -keystore F:/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

这句命令大概意思是说:生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 10,000 天)

步骤二 填写密钥内容

执行以上命令后会提示一次输入密钥库密码、确认密码、名字、单位等信息,最后问你是否确认创建,回复‘y’回车确认。

回复‘y’回车确认后会输出详细信息,并且让你输入密码(上边设置的密码)

此时在F根目录中会出现一个key.jks文件。(F:/key.jks目录结构自己自定义即可)

注意:

  • 保持文件私密; 不要将它加入到公共源代码控制中。
  • 此操作生成的签名是*.jks格式

第三步 引用密钥库

创建一个名为/android/key.properties的文件,其中包含对密钥库的引用:

storePassword=<创建keystore时的storePassword>
keyPassword=<创建keystore时的keyPassword>
keyAlias=key
storeFile=<密钥库文件的位置 , 例如: /Users/<user name>/key.jks>

文件内容和层级如图所示:

注意:

  • 保持文件私密; 不要将它加入公共源代码控制中.
  • storeFile 这里要使用绝对路径

第四步 配置gradle中的签名

通过编辑/android/app/build.gradle文件为您的应用配置签名

如图所示:

build.gradle 文件代码如下:

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 plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" // 增加这三行代码
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
// 增加这块代码
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
} compileSdkVersion 28 sourceSets {
main.java.srcDirs += 'src/main/kotlin'
} lintOptions {
disable 'InvalidPackage'
} defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.flutter_login_demo"
minSdkVersion 16
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
} 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.release //debug修改为release
}
}
} flutter {
source '../..'
} dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

第五步 打包

执行命令 flutter build apk 打包信息如下:

第六步 大功告成!!!

打包好的发布APK位于/build/app/outputs/apk/app-release.apk。

flutter vscode 安卓打包apk文件的更多相关文章

  1. CoCos2dx开发:PC端调试运行正常但打包apk文件后在手机上点击闪退

    记:今天调试时出现的一个PC端调试运行正常,但打包apk文件后在手机上点击闪退的问题. 可能在不同的情况条件下,会有不同的原因导致apk安装后闪退问题.拿android studio等软件来说,开发安 ...

  2. cocos2d-x 编译 安卓(android)apk文件

    摘要: 一.下载Android环境 搭建Android环境需要用到Android SDK.NDK.Ant和JDK: 下载Android SDK  下载Android NDk  下载Android JD ...

  3. 安卓打包apk

    打apk包的环境依赖 1.jdk 2.sdk 3.ndk 打apk包的工具 gradle mkdir /usr/local/Android cd /usr/local/Android mkdir sd ...

  4. 关于cordova+vue打包apk文件无法访问数据接口

    作为一个cordova小白,我按照官方文档和网上资料完成了讲vue文件打包到cordova中并打包成apk文件,完成了一个简单app的制作,当我正陶醉于可以自己完成一个app的时候突然发现,我的app ...

  5. IIS配置安卓下载.apk文件

    前提:你的.apk文件所在路径正确,例如:www.grainnews.com.cn:8002/Attach/Images/201807/20180712091842127.apk 1.打开IIS 2. ...

  6. unity调用安卓打包apk时的错误unable to convert classes into dex format

    出现这种问题一般是由于有重复的文件所致,看下unity报的错误那些文件重复了,把重复的文件删了即可 例如,将eclipse中的安卓工程bin\class导出jar包时,会将下面的.class文件打包, ...

  7. eclipse 打包 apk 文件

    1.通过eclipse中的file ,点击Import 导入项目 2.选择Android 中的 Existing Android Code Into Workspace 3.通过 Brower 引入项 ...

  8. 关于最新版本的flutter在安卓打包的问题解决方法

    1.集成友盟push提示androidx版本号不一致,需在gradle文件中手动选择即可,如下 buildscript { repositories { google() jcenter() mave ...

  9. 反编译sencha toucha打包的apk文件,修改应用名称支持中文以及去除应用标题栏

    一.去除安卓应用标题栏 sencha touch打包android安装包,去掉标题栏titlebar的简单方法 (有更复杂更好的方法,参看"二.利用反编译修改apk的应用名称为中文" ...

随机推荐

  1. TestLink使用指南

    TestLink安装上之后,局域网内用户可以登陆使用,下面介绍本软件的使用方式. 1.TestLink简介 TestLink是基于Web的开源测试管理工具,用户可以使用这个工具创建测试项目和测试用例, ...

  2. 设置与查看Linux系统中的环境变量

    大家好,我是良许. 大家都知道,在 Linux 系统中,有环境变量和 Shell 变量这两种变量. 环境变量是在程序及其子程序中全局可用的,常常用来储存像默认的文本编辑器或者浏览器,以及可执行文件的路 ...

  3. unity探索者之iOS微信登录、分享

    版权声明:本文为原创文章,转载请声明http://www.cnblogs.com/unityExplorer/p/8405700.html iOS接入微信的SDK相对于安卓要麻烦一点,除了核心功能代码 ...

  4. Macbook pro 下修改MySQL数据库密码

    步骤: 1. 打开终端 Terminal, 找到Mysql 的安装路径,一般默认安装路径为:/usr/local/mysql-5.7.12-osx10.11-x86_64/bin [注:我安装的Mys ...

  5. RocketMQ在windows环境下的安装(转)

    原博地址:https://www.jianshu.com/p/4a275e779afa 一.预备环境 1.系统 Windows 2. 环境 JDK1.8.Maven.Git 二. RocketMQ部署 ...

  6. 关于Java中for循环的i++和++i区别

    我们应该都知道i++和++i的区别是: ++i是先执行 i = i +1 再使用 i 的值,而 i++ 是先使用 i 的值再执行 i = i + 1: for循环的执行顺序如下: for(a;b;c) ...

  7. Hitool打开出现failed to create the java virtual machine

    今天在安装Hitool后,打开hitool后出现了错误:failed to create the java virtual machine. 解决方法如下: 记事本打开HiTool.ini -star ...

  8. python基础 Day9

    python Day9 函数的初识 #代码的可读性较好 s=[1,2,3,4,5,5] def list_len(S): count=0 for i in s: count+=1 print(coun ...

  9. 5 个 Git 工作流,改善你的开发流程

    原文地址:5 Git workflows you can use to deliver better code and improve your development process 原文作者:Vi ...

  10. 【接口自动化】Python+Requests接口自动化测试框架搭建【三】

    经过上两篇文章的讲解,我们已经完成接口自动化的基础框架,现在开始根据实际项目丰满起来. 在PyCharm中新建项目,项目工程结构如下: config:配置文件夹,可以将一些全局变量放于配置文件中,方便 ...