73 lines
2.2 KiB
Markdown
73 lines
2.2 KiB
Markdown
# 星锁APP
|
||
|
||
星云项目组旗下的智能锁应用,其中锁相关数据接入星云平台,业务数据接入星锁自有后台。
|
||
|
||
基于Flutter技术架构,支持Android和iOS平台。
|
||
|
||
## 开发步骤
|
||
|
||
### 安装Flutter
|
||
|
||
参阅 [安装 - Flutter](https://docs.flutter.dev/get-started/install)
|
||
|
||
然后 `flutter doctor` 检查环境
|
||
|
||
### 禁用不需要的平台
|
||
|
||
```bash
|
||
flutter config --no-enable-macos-desktop --no-enable-windows-desktop --no-enable-linux-desktop --no-enable-web
|
||
```
|
||
|
||
|
||
### 安装依赖
|
||
|
||
```bash
|
||
flutter pub get
|
||
```
|
||
|
||
### 运行
|
||
|
||
```bash
|
||
|
||
# 运行sky渠道
|
||
flutter run --flavor sky -t lib/main_sky.dart
|
||
|
||
```
|
||
|
||
## 配置签名
|
||
|
||
参阅 [构建和发布 Android 应用 - 创建上载密钥库 - Flutter](https://docs.flutter.dev/deployment/android#create-an-upload-keystore)
|
||
|
||
为发布渠道创建JAVA密钥储存(密钥库)文件 `.jks`,或者 `.keystore` 文件。
|
||
|
||
```bash
|
||
keytool -genkey -v -keystore android/app/sky.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
|
||
```
|
||
|
||
请记住你输入的主密码和键密码
|
||
|
||
因为本项目将会发布2个以上的渠道,所以密钥库也会有2个以上,请注意区分 同一个发布渠道必须使用同一个密钥库,不要生成多个。
|
||
|
||
为了编译管理方便,我们将密钥库文件放在了项目代码内。
|
||
|
||
`key.properties` 文件用于存放密钥库的相关信息,但是我们不用这个文件,而是直接在 `build.gradle` 中写入密钥库的相关信息。
|
||
因为我们将密钥库文件本身都已经储存在git中了,也就没必要再单独存放密钥信息了。
|
||
|
||
## 编译
|
||
```bash
|
||
flutter build apk --split-per-abi --release --flavor sky -t lib/main_sky.dart
|
||
```
|
||
|
||
## 获取编译包的签名
|
||
用于APP备案,国内商店上架等
|
||
|
||
需要使用到`apksigner`工具,对于Windows来说,它在:`C:\Users\myUser\AppData\Local\Android\Sdk\build-tools\34.0.0\lib`
|
||
|
||
在 `git bash` 中我需要使用 `apksigner.bat` 来使用它;在其它系统中应该可以直接使用 `apksigner` 命令即可。
|
||
|
||
参阅:[How to find signature of apk file?](https://stackoverflow.com/questions/38558623/how-to-find-signature-of-apk-file)
|
||
|
||
```bash
|
||
apksigner verify --print-certs -v build/app/outputs/flutter-apk/app-sky-release.apk
|
||
```
|