flutter vscode 安卓打包apk文件

摘要:
因此,您需要创建并使用密钥签名步骤1来创建密钥库并执行以下命令:keytool-genkey-v-keystoreF:/key.jks-keyalgRSA-keysize2048-validity10000-aliaskey此命令大致意思是:生成2048位RSA密钥对和自签名证书步骤2以填充密钥内容执行上述命令后,系统将提示您输入密钥库密码,确认密码、名称、公司和其他信息一次。最后,如果您想确认创建,请回复“y”并按enter键确认。回答“是”,然后按Enter键确认详细信息的输出,并要求您输入密码。此时,一个key.js文件将出现在F根目录中。

配置

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

步骤一 创建密钥库

执行以下命令:

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

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

步骤二 填写密钥内容

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

flutter vscode 安卓打包apk文件第1张

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

flutter vscode 安卓打包apk文件第2张

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

注意:

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

第三步 引用密钥库

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

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

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

flutter vscode 安卓打包apk文件第3张

注意:

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

第四步 配置gradle中的签名

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

如图所示:

flutter vscode 安卓打包apk文件第4张

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 打包信息如下:

flutter vscode 安卓打包apk文件第5张

第六步 大功告成!!!

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

免责声明:文章转载自《flutter vscode 安卓打包apk文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Ubuntu 如何编译安装第三方库android 6.0权限全面详细分析和解决方案下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

抓apk中的https包(​含破解https的SSL Pinning)

一般来说,http请求的包都可以通过fiddler来抓包(http2.0不支持)。 https抓包的原理是利用中间人攻击,向客户端伪装成服务端,向服务端伪装成客户端,从而可以抓包,但是有部分https的包是抓取不了的。 其中可能用到了SSL Pinning(证书绑定或SSL证书绑定)技术。 然而道高一尺魔高一丈,下面通过一种简单的办法来修改apk的配置,允...

Flutter ExpansionPanel 可展开的收缩控件

文档:https://api.flutter.dev/flutter/material/ExpansionPanel-class.html demo: import 'package:flutter/material.dart'; classExpansionPanelItem { finalString headerText; finalW...

flutter报错:Waiting for another flutter command to release the startup lock..

在flutter开发过程中,运行flutter命令,flutter doctor 或者flutter run等命令,如果出现Waiting for another flutter command to release the startup lock..    只要进入flutter sdk 目录,然后找到bin/cache/lockfile文件,删除后再...

Android Studio修改Apk打包生成名称

版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/201 Android Studio修改Apk打包生成名称 Android studio默认生成的apk的名字实在是太没有辨识度了,一般默认是app-debug.apk,app-release.apk这样的命名,自己有...

android之apk反编译

今天就来详细的讲一讲apk的反编译过程,之前自己一直没彻底搞清楚。 一、准备工作 反编译首先要准备三个工具。这三个工具都是可以百度下载的。就是下图所示的三个工具。 这三个工具是有各自作用的: (1)apktool工具用来反编译apk中的res下的文件,即所有的xml文件(包括Manifest.xml)。 (2)dex2jar工具用来反编译apk中的.cl...

如何为APK签名?

  1.用来生成应用签名的文件 ①默认: debug.keystore > debug签名的应用程序不能在Android Market上架销售,它会强制你使用自己的签名。> 不同电脑使用此文件生成的签名不一样。那就意味着如果你换了机器进行apk版本升级,那么将会出现上面那种程序不能覆盖安装的问题。  ②使用eclipse生成: xxx.ke...