FastLanes. Запустите sh action в корневой папке проекта Xcode

Бег 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's sh действие проходит в ./fastlane каталог. Пример, fastlane test_sh для следующих Fastfile

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

приводит к where_am_i.txt создан в ./fastlane папка. Не в папке где fastlane был запущен.

Очевидно, я мог бы изменить все сценарии, чтобы включить ../ но интересно, был ли способ сделать fastlane бежать sh действие в корневом проекте xCode?

3 ответа

Решение

Получается довольно просто, просто добавь cd.. && перейти в корневой каталог.

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

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

Чтобы изменить каталог, вы можете использовать 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

Вызов действия скоростной полосы в сценарии оболочки.

переходим в папку, в которой есть папка fastlane.

path = "путь к скоростной полосе"

      cd $path/
fastlaneAction="fastlane test_do"
$fastlaneAction
Другие вопросы по тегам