如何在子文件夹中运行Fastlane操作

Jan*_*Jan 5 ios fastlane

我正在使用Fastlane构建我的iOS项目,并且正在使用“ 迦太基”动作

问题是我在不同的子文件夹中有几个iOS项目,因此我需要carthage(command: "bootstrap")在该子文件夹中运行。

我尝试更改为项目所在的目录,但它不起作用

lane :test do
    Dir.chdir("../MyProject") do
        carthage(command: "update")
    end
end
Run Code Online (Sandbox Code Playgroud)

我该如何实现?

Jan*_*Jan 6

我最终只是在子文件夹中调用了一个脚本:

lane :build do
    Dir.chdir("../MySubdir") do
        sh "carthage bootstrap --platform iOS"
    end
end
Run Code Online (Sandbox Code Playgroud)


Fel*_*ino 5

我有一个类似的问题,有几个类似的项目,并试图Fastfile为所有这些项目重用。

我的方法是Fastfile在根MyProject/fastlane文件夹上有一个通用的,包含所有需要的逻辑,比如你的

lane :test do
  carthage(command: "update")
end
Run Code Online (Sandbox Code Playgroud)

然后,对于每个项目/子文件夹,您都有一个 Fastfile ,它只从您的文件夹加载主文件夹Fastfile../MyProject,例如:

import "../MyProject/fastlane/Fastfile"
Run Code Online (Sandbox Code Playgroud)

之后,您可以在具有所有项目共享逻辑的特定文件夹上执行命令,能够解决问题并仅在一个地方增加命令,还可以使用override_lane 命令为每个项目自定义