和尚是搞 Android 的,曾经尝试过打包 APK 文件失败,由于种种原因暂停研究,今天重新学习一下如何打包 APK 。官网讲解的清楚明了,和尚在此基础上整理一下打包过程中遇到的问题。
<uses-permission android:name="android.permission.INTERNET"/>
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
3.1 创建一个 key.properties 文件,名称并非绝对,并在文件中填写如下 key 基本信息;
storePassword=123456
keyPassword=123456
keyAlias=key
storeFile=/Users/.../key.jks
3.2 在 gradle 文件中添加如下消息,名称要对应;
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
flutter build apk
和尚以前尝试时生成过 key.jks 文件,但是实在是想不起密码,打包一直失败,无奈重新生成一个 key02.jks 文件,使用新的签名,但是在真正的项目中建议使用一套签名文件,否则在升级或其他情况会出问题,所以密码和签名文件要牢记;
keytool -genkey -v -keystore ~/key02.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
Tips: alias 和签名文件要与 key.properties 中对应。
和尚以前发布插件时配置了一个墙外环境和墙内环境两套,所以有些混乱,这个问题主要是 Flutter 环境未找到,需要找到个人配置的环境即可,若有问题可参考和尚很久以前分别为 Windows 和 Mac 环境下配置环境的小博客。
Flutter 的打包并非难题,主要是细节方面要多注意,尤其是签名文件要牢记;如果有错误的地方烦请多多指导