AndroidStudio中Flutter打包APK
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相关推荐
- Flutter打包apk中的一些巨坑
许多人在使用Flutter打包apk时都会参照文档的做法,但是按照文档基本上是百分之百失败的[手动狗头],官网的做法是这样的(可以不用看) 官网做法 但是方法基本不可行. 下面介绍一下正确的打包姿势 ...
- flutter 打包apk
前言 完成项目时,我们需要将项目打包成一个apk,方便测试以及发布版本. 并且发布版本还需要签名,今天把这一系列操作记录下来. App签名 创建 keystore 如果您有现有keystore,请跳至 ...
- Flutter 打包APK aab
打包APK 命令 flutter build apk 打包aab 命令 flutter build appbundle 打包需要生成签名文件 test.jks (1) 我的项目所在地 D:\Flutt ...
- uni-app如何打包apk到Android studio中调用
首先我们知道,Android和uni-app中写的代码是完全不一样的,他们的编译环境也是不一样的,呢么如何要在Androidstudio中调用uni-app中的代码呢?我们这边来准备几个步骤请看: 第 ...
- Flutter 打包APP (Android IOS)
打包Android apk 参考 https://flutter.dev/docs/deployment/android https://flutterchina.club/android-relea ...
- flutter/Android接入友盟、阿里百川SDK,打包APK后报无法加载arr库的坑
刚接触flutter,边学边做.其实遇到的是两个坑,但看起来像是同个问题引起的,多么痛的领悟,基础不牢.解决问题流程不对太耽误时间了. 打包APK后报无法加载友盟arr库 有篇帖子说是启用压缩导致的, ...
- Flutter之apk打包(windwos)
1.程序在安卓手机上运行以后,长按图标,会出来分享,点击分享,发送给好友得的的就是apk包,他人可以安装 电脑打包 官方只有这行命令: keytool -genkey -v -keystore ~/k ...
- 【flutter】AndroidStudio 如何签名打包,步骤
1.创建证书 如图操作 然后 key store path的选择最好选在当前应用下的android目录下 然后点击ok,最后选择cancel.切换结构就似乎显示刚才创建的文件如图 2.配置证书 打开网 ...
- Android、Flutter为不同的CPU架构包打包APK(v7a、v8a、x86)
默认情况下,Android和Flutter打包出来的Apk都是包含了所有架构的,这样打出来的apk体积相对于单架构的apk有点大. 这时,我们就需要分别打出不同的架构包. 架构 一般来说,x86代表3 ...
最新文章
- aho-corasick php,GitHub - coralh/php-akm: Ahocorasick keyword match. Supports php7 and php5
- Android Studio对于Java8特性的支持
- jQuery 操作大全
- C++ Vector 使用总结
- jquery深入学习
- eclipse 左边目录结构下五referenced library解决办法
- python访问文件被拒绝_python – uWSGI服务器日志…权限被拒绝读取文件…哪个文件?...
- 《计算机网络思想》系列(1)网络体系结构———理解,总结,辨析,升华
- java将Word文件转换为html文件
- AD ---- 活动目录的日常管理操作(3)
- Linux视频教程—笔记(全)
- Ethernet guarder V1.1.exe 下载
- 使用Windows批处理+ImageMagick 实现批量处理图片
- 学习分布式系统需要的知识
- 关于字符串赋值的方法以及注意事项
- 手机号不用后,这操作必须要做,不然银行卡里的钱就别人花了
- ETS官方Issue主题范文36篇
- Ubuntu安装有道词典youdao-dict时,[dpkg:处理软件包youdao-dict(时出错):依赖关系问题 - 仍未被配置]问题的解决方案:下载此deb安装即可;
- Flex ComboBox 加载xml数据
- INFOCOM 历年最佳论文汇总Topic推荐-AMiner
热门文章
- [css] 举例说明shape-outside的属性的用途有哪些?
- [css] 父元素下有子元素,子元素也有高度但父元素的高度为何为0呢?分析下可能出现的原因及解决方法
- 工作160:总结VUE几种页面刷新方法
- 前端学习(2481):关于接口的调错
- 前端学习(2233):react的子传父数据传递
- 前端学习(679):switch语句
- 大型动态应用系统平台系统架构?这些大家并不陌生
- win10安装iis(亲测,工作需要)
- FPGA+NIOS2 Verilog+C 实现一个计算器
- 大学计算机基础实训excel,大学计算机基础实训指导书