【问题标题】:Run custom command before flutter build?在颤振构建之前运行自定义命令?
【发布时间】:2019-11-23 02:39:41
【问题描述】:

我正在构建一个使用协议缓冲区的颤振应用程序,我想在构建过程中编译 .proto 文件。如何在 Flutter 构建的 dart 编译之前运行自定义 shell 命令?

【问题讨论】:

  • 我不知道是否存在内置方法,但是您是否考虑过编写批处理或 shell 脚本
  • 这就是我目前正在使用的。如果可能的话,我想集成到默认的构建系统中。

标签: flutter dart protocol-buffers


【解决方案1】:

Flutter 还没有这个功能,最好有一个预构建脚本。

简单的预构建脚本

my-pre-build.sh

# my-pre-build.sh (run some commands)

用法

./my-pre-build.sh && flutter build apk

使用 Make 抽象构建

您还可以使用 Makefile 之类的东西抽象构建,我认为这会使事情变得更简单。

Makefile(在项目的根目录中)

# Build for Android (runs build-proto first)
build-apk: build-proto
    flutter test
    flutter build apk

# Build for iOS (runs build-proto first)
build-ios: build-proto
    flutter test
    flutter build ios

# Proto generation (calls terminal proto commands)
build-proto:
    proto-native-lib compile -f *.proto

用法

make build-android
make build-ios

这是捆绑重复命令和在不同构建类型之间重用脚本的有用方法。

【讨论】:

  • 这个解决方案最有意义,直到 Flutter 团队引入了一些内置的东西。
【解决方案2】:

我相信你可以在 Android Studio 中做到这一点。

1.转到Run > Edit Configurations

2。从(+) Add New Configuration > Shell Script添加一个新的Shell脚本配置

3.设置你的 shell 脚本执行。完成后请务必点击Apply。但不要关闭它。

4.选择Flutter > Run/main.dart > Before Launch > (+)Add > Run Another Configuration

5.选择您的 Shell 脚本配置

6.单击Apply,然后单击OK。您配置的 Shell 脚本现在将运行。

【讨论】:

  • 如果您是单独开发应用程序,这很有效,但如果您在一个团队中,每个成员都需要这样做。在我们的团队中,我们中的一些人使用 Android Studio,而其他人使用 VS Code。
【解决方案3】:

如果您想考虑一些不同的东西,我会通过使用外部构建工具来完成您的要求。就我而言,我选择了https://fastlane.tools/,它与 Flutter 完美集成,适用于 Android 和 iOS,并且是开源的。

【讨论】:

    猜你喜欢
    • 2016-10-18
    • 2020-04-28
    • 2020-12-13
    • 2020-12-05
    • 1970-01-01
    • 2022-08-05
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    相关资源
    最近更新 更多