class Fastlane::Actions::SentryUploadDsymAction

Public Class Methods

authors() click to toggle source
# File lib/fastlane/plugin/sentry/actions/sentry_upload_dsym.rb, line 82
def self.authors
  ["joshdholtz", "HazAT"]
end
available_options() click to toggle source
# File lib/fastlane/plugin/sentry/actions/sentry_upload_dsym.rb, line 45
def self.available_options
  Helper::SentryConfig.common_api_config_items + [
    FastlaneCore::ConfigItem.new(key: :dsym_path,
                                 env_name: "SENTRY_DSYM_PATH",
                                 description: "Path to your symbols file. For iOS and Mac provide path to app.dSYM.zip",
                                 default_value: Actions.lane_context[SharedValues::DSYM_OUTPUT_PATH],
                                 optional: true,
                                 verify_block: proc do |value|
                                                 UI.user_error! "Could not find Path to your symbols file at path '#{value}'" unless File.exist?(value)
                                               end),
    FastlaneCore::ConfigItem.new(key: :dsym_paths,
                                 env_name: "SENTRY_DSYM_PATHS",
                                 description: "Path to an array of your symbols file. For iOS and Mac provide path to app.dSYM.zip",
                                 default_value: Actions.lane_context[SharedValues::DSYM_PATHS],
                                 is_string: false,
                                 optional: true),
    FastlaneCore::ConfigItem.new(key: :symbol_maps,
                                 env_name: "SENTRY_SYMBOL_MAPS",
                                 description: "Optional path to bcsymbolmap files which are used to resolve hidden symbols in the actual dsym files. This requires the dsymutil tool to be available",
                                 optional: true,
                                 verify_block: proc do |value|
                                                 UI.user_error! "Could not find bcsymbolmap at path '#{value}'" unless File.exist?(value)
                                               end),
    FastlaneCore::ConfigItem.new(key: :info_plist,
                                 env_name: "SENTRY_INFO_PLIST",
                                 description: "Optional path to Info.plist to add version information when uploading debug symbols",
                                 optional: true,
                                 verify_block: proc do |value|
                                                 UI.user_error! "Could not find Info.plist at path '#{value}'" unless File.exist?(value)
                                               end)
  ]
end
description() click to toggle source

@!group Documentation

# File lib/fastlane/plugin/sentry/actions/sentry_upload_dsym.rb, line 33
def self.description
  "Upload dSYM symbolication files to Sentry"
end
details() click to toggle source
# File lib/fastlane/plugin/sentry/actions/sentry_upload_dsym.rb, line 37
def self.details
  [
    "This action allows you to upload symbolication files to Sentry.",
    "It's extra useful if you use it to download the latest dSYM files from Apple when you",
    "use Bitcode"
  ].join(" ")
end
is_supported?(platform) click to toggle source
# File lib/fastlane/plugin/sentry/actions/sentry_upload_dsym.rb, line 86
def self.is_supported?(platform)
  [:ios, :mac].include?(platform)
end
return_value() click to toggle source
# File lib/fastlane/plugin/sentry/actions/sentry_upload_dsym.rb, line 78
def self.return_value
  nil
end
run(params) click to toggle source
# File lib/fastlane/plugin/sentry/actions/sentry_upload_dsym.rb, line 4
def self.run(params)
  Helper::SentryConfig.parse_api_params(params)

  # Params - dSYM
  dsym_path = params[:dsym_path]
  dsym_paths = params[:dsym_paths] || []

  # Verify dsym(s)
  dsym_paths += [dsym_path] unless dsym_path.nil?
  dsym_paths = dsym_paths.map { |path| File.absolute_path(path) }
  dsym_paths.each do |path|
    UI.user_error!("dSYM does not exist at path: #{path}") unless File.exist? path
  end

  command = ["upload-dsym"]
  command.push("--symbol-maps") unless params[:symbol_maps].nil?
  command.push(params[:symbol_maps]) unless params[:symbol_maps].nil?
  command.push("--info-plist") unless params[:info_plist].nil?
  command.push(params[:info_plist]) unless params[:info_plist].nil?
  command += dsym_paths

  Helper::SentryHelper.call_sentry_cli(params, command)
  UI.success("Successfully uploaded dSYMs!")
end