Class: CredentialsManager::AppfileConfig
- Inherits:
-
Object
- Object
- CredentialsManager::AppfileConfig
- Defined in:
- credentials_manager/lib/credentials_manager/appfile_config.rb
Overview
Access the content of the app file (e.g. app identifier and Apple ID)
Class Method Summary collapse
Instance Method Summary collapse
-
#app_identifier(*args, &block) ⇒ Object
iOS.
- #apple_dev_portal_id(*args, &block) ⇒ Object
- #apple_id(*args, &block) ⇒ Object
- #data ⇒ Object
- #fallback_to_default_values ⇒ Object
-
#for_lane(lane_name) ⇒ Object
Override Appfile configuration for a specific lane.
-
#for_platform(platform_name) ⇒ Object
Override Appfile configuration for a specific platform.
-
#initialize(path = nil) ⇒ AppfileConfig
constructor
A new instance of AppfileConfig.
- #issuer(*args, &block) ⇒ Object
-
#itc_team_id(*args, &block) ⇒ Object
App Store Connect.
- #itc_team_name(*args, &block) ⇒ Object
- #itunes_connect_id(*args, &block) ⇒ Object
- #json_key_data_raw(*args, &block) ⇒ Object
-
#json_key_file(*args, &block) ⇒ Object
Android.
- #keyfile(*args, &block) ⇒ Object
- #package_name(*args, &block) ⇒ Object
- #print_debug_information(path: nil) ⇒ Object
-
#team_id(*args, &block) ⇒ Object
Developer Portal.
- #team_name(*args, &block) ⇒ Object
Constructor Details
#initialize(path = nil) ⇒ AppfileConfig
Returns a new instance of AppfileConfig.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 25 def initialize(path = nil) if path raise "Could not find Appfile at path '#{path}'".red unless File.exist?(File.(path)) end path ||= self.class.default_path if path && File.exist?(path) # it might not exist, we still want to use the default values full_path = File.(path) Dir.chdir(File.('..', path)) do content = File.read(full_path, encoding: "utf-8") # From https://github.com/orta/danger/blob/master/lib/danger/danger_core/dangerfile.rb if content.tr!('“”‘’‛', %(""''')) puts("Your #{File.basename(path)} has had smart quotes sanitised. " \ 'To avoid issues in the future, you should not use ' \ 'TextEdit for editing it. If you are not using TextEdit, ' \ 'you should turn off smart quotes in your editor of choice.'.red) end # rubocop:disable Security/Eval eval(content) # rubocop:enable Security/Eval print_debug_information(path: full_path) if FastlaneCore::Globals.verbose? end end fallback_to_default_values end |
Class Method Details
.already_printed_debug_information ⇒ Object
73 74 75 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 73 def self.already_printed_debug_information @already_printed_debug_information ||= {} end |
.default_path ⇒ Object
18 19 20 21 22 23 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 18 def self.default_path ["./fastlane/Appfile", "./.fastlane/Appfile", "./Appfile"].each do |current| return current if File.exist?(current) end nil end |
.try_fetch_value(key) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 6 def self.try_fetch_value(key) # We need to load the file every time we call this method # to support the `for_lane` keyword begin return self.new.data[key] rescue => ex puts(ex.to_s) return nil end nil end |
Instance Method Details
#app_identifier(*args, &block) ⇒ Object
iOS
88 89 90 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 88 def app_identifier(*args, &block) setter(:app_identifier, *args, &block) end |
#apple_dev_portal_id(*args, &block) ⇒ Object
96 97 98 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 96 def apple_dev_portal_id(*args, &block) setter(:apple_dev_portal_id, *args, &block) end |
#apple_id(*args, &block) ⇒ Object
92 93 94 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 92 def apple_id(*args, &block) setter(:apple_id, *args, &block) end |
#data ⇒ Object
81 82 83 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 81 def data @data ||= {} end |
#fallback_to_default_values ⇒ Object
77 78 79 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 77 def fallback_to_default_values data[:apple_id] ||= ENV["FASTLANE_USER"] || ENV["DELIVER_USER"] || ENV["DELIVER_USERNAME"] end |
#for_lane(lane_name) ⇒ Object
Override Appfile configuration for a specific lane.
lane_name - Symbol representing a lane name. (Can be either :name, ‘name’ or ‘platform name’) block - Block to execute to override configuration values.
Discussion If received lane name does not match the lane name available as environment variable, no changes will
be applied.
152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 152 def for_lane(lane_name) if lane_name.to_s.split(" ").count > 1 # That's the legacy syntax 'platform name' puts("You use deprecated syntax '#{lane_name}' in your Appfile.".yellow) puts("Please follow the Appfile guide: https://docs.fastlane.tools/advanced/#appfile".yellow) platform, lane_name = lane_name.split(" ") return unless platform == ENV["FASTLANE_PLATFORM_NAME"] # the lane name will be verified below end if ENV["FASTLANE_LANE_NAME"] == lane_name.to_s yield end end |
#for_platform(platform_name) ⇒ Object
Override Appfile configuration for a specific platform.
platform_name - Symbol representing a platform name. block - Block to execute to override configuration values.
Discussion If received platform name does not match the platform name available as environment variable, no changes will
be applied.
175 176 177 178 179 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 175 def for_platform(platform_name) if ENV["FASTLANE_PLATFORM_NAME"] == platform_name.to_s yield end end |
#issuer(*args, &block) ⇒ Object
131 132 133 134 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 131 def issuer(*args, &block) puts("Appfile: DEPRECATED issuer: use json_key_file instead".red) setter(:issuer, *args, &block) end |
#itc_team_id(*args, &block) ⇒ Object
App Store Connect
114 115 116 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 114 def itc_team_id(*args, &block) setter(:itc_team_id, *args, &block) end |
#itc_team_name(*args, &block) ⇒ Object
118 119 120 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 118 def itc_team_name(*args, &block) setter(:itc_team_name, *args, &block) end |
#itunes_connect_id(*args, &block) ⇒ Object
100 101 102 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 100 def itunes_connect_id(*args, &block) setter(:itunes_connect_id, *args, &block) end |
#json_key_data_raw(*args, &block) ⇒ Object
127 128 129 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 127 def json_key_data_raw(*args, &block) setter(:json_key_data_raw, *args, &block) end |
#json_key_file(*args, &block) ⇒ Object
Android
123 124 125 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 123 def json_key_file(*args, &block) setter(:json_key_file, *args, &block) end |
#keyfile(*args, &block) ⇒ Object
140 141 142 143 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 140 def keyfile(*args, &block) puts("Appfile: DEPRECATED keyfile: use json_key_file instead".red) setter(:keyfile, *args, &block) end |
#package_name(*args, &block) ⇒ Object
136 137 138 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 136 def package_name(*args, &block) setter(:package_name, *args, &block) end |
#print_debug_information(path: nil) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 56 def print_debug_information(path: nil) self.class.already_printed_debug_information ||= {} return if self.class.already_printed_debug_information[self.data] # self.class.already_printed_debug_information is a hash, we use to detect if we already printed this data # this is necessary, as on the course of a fastlane run, the values might change, e.g. when using # the `for_lane` keyword. puts("Successfully loaded Appfile at path '#{path}'".yellow) self.data.each do |key, value| puts("- #{key.to_s.cyan}: '#{value.to_s.green}'") end puts("-------") self.class.already_printed_debug_information[self.data] = true end |
#team_id(*args, &block) ⇒ Object
Developer Portal
105 106 107 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 105 def team_id(*args, &block) setter(:team_id, *args, &block) end |
#team_name(*args, &block) ⇒ Object
109 110 111 |
# File 'credentials_manager/lib/credentials_manager/appfile_config.rb', line 109 def team_name(*args, &block) setter(:team_name, *args, &block) end |