如何在子文件夹中运行 Fastlane 操作
Posted
技术标签:
【中文标题】如何在子文件夹中运行 Fastlane 操作【英文标题】:How to run Fastlane action in a subfolder 【发布时间】:2016-09-01 06:50:58 【问题描述】:我正在使用 Fastlane 构建我的 ios 项目,并且我正在使用 Carthage 操作
问题是我在不同的子文件夹中有几个 iOS 项目,所以我需要在该子文件夹中运行 carthage(command: "bootstrap")
。
我尝试切换到项目所在的目录,但它不起作用
lane :test do
Dir.chdir("../MyProject") do
carthage(command: "update")
end
end
我怎样才能做到这一点?
【问题讨论】:
【参考方案1】:我最终只是在子文件夹中调用了一个脚本:
lane :build do
Dir.chdir("../MySubdir") do
sh "carthage bootstrap --platform iOS"
end
end
【讨论】:
【参考方案2】:我遇到了类似的问题,有几个类似的项目,并试图为他们所有人重新使用 Fastfile
。
我的方法是在根 MyProject/fastlane
文件夹上有一个通用的 Fastfile
,其中包含所需的所有逻辑,例如您的
lane :test do
carthage(command: "update")
end
然后,对于每个项目/子文件夹,您都有一个只有 loads the main Fastfile
from your ../MyProject
folder 的 Fastfile,例如:
import "../MyProject/fastlane/Fastfile"
之后,您可以在具有所有项目共享逻辑的特定文件夹上执行命令,能够只在一个地方解决问题和增加命令,还可以使用override_lane command为每个项目进行自定义
【讨论】:
你知道你是否也可以用 import_from_git 做到这一点吗? @jesses.co.tt 我相信确实如此。我已经在 Fastlane 的早期 2.x 版本上进行了测试,当时它确实有效,我建议在较新的版本上进行测试以确保它仍然有效以上是关于如何在子文件夹中运行 Fastlane 操作的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 fastlane 在 Firebase 测试实验室中运行 XCUItest?
Fastlane:如何根据 --env 从父目录加载 .env 文件
如何手动将现有的配置文件和证书添加到 fastlane 匹配?