从另一个目录调用fastlane及其操作

时间:2019-11-01 07:10:32

标签: ruby fastlane

我正在开发一个ruby项目,目前它的意图是使iOS项目的部署过程自动化。将来会考虑使用android。

ruby​​部署文件将采用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"
        }
    ]
}

该项目的最初想法是:

  • 具有自己的git存储库的部署项目(Gemfile,文件,依赖项...)。
  • 具有自己的存储库的Xcode项目。
  • 具有自己存储库的Fastlane项目(包含所有fastlane文件)
  • 正确的设置
  • Xcode和Fastlane项目作为部署项目的子模块。

整个项目旨在放在CI机器中。

注意(如果需要)询问更多信息。

问题

Deployment项目使用 exec()调用快速通道操作。由于fastlane文件夹现在位于 ./XcodeProject/fastlane,我怎么称呼这些动作?我的第一种方法是:

exec("fastlane ./XcodeProject/MyAction")

但是我错了...

有什么想法吗? 谢谢

1 个答案:

答案 0 :(得分:1)

您也许可以使用Shell脚本临时更改工作目录,将cdfastlane命令括在括号中,如下所示:

(cd XcodeProject && fastlane MyAction)

我不确定在您的exec(...)调用中是否可以使用,但是您可以编写一个执行上述操作的外部脚本,然后在exec调用中运行该脚本。

有关更多信息,请参见this post