fastlane_core/lib/fastlane_core/tool_collector.rb
# This is the original error reporting mechanism, which has always represented
# either controlled (UI.user_error!), or uncontrolled (UI.crash!, anything else)
# exceptions.
#
# Thus, if you call `did_crash`, it will record the failure both here, and in the
# newer, more specific `crash` field.
#
# This value is a String, which is the name of the tool that caused the error
This is the original error reporting mechanism, which has always represented
either controlled (UI.user_error!), or uncontrolled (UI.crash!, anything else)
exceptions.

Thus, if you call `did_crash`, it will record the failure both here, and in the
newer, more specific `crash` field.

This value is a String, which is the name of the tool that caused the error
This is the original error reporting mechanism which has always represented either controlled ( UI . user_error! ) or uncontrolled ( UI . crash! anything else ) exceptions . Thus if you call ` did_crash ` it will record the failure both here and in the newer more specific ` crash ` field . This value is a String which is the name of the tool that caused the error
def create_analytic_event_body
      analytics = []
      timestamp_seconds = Time.now.to_i
      fastfile_id = ENV["GENERATED_FASTFILE_ID"]
      if fastfile_id && launches.size == 1 && launches['fastlane']
        if crash
          completion_status = 'crash'
        elsif error
          completion_status = 'error'
        else
          completion_status = 'success'
        end
        analytics << event_for_web_onboarding(fastfile_id, completion_status, timestamp_seconds)
      end
      launches.each do |action, count|
        action_version = versions[action] || 'unknown'
        if crash && error == action
          action_completion_status = 'crash'
        elsif action == error
          action_completion_status = 'error'
        else
          action_completion_status = 'success'
        end
        analytics << event_for_completion(action, action_completion_status, action_version, timestamp_seconds)
        analytics << event_for_count(action, count, action_version, timestamp_seconds)
      end
      { analytics: analytics }.to_json
    end
def create_analytic_event_body analytics = [ ] timestamp_seconds = Time . now . to_i fastfile_id = ENV [ "GENERATED_FASTFILE_ID" ] if fastfile_id && launches . size == 1 && launches [ 'fastlane' ] if crash completion_status = 'crash' elsif error completion_status = 'error' else completion_status = 'success' end analytics << event_for_web_onboarding ( fastfile_id , completion_status , timestamp_seconds ) end launches . each do | action , count | action_version = versions [ action ] || 'unknown' if crash && error == action action_completion_status = 'crash' elsif action == error action_completion_status = 'error' else action_completion_status = 'success' end analytics << event_for_completion ( action , action_completion_status , action_version , timestamp_seconds ) analytics << event_for_count ( action , count , action_version , timestamp_seconds ) end { analytics : analytics } . to_json end
This is the original error reporting mechanism, which has always represented
either controlled (UI.user_error!
This is the original error reporting mechanism which has always represented either controlled ( UI . user_error!
# `fastfile_id` helps us track success/failure metrics for Fastfiles we # generate as part of an automated process.