如何继续 "on error" 使用 Fastlane

How to continue "on error" using Fastlane

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

例如,如果我下面运行 "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

您可以使用 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

它不是很漂亮,但如果你想为每条泳道捕捉错误,那是最好的方法。

Ruby

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

Swift

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