flutter安卓打包签名

news/2025/2/8 13:35:52 标签: flutter
flutter_0">flutter安卓打包签名

1.创建签名文件

keytool -genkeypair -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-alias
  • keytool 是一个用于管理密钥和证书的命令行工具,通常与 Java 开发工具包 (JDK) 一起使用。
  • my-release-key.jks 是生成的Keystore文件名。
  • RSA 是签名算法。
  • 2048 是密钥长度。
  • 10000 是证书的有效期(单位:天)。
  • my-key-alias是你设置的密钥别名。

2.在 Flutter 项目中配置签名

android {
    signingConfigs {
        release {
            keyAlias 'my-key-alias'// 使用你自己的别名
            keyPassword 'your-key-password'// 密钥密码
            storeFile file('/path/to/my-release-key.jks')// 密钥库文件路径
            storePassword 'your-store-password'// 密钥库密码
        }
    }
}

为 APK手动签名并添加时间戳,使用这个就不要配置步骤2了还有记得删除signingConfig = signingConfigs.debug

jarsigner -verbose -tsa http://timestamp.digicert.com -keystore <密钥库位置> -storepass <密钥密码> app-release.apk <密钥库别名>

3.打包 APK

flutter build apk --release --obfuscate --split-debug-info=./build/debug-info

4.验证签名和时间戳

jarsigner -verify -verbose -certs app-release.apk

http://www.niftyadmin.cn/n/5844901.html

相关文章

预训练语言模型(笔记)

笔记来源&#xff1a;Transformer、GPT、BERT&#xff0c;预训练语言模型的前世今生&#xff08;目录&#xff09; - B站-水论文的程序猿 - 博客园 预训练语言模型的发展并不是一蹴而就的&#xff0c;而是伴随着诸如词嵌入、序列到序列模型及 Attention 的发展而产生的。 一、…

VERA: 基于视觉-语言模型的解释性视频异常检测框架

文章目录 速览摘要01 引言1.1 关键观察与研究问题1.2 我们的方法1.3 贡献 02 相关工作2.1 视频异常检测2.2 针对VLM的语言化学习 03 VERA框架3.1 视频异常检测的任务定义3.2 在VERA中通过语言化学习寻找VAD指导性问题训练目标训练数据通过学习者与优化器更新 Q Q Q学习者与优化…

2025.2.6 数模AI智能体大更新,更专业的比赛辅导,同提示词效果优于gpt-o1/o3mini、deepseek-r1满血

本次更新重新梳理了回复逻辑规则&#xff0c;无任何工作流&#xff0c;一共3.2k字细节描述。具体效果可以看视频&#xff0c;同时也比对了gpt-o1、gpt-o3mini、deepseek-r1-67BI&#xff0c;从数学建模题目解答上来看&#xff0c;目前我的数模AI智能体具有明显优势。 AI智能体优…

vmware ubuntu 扩展硬盘系统文件大小

首先&#xff0c;在VMware中添加扩展硬盘大小&#xff1a; 通过lsblk指令&#xff0c;可以看到添加的未分配硬盘大小情况&#xff1a; NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS fd0 2:0 1 4K 0 disk loop0 7:0 0 4K 1 loop /snap/bare/5 loop1…

Qt —— 加载百度离线地图、及简单绘图(附源码)

效果 说明 软件代码已下载了某区域的离线瓦片地图,通过百度离线api进行调用的地图效果。 源码 void PointMapTEST

第二章:QT核心机制(一)

作业 1> 手动将登录项目实现&#xff0c;不要使用拖拽编程 并且&#xff0c;当点击登录按钮时&#xff0c;后台会判断账号和密码是否相等&#xff0c;如果相等给出登录成功的提示&#xff0c;并且关闭当前界面&#xff0c;发射一个跳转信号&#xff0c;如果登录失败&#xf…

数据库操作与数据管理——Rust 与 SQLite 的集成

第六章&#xff1a;数据库操作与数据管理 第一节&#xff1a;Rust 与 SQLite 的集成 在本节中&#xff0c;我们将深入探讨如何在 Rust 中使用 SQLite 数据库&#xff0c;涵盖从基本的 CRUD 操作到事务处理、数据模型的构建、性能优化以及安全性考虑等方面。SQLite 是一个轻量…

ES6 Set 数据结构用法总结

1. Set 基本概念 Set 是 ES6 提供的新的数据结构&#xff0c;类似于数组&#xff0c;但成员的值都是唯一的&#xff0c;没有重复的值。Set 本身是一个构造函数&#xff0c;用来生成 Set 数据结构。 1.1 基本用法 // 创建一个空Set const set new Set();// 创建一个带有初始…