Flutter Android 签名打包

查看APP包的签名

为了检查flutter打包的签名信息,

  1. 找到应用的apk文件,修改后缀改成zip包;

  2. 在压缩文件中找到META-INF目录下找到 CERT.RSA文件;

  3. shift+鼠标右键打开cmd命令行;

  4. 输入命令:keytool -printcert -file CERT.RSA

    参考:如何查看App安装包的签名

Flutter 配置Android 签名

创建 keystore

如果您有现有keystore,请跳至下一步

Terminal运行以下命令来创建一个:

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

-validity 10000代表有效期天数

如果上述命令报错“系统找不到指定的路径”,请指明路径
例如:
keytool -genkey -v -keystore D:/mykey.jks -keyalg RSA -keysize 2048 -validity 1
0000

D:/mykey.jks为生成的keystore路径文件
执行该命令,如图:

在这里插入图片描述

引用应用程序中的keystore

在Flutter中的andoid项目中,

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

#密钥库口令
storePassword=<password from previous step>
#密钥口令
keyPassword=<password from previous step>
#别名
keyAlias=key
#keystore的路径
storeFile=<location of the key store file, e.g. /Users/<user name>/key.jks>

note: <>符号去掉,keyAlias直接写你设置的别名,比如上面创建的keystore的alias 为key

gradle中配置签名

在/app/build.gradle中

def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

android {
   ....
   
     signingConfigs{
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }

    }
    buildTypes {
        release {
          
     // Signing with the debug keys for now, so `flutter run --release`works.
//          signingConfig signingConfigs.debug
            signingConfig signingConfigs.release
            //混淆
            minifyEnabled true
            useProguard true
            //Zipalign优化
            zipAlignEnabled true
            // 移除无用的resource文件
            shrinkResources true

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

            ndk {
                 //设置只支持armeabi-v7a 平台,与签名无关,可以自己配置
                abiFilters "armeabi-v7a"
            }
        }
    }

}
构建一个发布版apk(打包)

上述步骤完成以后

Terminal中运行:

flutter build apk

(flutter build 默认会包含 --release选项)

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

在设备上安装发行版APK

按照以下步骤在已连接的Android设备上安装上一步中构建的APK

使用命令行:

  1. 用USB您的Android设备连接到您的电脑

  2. cd<app dir> .

  3. 运行 flutter install .

    详细参考:发布Android版APP

参考:

Flutter打包

Android如何用命令行生成keystore

包](https://www.jianshu.com/p/888ac3b7df01)

Android如何用命令行生成keystore

在 **VS Code** 中配置 **Flutter** 的签名打包(即生成正式发布版 APK 或 AAB 文件),需要完成以下步骤:**生成签名密钥、配置 `build.gradle` 文件、使用命令行打包**。 --- ## ✅ 一、生成签名密钥(Keystore) 签名是发布 Android App 的必要步骤。你可以使用 Java 的 `keytool` 工具生成签名密钥: ```bash keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -storetype JKS -validity 10000 ``` ### 参数说明: - `key.jks`:密钥文件名(可自定义) - `-keyalg RSA`:使用 RSA 加密算法 - `-validity 10000`:证书有效期(单位:天) 执行后会提示你输入: - 密钥库口令(Keystore password) - 姓名、组织单位等信息 - 密钥别名(Key alias) - 密钥口令(默认和密钥库一致) --- ## ✅ 二、将签名信息配置到 Flutter 项目中 ### 1. 将 `key.jks` 文件放到项目目录中: 建议路径:`android/app/key.jks` ### 2. 编辑 `android/app/build.gradle` 文件 在 `android/app/build.gradle` 中添加签名配置: ```gradle android { ... signingConfigs { release { keyAlias 'your-key-alias' keyPassword 'your-key-password' storeFile file('../app/key.jks') storePassword 'your-store-password' } } buildTypes { release { ... signingConfig signingConfigs.release } } } ``` > 请将上面的 `your-key-alias`、`your-key-password`、`your-store-password` 替换为你在生成密钥时设置的值。 --- ## ✅ 三、使用 VS Code 打包 APK 或 AAB ### 1. 打开 VS Code 的终端(Terminal) ```bash # 打包 APK(适用于 Google Play 和普通发布) flutter build apk # 或者打包 AAB(Google Play 推荐格式) flutter build appbundle ``` 打包完成后,APK 文件会生成在: ``` build/app/outputs/flutter-apk/app-release.apk ``` AAB 文件会生成在: ``` build/app/outputs/bundle/release/app-release.aab ``` --- ## ✅ 四、验证签名是否成功 你可以使用 `apksigner` 工具来验证 APK 的签名: ```bash apksigner verify --verbose app-release.apk ``` 如果看到 `Verified using v1 scheme (JAR signing): true` 和 `Verified using v2 scheme (APK Signature Scheme v2): true`,说明签名成功。 --- ## ✅ 五、VS Code 插件推荐 | 插件名称 | 功能 | |----------|------| | **Flutter** | 官方插件,支持 Flutter 项目开发、调试、打包 | | **Dart** | 支持 Dart 语言高亮与提示 | | **GitLens** | Git 提交记录查看 | | **Android Manifest Viewer** | 快速查看 AndroidManifest.xml | --- ## ✅ 总结流程图 ``` 生成签名密钥 → 配置 build.gradle → flutter build apk/appbundle → 验证签名 ``` --- ## ✅ 相关问题:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值