Flutter版本管理或发布插件dart_release的使用
Flutter版本管理或发布插件dart_release的使用
dart_release
是一个用于构建和发布Dart应用程序的工具,例如在GitHub上发布或部署到Web服务器。也可以查看相应的GitHub操作:GitHub action。
示例
构建
dart_release build \
--main-path "bin/example.dart" # Dart入口文件路径
--app-name example # 应用程序名称
--app-version v0.0.1-alpha.1 # 应用程序版本号
--build-arg=--define=DB_USER=user # 构建参数,例如数据库用户名
--build-arg=--define=DB_PASSWORD=12345678 # 构建参数,例如数据库密码
--include-path README.md # 包含的文件路径
如果命令未找到(不在PATH中),尝试运行:
dart pub global run dart_release ...
注意,传递给--build-arg
的base64参数不应包含任何换行符:
MY_BASE_64=$(base64 --wrap=0 /myfile)
或者在传递之前删除换行符:
MY_BASE_64="${MY_BASE_64//$'\n'/}"
选项
main-path
: Dart入口点app-name
: 应用程序可执行文件名app-version
: 版本号(语义化版本,如v1.2.3
),参见 语义化版本
支持的功能
平台 | Windows | macOS | Linux |
---|---|---|---|
构建 | windows | macos | linux |
发布 | Microsoft Store ❌ | Home Brew ❌ | Snap ❌ |
部署 | Windows Server ❌ | Mac Server ❌ | Linux Server ✓ |
其他应用分发商的支持正在计划中。
部署设置
-
在客户端生成密钥对:
ssh-keygen -t ed25519 -f $HOME/.ssh/id_ed25519_dart_release -C dart_release
不带 密码
-
将
cat $HOME/.ssh/id_ed25519_dart_release.pub
的输出添加到服务器的$HOME/.ssh/authorized_keys
-
将私钥转换为base64字符串:
base64 --wrap=0 $HOME/.ssh/id_ed25519_dart_release
-
运行
dart_release
命令进行部署:dart_release deploy \ --dry-run \ # 干跑模式,不实际部署 --app-name example \ # 应用程序名称 --app-version v0.0.1-alpha.1 \ # 应用程序版本号 --build-arg=--define=DB_USER=user \ # 构建参数,例如数据库用户名 --build-arg=--define=DB_PASSWORD=12345678 \ # 构建参数,例如数据库密码 --host=host.example.com \ # 目标主机地址 --path=.local/share/example/ \ # 部署目标路径 --ssh-port=22 \ # SSH端口 --ssh-user=<user> \ # SSH用户 --ssh-private-key-base64=<private-key> \ # SSH私钥的base64字符串 --main-path bin/example.dart \ # Dart入口文件路径 --include-path public \ # 包含的文件路径 --include-path .env.example \ # 包含的文件路径 --pre-script deploy-pre-run.sh \ # 预部署脚本 --post-script deploy-post-run.sh # 后部署脚本
更多关于Flutter版本管理或发布插件dart_release的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter版本管理或发布插件dart_release的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在处理Flutter版本管理或发布插件时,dart_release
是一个有用的工具,可以帮助你自动化版本发布流程。虽然dart_release
本身不是一个广泛认知的标准Flutter插件(可能是由于Flutter社区中存在多种类似的工具和方法),但基于你的要求,我将展示一个假设的dart_release
或类似工具可能如何集成到Flutter项目中的示例代码。请注意,这里的代码示例是假设性的,旨在展示概念,因为具体的dart_release
工具实现细节可能有所不同。
假设的dart_release
工具使用示例
1. 安装依赖
首先,假设dart_release
是一个Dart包,你可以通过pub
工具安装它:
dart pub add dart_release
或者,如果它是一个全局命令行工具,你可能需要通过pub global activate
来安装:
dart pub global activate dart_release
2. 配置pubspec.yaml
在Flutter项目的pubspec.yaml
文件中,确保你的依赖项是最新的,并且准备好进行版本控制。
name: my_flutter_app
description: A new Flutter application.
version: 1.0.0+1 # 这里的版本号会在发布时更新
dependencies:
flutter:
sdk: flutter
dev_dependencies:
build_runner: ^2.0.0
dart_release: ^0.1.0 # 假设的版本号
3. 创建发布脚本
在项目的根目录下创建一个脚本文件,比如release.dart
,用于处理版本更新和发布逻辑。
import 'package:dart_release/dart_release.dart' as release; // 假设的包导入路径
void main(List<String> arguments) async {
// 检查命令行参数
if (arguments.isEmpty) {
print('Usage: dart release.dart <new-version>');
return;
}
String newVersion = arguments.first;
try {
// 更新pubspec.yaml中的版本号
await release.updateVersion(newVersion);
// 执行其他发布前的准备工作,比如构建应用
await release.buildApp();
// 发布到相应的平台(这里只是示例,具体实现依赖于平台)
await release.publishToPlatform();
print('Version $newVersion has been successfully released.');
} catch (e) {
print('Error during release process: $e');
}
}
注意:上述代码中的release.updateVersion
, release.buildApp
, 和 release.publishToPlatform
函数是假设存在的,实际使用时需要根据dart_release
或你选择的发布工具的API进行调整。
4. 运行发布脚本
使用Dart命令行工具运行发布脚本,并指定新版本号:
dart release.dart 1.0.1+1
替代方案:使用其他工具
如果dart_release
不符合你的需求或不存在,你可以考虑使用其他流行的Flutter发布工具,如flutter_launcher_icons
, melos
, 或changelog_generator
等,结合自定义脚本实现版本管理和发布流程。
例如,使用melos
进行多包管理:
melos bump --next-version patch
melos publish
或者使用changelog_generator
生成变更日志,作为发布流程的一部分。
结论
虽然具体的dart_release
工具细节可能有所不同,但上述示例展示了如何将版本管理和发布流程自动化集成到Flutter项目中。根据你的具体需求,你可能需要调整脚本和工具链以适应你的工作流程。