FastLanes。在Xcode项目根文件夹中运行sh动作

时间:2015-11-04 14:54:16

标签: ios fastlane

在以下fastlane build_and_rename上运行Fastfile

  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

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

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

2 个答案:

答案 0 :(得分:5)

事实证明这很简单,只需添加cd.. &&即可更改到根目录。

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

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

答案 1 :(得分:1)

要更改您可以使用 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