Вызов fastlane с его действиями из другого каталога - PullRequest
0 голосов
/ 01 ноября 2019

Я работаю над проектом ruby, целью которого на данный момент является автоматизация процесса развертывания проекта iOS. В будущем будет рассматриваться android.

Файл развертывания ruby ​​будет иметь URL JSON, который содержит информацию о приложениях, предназначенных для выпуска. Действия Fastlane сделают эту работу.

{
    "version":1.0,
    "build":2,
    "git":{
        "name":"appName",
        "url":"git@gitlab.com:me/myapp.git"
    },
    "apps":[
        {
            "bundle_id":"com.myapp1",
            "app_name":"App1",
            "username":"me@kmail.com",
            "password":"1234",
            "team_name":"TeamName"
        },
        {
            "bundle_id":"com.App2",
            "app_name":"App2",
            "username":"me@kmail.com",
            "password":"1234",
            "team_name":"TeamName"
        }
    ]
}

Первоначальная идея проекта заключалась в следующем:

  • Проект развертывания (Gemfile, файлы, зависимости ...) сего собственный репозиторий git.
  • Проект Xcode с собственным репозиторием.
  • Проект Fastlane (со всеми файлами fastlane) с собственным репозиторием
  • Корректная настройка
  • Проекты Xcode и Fastlane как подмодули проекта развертывания.

Весь этот проект предназначен для CI-машины.

ПРИМЕЧАНИЕ Запросите большеинформация при необходимости.

Вопрос

Проект развертывания вызывает действия fastlane с использованием exec () . Поскольку папка fastlane теперь находится в ./XcodeProject/fastlane, как я могу вызвать действия? Мой первый подход был:

exec("fastlane ./XcodeProject/MyAction")

но я ошибаюсь ...

Есть идеи? Спасибо

1 Ответ

1 голос
/ 09 ноября 2019

Вы можете временно изменить свой рабочий каталог, используя сценарий оболочки, где вы заключаете ваши команды cd и fastlane в круглые скобки, например:

(cd XcodeProject && fastlane MyAction)

Я не уверен, что это сработает в вашем exec(...) вызове, но вы можете написать внешний скрипт, который выполняет описанные выше действия, а затем запустить его в вызове exec.

См. этот пост для получения дополнительной информации.

...