1、生成签名文件

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

keytool -genkey -v -keystore F:\APP\sign.jks -keyalg RSA -keysize 2048 -validity 10000 -alias sign

F:\APP\sign.jks为签名问价存放目录,sign 为密钥名。

后面都有用,请牢记。

在控制台输入上方指令后,会依次让你输入密钥库口令、姓氏、组织机构等等,下方是我的截图:

查看证书SHA1:

keytool -list -v -keystore F:\APP\sign.jks -alias sign -storepass 123456 -keypass 123456

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

2、Android Studio 配置

2.1、导入sign.jks

在Flutter工程中/android/app/key/sign.jks创建该目录。
要在app目录下创建key文件夹,然后把sign.jks拖进来。

如图所示:

2.2、创建key.properites

在Flutter工程中/android/key.properites创建该文件。
里面内容如下:

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

2.3、配置/android/app/build.gradle文件

需要修改 app 包下的 build.gradle 文件,增加如下配置:

android {signingConfigs {release {keyAlias 'sign'keyPassword 'android'storeFile file('key/sign.jks')storePassword 'android'}}buildTypes {release {signingConfig signingConfigs.release}}
}

完整的代码:

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 28lintOptions {disable 'InvalidPackage'}defaultConfig {applicationId "sscai.club.flutter_shop"minSdkVersion 16targetSdkVersion 28versionCode flutterVersionCode.toInteger()versionName flutterVersionNametestInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}/*针对打包新加的*/signingConfigs {release {keyAlias 'sign'keyPassword '123456'storeFile file('key/sign.jks')storePassword '123456'}}/*针对打包新加的*/buildTypes {release {signingConfig signingConfigs.release}}
}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'
}

项目目录:

3、打包APK

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

或者直接在 Android Studio 的 Terinal 执行命令:

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

AndroidStudio中Flutter打包APK相关推荐

  1. Flutter打包apk中的一些巨坑

    许多人在使用Flutter打包apk时都会参照文档的做法,但是按照文档基本上是百分之百失败的[手动狗头],官网的做法是这样的(可以不用看) 官网做法 但是方法基本不可行. 下面介绍一下正确的打包姿势 ...

  2. flutter 打包apk

    前言 完成项目时,我们需要将项目打包成一个apk,方便测试以及发布版本. 并且发布版本还需要签名,今天把这一系列操作记录下来. App签名 创建 keystore 如果您有现有keystore,请跳至 ...

  3. Flutter 打包APK aab

    打包APK 命令 flutter build apk 打包aab 命令 flutter build appbundle 打包需要生成签名文件 test.jks (1) 我的项目所在地 D:\Flutt ...

  4. uni-app如何打包apk到Android studio中调用

    首先我们知道,Android和uni-app中写的代码是完全不一样的,他们的编译环境也是不一样的,呢么如何要在Androidstudio中调用uni-app中的代码呢?我们这边来准备几个步骤请看: 第 ...

  5. Flutter 打包APP (Android IOS)

    打包Android apk 参考 https://flutter.dev/docs/deployment/android https://flutterchina.club/android-relea ...

  6. flutter/Android接入友盟、阿里百川SDK,打包APK后报无法加载arr库的坑

    刚接触flutter,边学边做.其实遇到的是两个坑,但看起来像是同个问题引起的,多么痛的领悟,基础不牢.解决问题流程不对太耽误时间了. 打包APK后报无法加载友盟arr库 有篇帖子说是启用压缩导致的, ...

  7. Flutter之apk打包(windwos)

    1.程序在安卓手机上运行以后,长按图标,会出来分享,点击分享,发送给好友得的的就是apk包,他人可以安装 电脑打包 官方只有这行命令: keytool -genkey -v -keystore ~/k ...

  8. 【flutter】AndroidStudio 如何签名打包,步骤

    1.创建证书 如图操作 然后 key store path的选择最好选在当前应用下的android目录下 然后点击ok,最后选择cancel.切换结构就似乎显示刚才创建的文件如图 2.配置证书 打开网 ...

  9. Android、Flutter为不同的CPU架构包打包APK(v7a、v8a、x86)

    默认情况下,Android和Flutter打包出来的Apk都是包含了所有架构的,这样打出来的apk体积相对于单架构的apk有点大. 这时,我们就需要分别打出不同的架构包. 架构 一般来说,x86代表3 ...

最新文章

  1. aho-corasick php,GitHub - coralh/php-akm: Ahocorasick keyword match. Supports php7 and php5
  2. Android Studio对于Java8特性的支持
  3. jQuery 操作大全
  4. C++ Vector 使用总结
  5. jquery深入学习
  6. eclipse 左边目录结构下五referenced library解决办法
  7. python访问文件被拒绝_python – uWSGI服务器日志…权限被拒绝读取文件…哪个文件?...
  8. 《计算机网络思想》系列(1)网络体系结构———理解,总结,辨析,升华
  9. java将Word文件转换为html文件
  10. AD ---- 活动目录的日常管理操作(3)
  11. Linux视频教程—笔记(全)
  12. Ethernet guarder V1.1.exe 下载
  13. 使用Windows批处理+ImageMagick 实现批量处理图片
  14. 学习分布式系统需要的知识
  15. 关于字符串赋值的方法以及注意事项
  16. 手机号不用后,这操作必须要做,不然银行卡里的钱就别人花了
  17. ETS官方Issue主题范文36篇
  18. Ubuntu安装有道词典youdao-dict时,[dpkg:处理软件包youdao-dict(时出错):依赖关系问题 - 仍未被配置]问题的解决方案:下载此deb安装即可;
  19. Flex ComboBox 加载xml数据
  20. INFOCOM 历年最佳论文汇总Topic推荐-AMiner

热门文章

  1. [css] 举例说明shape-outside的属性的用途有哪些?
  2. [css] 父元素下有子元素,子元素也有高度但父元素的高度为何为0呢?分析下可能出现的原因及解决方法
  3. 工作160:总结VUE几种页面刷新方法
  4. 前端学习(2481):关于接口的调错
  5. 前端学习(2233):react的子传父数据传递
  6. 前端学习(679):switch语句
  7. 大型动态应用系统平台系统架构?这些大家并不陌生
  8. win10安装iis(亲测,工作需要)
  9. FPGA+NIOS2 Verilog+C 实现一个计算器
  10. 大学计算机基础实训excel,大学计算机基础实训指导书