Flutter发布工具插件release_tools的使用

发布于 1周前 作者 zlyuanteng 来自 Flutter

Flutter发布工具插件 release_tools 的使用

release_tools 是一个用于帮助创建和发布 Dart 包或库的脚本集合。本文将详细介绍如何安装和使用这个工具。

安装

推荐全局安装 release_tools,以避免与项目的依赖冲突,并限制供应链攻击的风险。可以通过以下命令安装特定版本:

$ pub global activate release_tools 2.1.1

主要功能

更新版本号 (update_version)

更新 pubspec.yaml 文件中的版本号到指定版本:

$ release_tools update_version 1.0.1

如果需要更新其他文件中的版本号,可以使用 --file 参数:

$ release_tools update_version --file="README.md" 1.0.1

示例:假设 README.md 内容如下:

My Project

Current Version: 1.0.0

Starting from version 1.0.0, all alert buttons will be red.


运行以下命令:

```sh
$ release_tools update_version --file="README.md" --template="Current Version: [VERSION]" 1.0.1

结果:

My Project

Current Version: 1.0.1

Starting from version 1.0.0, all alert buttons will be red.


### 获取下一个版本号 (`next_version`)

根据提交日志获取下一个版本号:

```sh
$ release_tools next_version

如果提交日志中包含类似以下内容:

feat: something new

BREAKING-CHANGE: this changes everything

输出将是新的主版本号:

2.0.0

可以指定起始提交范围:

$ release_tools next_version --from=abcde1234 1.0.1

检查是否可以发布 (should_release)

检查是否有可发布的提交日志:

$ release_tools should_release
yes

如果有可发布的提交(如 fix, feat, 或 BREAKING CHANGE),则返回 yes

更新变更日志 (changelog)

基于可发布的提交更新 CHANGELOG.md 文件:

$ release_tools changelog 2.0.1

示例 CHANGELOG.md:

1.0.0 (2021-02-09)

Bug Fixes

Features

BREAKING CHANGES


### 更新年份 (`update_year`)

更新文件中的版权年份(默认为 `LICENSE` 文件):

```sh
$ release_tools update_year

例如,当前年份为 2021,文件中的年份值会按规则更新。

获取远程标签的提交ID (remote_tag_id)

获取远程仓库上某个标签对应的提交ID:

$ release_tools remote_tag_id 0.2.2
# 3ed81541a61c7502b658c027f6d5ec87c129c1a9

获取当前版本号 (current_version)

获取 pubspec.yaml 中的当前版本号:

$ release_tools current_version
# 1.0.2

准备发布 (prepare_release)

完整的发布准备逻辑,包括以下几个步骤:

  1. 获取当前版本号。
  2. 获取从最后一个版本标签开始的提交日志。
  3. 检查是否可以发布。
  4. 更新 pubspec.yaml 中的版本号。
  5. 创建变更日志。

示例:

$ release_tools prepare_release
Version bumped to: 0.2.5

SUMMARY:

# 0.2.5 (2021-05-03)

## Bug Fixes

- **changelog:** performance section in changelogs ([063e07d](commit/063e07d))

## Features

- prepare_release command ([877d63e](commit/877d63e))

如果需要生成总结文件,可以使用 -w 参数:

$ release_tools prepare_release -w

这将生成两个文件:VERSION.txtRELEASE_SUMMARY.txt,分别包含即将发布的版本号和变更摘要。

示例项目结构

为了更好地理解 release_tools 的使用,这里提供一个简单的 Flutter 项目示例:

my_flutter_project/
├── README.md
├── CHANGELOG.md
├── LICENSE
├── pubspec.yaml
└── lib/
    └── main.dart

使用 release_tools 进行发布准备

  1. 更新版本号

    $ release_tools update_version 1.0.1
    
  2. 检查是否可以发布

    $ release_tools should_release
    yes
    
  3. 生成变更日志

    $ release_tools changelog 1.0.1
    
  4. 准备发布

    $ release_tools prepare_release -w
    

更多关于Flutter发布工具插件release_tools的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter发布工具插件release_tools的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter项目中使用release_tools插件的示例代码和步骤。假设release_tools是一个用于简化发布流程的自定义Flutter插件,它可能包含了一些自动化任务,如构建APK/IPA、更新版本号和生成发布说明等。

1. 安装插件

首先,确保你的Flutter项目已经初始化,并且pubspec.yaml文件中已经添加了release_tools插件的依赖。由于release_tools是一个假设的插件名,实际使用时请替换为真实的插件名。

dependencies:
  flutter:
    sdk: flutter
  release_tools: ^1.0.0  # 假设版本号

然后运行flutter pub get来安装依赖。

2. 配置插件

在Flutter项目的根目录下创建一个release_config.yaml文件(或其他任何你选择的配置文件),用于存储发布工具的配置信息,例如版本号、渠道等。

# release_config.yaml
version: 1.2.3
channel: stable
release_notes: "This release includes bug fixes and performance improvements."

3. 使用插件

创建一个Dart脚本来调用release_tools插件的功能。你可以在tools目录下创建一个名为release.dart的文件,并在其中编写代码。

// tools/release.dart
import 'package:release_tools/release_tools.dart';
import 'dart:io';

void main() async {
  // 读取配置文件
  File configFile = File('release_config.yaml');
  String configContent = await configFile.readAsString();
  Map<String, dynamic> config = await loadYaml(configContent);

  // 初始化ReleaseTools
  ReleaseTools releaseTools = ReleaseTools(
    version: config['version'] as String,
    channel: config['channel'] as String,
    releaseNotes: config['release_notes'] as String,
  );

  // 执行发布流程
  try {
    // 构建APK/IPA
    await releaseTools.buildApp();

    // 更新版本号(假设插件支持此功能)
    await releaseTools.updateVersionInCode();

    // 提交到版本控制系统(例如Git)
    await releaseTools.commitAndPushToRepo();

    // 上传到应用商店(假设插件支持此功能)
    await releaseTools.uploadToAppStore();

    print('Release process completed successfully!');
  } catch (e) {
    print('Error during release process: $e');
  }
}

4. 运行脚本

你可以通过命令行运行这个Dart脚本。确保你在项目的根目录下,然后运行:

dart tools/release.dart

注意事项

  1. 插件功能:上面的代码示例假设release_tools插件提供了buildAppupdateVersionInCodecommitAndPushToRepouploadToAppStore等方法。实际使用时,请查阅插件的官方文档以了解其具体功能和方法。

  2. 配置文件release_config.yaml文件的内容应该根据插件的实际需求进行配置。

  3. 错误处理:在实际项目中,应该添加更多的错误处理和日志记录,以确保发布过程的可靠性和可追踪性。

  4. 安全性:如果你的发布流程涉及到敏感信息(如API密钥、密码等),请确保这些信息被安全地存储和管理。

由于release_tools是一个假设的插件名,以上代码仅为示例,实际使用时请替换为真实插件的API和文档。

回到顶部