【问题标题】:Custom Variable in Fastlane ScriptFastlane 脚本中的自定义变量
【发布时间】:2017-12-13 16:32:06
【问题描述】:

对于这样一个新手问题,我很抱歉,但我对如何在使用提供的方法之外编写 Fastlane 脚本感到非常困惑。

我要做的是创建一个名为 message 的变量,它可以传递给 after_all 函数,所以当我发布到 Slack 时,每个通道都可以有自己的自定义消息:

put message # is this how to set a variable?
lane :alpha do
    # This is what I'd like to do
    message = "[Google Play] Alpha Channel Deployed"
end

after_all |lane, options| do
    slack(message: message)
end

谁能指出我正确的方向?我完全不知道如何在 Fastfile 脚本中创建和传递并非来自命令行的变量

【问题讨论】:

  • 您使用= 运算符设置变量,就像您在第4 行中所做的那样。局部变量仅存在于创建它的范围内。我对Fastlane一无所知,但假设传递给lane的块在传递给after_all的块之前被调用,那么将第一行更改为message = nil(以便变量存在于第一个块的范围之外)可能工作。
  • 如果你不知道如何使用 Ruby,一个好的开始是阅读一些文档,也许从 this tutorial 开始。
  • @Jordan - 这行得通。我想我只需要先初始化它。我昨晚阅读的教程在这方面没有帮助。我会看看你发布的内容!
  • @Jordan - 你能发表你的评论作为答案,这样我就可以给你一些甜蜜的点了吗?
  • 很高兴它成功了!发布了答案。

标签: ruby fastlane


【解决方案1】:

或者,您还可以执行以下操作:

lane :alpha do
  @message = "[Google Play] Alpha Channel Deployed"
end

after_all |lane, options| do
  slack(message: @message)
end

【讨论】:

  • 完美运行,但发生了什么?你能解释一下不是红宝石的人吗?
  • 回答我自己,这只是 ivar :)
【解决方案2】:

您使用= 运算符设置变量,就像您在第4 行中所做的那样。局部变量仅存在于创建它的范围内。假设传递给lane 的块在传递给after_all 的块之前被调用,那么将第一行更改为message = nil(以便变量存在于第一个块的范围之外)应该可以工作:

message = nil

lane :alpha do
  message = "[Google Play] Alpha Channel Deployed"
end

after_all |lane, options| do
  slack(message: message)
end

【讨论】:

  • 我正在尝试执行一个返回一个目录的 shell 脚本。我还需要像这样动态地将参数传递给这个脚本,lane :addPrivateKey do | options | sh ('cd .. && ./add_key.sh options[:clientKey]') end。现在它采用 options[:clientKey] 作为参数,而不是发送到通道的实际参数。我知道它在字符串中,这就是为什么但如何从选项变量中取出它?
【解决方案3】:

从 Fastlane 2.69 开始,您现在可以使用 swift 创建 fastfile! 参考:https://github.com/fastlane/fastlane/releases/tag/2.69.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-14
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多