Class: Fastlane::Actions::SyncCodeSigningAction

Inherits:
Fastlane::Action show all
Defined in:
fastlane/lib/fastlane/actions/sync_code_signing.rb

Direct Known Subclasses

MatchAction

Constant Summary

Constants inherited from Fastlane::Action

Fastlane::Action::AVAILABLE_CATEGORIES, Fastlane::Action::RETURN_TYPES

Documentation collapse

Class Method Summary collapse

Methods inherited from Fastlane::Action

action_name, author, deprecated_notes, lane_context, method_missing, other_action, return_type, sample_return_value, shell_out_should_use_bundle_exec?, step_text

Class Method Details

.authorsObject


77
78
79
# File 'fastlane/lib/fastlane/actions/sync_code_signing.rb', line 77

def self.authors
  ["KrauseFx"]
end

.available_optionsObject


65
66
67
68
# File 'fastlane/lib/fastlane/actions/sync_code_signing.rb', line 65

def self.available_options
  require 'match'
  Match::Options.available_options
end

.categoryObject


94
95
96
# File 'fastlane/lib/fastlane/actions/sync_code_signing.rb', line 94

def self.category
  :code_signing
end

.define_profile_type(params) ⇒ Object


18
19
20
21
22
23
24
25
26
27
# File 'fastlane/lib/fastlane/actions/sync_code_signing.rb', line 18

def self.define_profile_type(params)
  profile_type = "app-store"
  profile_type = "ad-hoc" if params[:type] == 'adhoc'
  profile_type = "development" if params[:type] == 'development'
  profile_type = "enterprise" if params[:type] == 'enterprise'

  UI.message("Setting Provisioning Profile type to '#{profile_type}'")

  Actions.lane_context[SharedValues::SIGH_PROFILE_TYPE] = profile_type
end

.define_provisioning_profile_mapping(params) ⇒ Object

Maps the bundle identifier to the appropriate provisioning profile This is used in the gym action as part of the export options e.g.

export_options: {
  provisioningProfiles: { "me.themoji.app.beta": "match AppStore me.themoji.app.beta" }
}

37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'fastlane/lib/fastlane/actions/sync_code_signing.rb', line 37

def self.define_provisioning_profile_mapping(params)
  mapping = Actions.lane_context[SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING] || {}

  # Array (...) to make sure it's an Array, Ruby is magic, try this
  #   Array(1)      # => [1]
  #   Array([1, 2]) # => [1, 2]
  Array(params[:app_identifier]).each do |app_identifier|
    env_variable_name = Match::Utils.environment_variable_name_profile_name(app_identifier: app_identifier,
                                                                                      type: Match.profile_type_sym(params[:type]),
                                                                                  platform: params[:platform])
    mapping[app_identifier] = ENV[env_variable_name]
  end

  Actions.lane_context[SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING] = mapping
end

.descriptionObject


57
58
59
# File 'fastlane/lib/fastlane/actions/sync_code_signing.rb', line 57

def self.description
  "Easily sync your certificates and profiles across your team (via _match_)"
end

.detailsObject


61
62
63
# File 'fastlane/lib/fastlane/actions/sync_code_signing.rb', line 61

def self.details
  "More information: https://docs.fastlane.tools/actions/match/"
end

.example_codeObject


85
86
87
88
89
90
91
92
# File 'fastlane/lib/fastlane/actions/sync_code_signing.rb', line 85

def self.example_code
  [
    'sync_code_signing(type: "appstore", app_identifier: "tools.fastlane.app")',
    'sync_code_signing(type: "development", readonly: true)',
    'sync_code_signing(app_identifier: ["tools.fastlane.app", "tools.fastlane.sleepy"])',
    'match   # alias for "sync_code_signing"'
  ]
end

.is_supported?(platform) ⇒ Boolean

Returns:


81
82
83
# File 'fastlane/lib/fastlane/actions/sync_code_signing.rb', line 81

def self.is_supported?(platform)
  platform == :ios
end

.outputObject


70
71
72
# File 'fastlane/lib/fastlane/actions/sync_code_signing.rb', line 70

def self.output
  []
end

.return_valueObject


74
75
# File 'fastlane/lib/fastlane/actions/sync_code_signing.rb', line 74

def self.return_value
end

.run(params) ⇒ Object


8
9
10
11
12
13
14
15
16
# File 'fastlane/lib/fastlane/actions/sync_code_signing.rb', line 8

def self.run(params)
  require 'match'

  params.load_configuration_file("Matchfile")
  Match::Runner.new.run(params)

  define_profile_type(params)
  define_provisioning_profile_mapping(params)
end