我正在开发一个工作流程来构建和共享 ios 应用程序到 testflight。 我已经设置了触发点:
on:
push:
branches:
- feature/prod_ios_workflow
但我注意到这个工作流程正在主分支代码上运行。
main 分支包含 pubspec.yaml 文件中的旧代码和依赖项。 而 feature/prod_ios_workflow 分支包含最新的代码和依赖项版本。
例如: feature/prod_ios_workflow 分支中的 pubspec.yaml 文件没有
flutter_localizations
套餐
但主分支中的 pubspec.yaml 文件具有此依赖性。
现在我删除了该依赖项,因为我不再使用它并且它与其他包冲突。
在我的工作流程中我正在做
flutter clean
flutter pub get
因此它在
flutter pub get
上失败,说明 flutter_localization 包需要最新版本的 intl 包。
我花了很多时间来检查那里出了什么问题。 最终我用了
- name: Remove flutter_localization
run: flutter pub remove flutter_localizations
删除软件包以解决此冲突。
现在生成构建时出现了另一个问题。
在 feature/prod_ios_workflow 分支中我有: 截图:^3.0.0 但在主分支中:
screenshot:^2.1.0
当我升级flutter sdk时,我的截图包出现了一些错误,所以我也将截图包从2.1.0更新到3.0.0,它解决了我IDE中的问题。
所以我知道为什么构建失败了,因为最新的flutter sdk需要
screenshot:^3.0.0
但我不明白的是我在 feature/prod_ios_workflow 分支上,工作流应该在这个分支的代码上运行。但它从主分支获取代码。(这完全是疯了。)
任何帮助将不胜感激。
花了这么多时间,我找到了问题的原因。
- name: Set up git and fetch all history for all branches and tags
uses: actions/checkout@v4
with:
ref: main
我只需要将
main
替换为 feature/prod_ios_workflow
,如下所示:
- name: Set up git and fetch all history for all branches and tags
uses: actions/checkout@v4
with:
ref: feature/prod_ios_workflow
或者你可以简单地删除 with 部分,如下所示:
- name: Set up git and fetch all history for all branches and tags
uses: actions/checkout@v4