feat:更新博客

This commit is contained in:
2025-12-03 19:56:05 +08:00
parent aa0603efff
commit cf8fec51a0
4 changed files with 82 additions and 0 deletions

0
docs/Flutter/Guide.md Normal file
View File

70
docs/Flutter/Practice.md Normal file
View File

@@ -0,0 +1,70 @@
# 安卓签名
  每次安装/升级软件必须使用同一个签名,否则会将本地数据全部清空。
## 1. 生成密钥库文件
  使用keytool命令生成
```cmd
keytool -genkey -v -keystore android/app/my-release-key.keystore -alias my-key -keyalg RSA -keysize 2048 -validity 10000
```
  根据提示输入相应信息。
  my.keystore为自定义名称。生成后的文件位于android/app/文件夹内
## 2. 配置key.properties
  在android文件夹内新建key.properties文件并配置信息
```properties
# 密钥库文件的密码
storePassword=12345678
# 密钥本身的密码
keyPassword=12345678
# 密钥的别名,在密钥库中标识具体的密钥
keyAlias=my-key
# 密钥库文件相对于本配置文件的路径
storeFile=my-release-key.keystore
```
## 3. 配置build.gradle.kts
```kts
import java.util.Properties
import java.io.FileInputStream
// 从根路径加载密钥属性
val keystoreProperties = Properties()
val keystorePropertiesFile = rootProject.file("key.properties")
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(FileInputStream(keystorePropertiesFile))
}
```
  在android块内新增签名配置
```kts
android {
// 签名配置
signingConfigs {
create("release") {
if (keystorePropertiesFile.exists()) {
keyAlias = keystoreProperties.getProperty("keyAlias")
keyPassword = keystoreProperties.getProperty("keyPassword")
storeFile = file(keystoreProperties.getProperty("storeFile"))
storePassword = keystoreProperties.getProperty("storePassword")
}
}
}
buildTypes {
release {
signingConfig = if (keystorePropertiesFile.exists()) {
// 使用发布签名
signingConfigs.getByName("release")
} else {
// 使用默认签名
signingConfigs.getByName("debug")
}
}
}
}
```
  打包为release包时即可生效签名。
> [!CAUTION]
> 禁止将签名文件上传到Git仓库中。

View File

@@ -4,3 +4,6 @@ title: Flutter
---
# 内容导航
- [基础教程](/Flutter/Guide)
- [实战技巧](/Flutter/Practice)