【问题标题】:How to continue "on error" using Fastlane如何使用 Fastlane 继续“出错”
【发布时间】:2021-01-26 03:15:08
【问题描述】:

我正在尝试使用 Fastlane 自动部署到 TestFlight。即使其中一条车道出错,我也希望它继续“出错”。

例如,如果我在下面运行“doall”并且出现“item1”错误,我希望它仍然运行“item2”和“item3”。

这可能吗,如果可以,怎么办?谢谢!

lane :item1 do
 # Do some stuff
end

lane :item2 do
 # Do some stuff
end

lane :item3 do
 # Do some stuff
end

lane :doall do
 item1 # This causes an error
 item2
 item3
end

error do |lane, exception|
 # Send error notification
end

【问题讨论】:

    标签: automation fastlane


    【解决方案1】:

    您可以使用 Ruby 错误处理来做到这一点

    lane :item1 do
     # Do some stuff
    end
    
    lane :item2 do
     # Do some stuff
    end
    
    lane :item3 do
     # Do some stuff
    end
    
    lane :doall do
     begin
       item1 # This causes an error
     rescue => ex
       UI.error(ex)
     end
     begin
       item2
     rescue => ex
       UI.error(ex)
     end
     begin
       item3
     rescue => ex
       UI.error(ex)
     end
    end
    
    error do |lane, exception|
     # Send error notification
    end
    

    它不是超级漂亮,但如果你想捕捉每条车道的错误,这是最好的方法。

    【讨论】:

    • @KrauseFx 什么是 swift 等价物。即如何在 fastfile.swift 中实现它?
    • 寻找finally 块?使用ensure! try-catch-finally 的 Ruby 类比是 begin-rescue-ensure
    【解决方案2】:

    红宝石

    begin
      do_something_that_may_cause_error
    rescue => ex
      # handle error
    ensure
      # do something that always run like clean up
    end
    

    斯威夫特

    defer { 
      // do something that always run like clean up
    }
    do {
      try doSomethingThatMayCauseError()
    } catch (error) {
      // handle error
    }
    

    【讨论】:

      猜你喜欢
      • 2014-01-04
      • 2016-09-20
      • 2020-02-25
      • 2021-12-22
      • 2014-08-17
      • 2019-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多