快车道。 运行 Xcode 项目根文件夹中的 sh 操作

FastLanes. Run sh action in Xcode project root folder

运行 fastlane build_and_renameFastfile,

  lane :build_and_rename do
    sigh
    gym(output_directory: "./Build/")
    sh "mv ./Build/MY-APP.ipa ./Build/nicely_name.ipa"
  end

导致以下错误ln: ./Build/MY-APP.ipa: No such file or directory

测试显示 FastLane 的 sh 操作 运行 在 ./fastlane 目录中。例如,fastlane test_sh 用于以下 Fastfile

  lane :test_sh do
    sh "touch where_am_i.txt"
  end

导致在 ./fastlane 文件夹中创建 where_am_i.txt。不在 fastlane 运行.

的文件夹中

显然我可以更改所有脚本以包含 ../ 但想知道是否有办法在 xCode 中执行 fastlane 运行 sh 操作'根项目?

原来很简单,加cd.. &&就可以换到根目录了

lane :test_sh do
    sh "cd .. && touch where_am_i.txt"
end

https://github.com/fastlane/fastlane/issues/990#issuecomment

要更改目录,您可以使用 Ruby、Dir.chdir

例子

lane :test_sh do
  Dir.chdir("..") do
    # code here runs in the parent directory
    sh "touch where_am_i.txt"
  end    
end

Fastlane docs

在 shell 脚本中调用快速通道操作。

前往包含 fastlane 文件夹的文件夹。

path="快速通道的路径"

cd $path/
fastlaneAction="fastlane test_do"
$fastlaneAction