1、打开终端生成签名文件
keytool -genkey -v -keystore ~/sign.jks -keyalg RSA -keysize 2048 -validity 10000 -alias sign
结果
输入**库口令:
再次输入新口令:
您的名字与姓氏是什么?
[Unknown]: yuanzhiying
您的组织单位名称是什么?
[Unknown]: gongsi
您的组织名称是什么?
[Unknown]: gongsi
您所在的城市或区域名称是什么?
[Unknown]: beijing
您所在的省/市/自治区名称是什么?
[Unknown]: beijing
该单位的双字母国家/地区代码是什么?
[Unknown]: CN
CN=yuanzhiying, OU=gongsi, O=gongsi, L=beijing, ST=beijing, C=CN是否正确?
[否]: Y
正在为以下对象生成 2,048 位RSA**对和自签名证书 (SHA256withRSA) (有效期为 10,000 天):
CN=yuanzhiying, OU=gongsi, O=gongsi, L=beijing, ST=beijing, C=CN
[正在存储/Users/yuanzhiying/sign.jks]
查看生成的签名文件:
keytool -list -v -keystore sign.jks
输入**库口令: <输入**>
如果出现 The operation couldn’t be completed. Unable to locate a Java Runtime. 的问题
是因为我们在Mac中没有安装JDK
环境。我们需要去Java Downloads | Oracle下载合适的JDK版本。
我的Mac是 Apple M2 芯片,所以选择ARM64 DMG Installer。如果是Intel芯片的Mac,选择x64 DMG Installer。
各位可以根据自己需要及电脑配置选择合适的版本。下载成功之后,双击进行安装。
检查是否安装成功,打开终端执行java -version
指令
2、在 Android Studio 中的 Flutter 项目的目录 /android/app 下创建文件夹 key,将生成的 sign.jks 文件拖放到 key 文件夹下。
3、在 Flutter 项目目录 android 下创建文件 key.properties 并添加以下内容:
storePassword=123456
keyPassword=123456
keyAlias=sign
storeFile=key/sign.jks
4、打开 /android/app/build.gradle 文件,添加以下内容
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
5、在 Android Studio 项目下的 Terminal 中,执行打包命令:
flutter build apk
如果报错 zsh: command not found: flutter
则执行
source ~/.bash_profile
flutter build apk
打包apk成功
打包完成后,apk文件将存储在Flutter项目的 build/app/outputs/apk 目录中。