fastlane 2.216.0 → 2.218.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (189) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +96 -96
  3. data/deliver/lib/deliver/app_screenshot.rb +9 -2
  4. data/deliver/lib/deliver/app_screenshot_iterator.rb +2 -2
  5. data/deliver/lib/deliver/detect_values.rb +1 -1
  6. data/deliver/lib/deliver/languages.rb +1 -1
  7. data/deliver/lib/deliver/loader.rb +2 -2
  8. data/deliver/lib/deliver/options.rb +4 -4
  9. data/deliver/lib/deliver/runner.rb +3 -2
  10. data/deliver/lib/deliver/sync_screenshots.rb +2 -2
  11. data/deliver/lib/deliver/upload_metadata.rb +60 -15
  12. data/deliver/lib/deliver/upload_price_tier.rb +1 -1
  13. data/deliver/lib/deliver/upload_screenshots.rb +3 -3
  14. data/fastlane/lib/fastlane/action.rb +1 -1
  15. data/fastlane/lib/fastlane/actions/appledoc.rb +1 -1
  16. data/fastlane/lib/fastlane/actions/apteligent.rb +1 -1
  17. data/fastlane/lib/fastlane/actions/backup_xcarchive.rb +1 -1
  18. data/fastlane/lib/fastlane/actions/commit_github_file.rb +2 -2
  19. data/fastlane/lib/fastlane/actions/copy_artifacts.rb +1 -1
  20. data/fastlane/lib/fastlane/actions/create_app_online.rb +1 -1
  21. data/fastlane/lib/fastlane/actions/create_pull_request.rb +1 -1
  22. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +1 -1
  23. data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +6 -2
  24. data/fastlane/lib/fastlane/actions/get_certificates.rb +1 -1
  25. data/fastlane/lib/fastlane/actions/get_github_release.rb +1 -1
  26. data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +1 -1
  27. data/fastlane/lib/fastlane/actions/git_branch.rb +1 -1
  28. data/fastlane/lib/fastlane/actions/github_api.rb +1 -1
  29. data/fastlane/lib/fastlane/actions/gradle.rb +1 -1
  30. data/fastlane/lib/fastlane/actions/install_on_device.rb +2 -2
  31. data/fastlane/lib/fastlane/actions/ipa.rb +1 -1
  32. data/fastlane/lib/fastlane/actions/jazzy.rb +1 -1
  33. data/fastlane/lib/fastlane/actions/nexus_upload.rb +1 -0
  34. data/fastlane/lib/fastlane/actions/notarize.rb +17 -2
  35. data/fastlane/lib/fastlane/actions/oclint.rb +3 -3
  36. data/fastlane/lib/fastlane/actions/opt_out_crash_reporting.rb +2 -2
  37. data/fastlane/lib/fastlane/actions/restore_file.rb +1 -1
  38. data/fastlane/lib/fastlane/actions/set_github_release.rb +1 -1
  39. data/fastlane/lib/fastlane/actions/slather.rb +18 -5
  40. data/fastlane/lib/fastlane/actions/sonar.rb +12 -3
  41. data/fastlane/lib/fastlane/actions/splunkmint.rb +1 -1
  42. data/fastlane/lib/fastlane/actions/spm.rb +76 -2
  43. data/fastlane/lib/fastlane/actions/update_info_plist.rb +1 -1
  44. data/fastlane/lib/fastlane/actions/update_urban_airship_configuration.rb +1 -1
  45. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +1 -0
  46. data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +1 -1
  47. data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +2 -2
  48. data/fastlane/lib/fastlane/actions/verify_build.rb +7 -4
  49. data/fastlane/lib/fastlane/actions/xcov.rb +1 -1
  50. data/fastlane/lib/fastlane/cli_tools_distributor.rb +1 -1
  51. data/fastlane/lib/fastlane/command_line_handler.rb +2 -4
  52. data/fastlane/lib/fastlane/commands_generator.rb +2 -2
  53. data/fastlane/lib/fastlane/fast_file.rb +1 -1
  54. data/fastlane/lib/fastlane/helper/dotenv_helper.rb +1 -1
  55. data/fastlane/lib/fastlane/helper/git_helper.rb +3 -0
  56. data/fastlane/lib/fastlane/junit_generator.rb +1 -1
  57. data/fastlane/lib/fastlane/lane.rb +9 -1
  58. data/fastlane/lib/fastlane/lane_manager.rb +1 -2
  59. data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +0 -11
  60. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +5 -1
  61. data/fastlane/lib/fastlane/plugins/template/Gemfile.erb +27 -0
  62. data/fastlane/lib/fastlane/runner.rb +2 -2
  63. data/fastlane/lib/fastlane/setup/setup.rb +1 -1
  64. data/fastlane/lib/fastlane/swift_lane_manager.rb +2 -5
  65. data/fastlane/lib/fastlane/swift_runner_upgrader.rb +7 -4
  66. data/fastlane/lib/fastlane/version.rb +1 -1
  67. data/fastlane/swift/Actions.swift +1 -1
  68. data/fastlane/swift/Appfile.swift +1 -1
  69. data/fastlane/swift/ArgumentProcessor.swift +1 -1
  70. data/fastlane/swift/Atomic.swift +1 -1
  71. data/fastlane/swift/ControlCommand.swift +1 -1
  72. data/fastlane/swift/Deliverfile.swift +2 -2
  73. data/fastlane/swift/DeliverfileProtocol.swift +4 -4
  74. data/fastlane/swift/Fastlane.swift +99 -31
  75. data/fastlane/swift/Gymfile.swift +2 -2
  76. data/fastlane/swift/GymfileProtocol.swift +2 -2
  77. data/fastlane/swift/LaneFileProtocol.swift +5 -5
  78. data/fastlane/swift/MainProcess.swift +1 -1
  79. data/fastlane/swift/Matchfile.swift +2 -2
  80. data/fastlane/swift/MatchfileProtocol.swift +6 -2
  81. data/fastlane/swift/OptionalConfigValue.swift +1 -1
  82. data/fastlane/swift/Plugins.swift +1 -1
  83. data/fastlane/swift/Precheckfile.swift +2 -2
  84. data/fastlane/swift/PrecheckfileProtocol.swift +2 -2
  85. data/fastlane/swift/RubyCommand.swift +1 -1
  86. data/fastlane/swift/RubyCommandable.swift +1 -1
  87. data/fastlane/swift/Runner.swift +1 -1
  88. data/fastlane/swift/RunnerArgument.swift +1 -1
  89. data/fastlane/swift/Scanfile.swift +2 -2
  90. data/fastlane/swift/ScanfileProtocol.swift +2 -2
  91. data/fastlane/swift/Screengrabfile.swift +2 -2
  92. data/fastlane/swift/ScreengrabfileProtocol.swift +2 -2
  93. data/fastlane/swift/Snapshotfile.swift +2 -2
  94. data/fastlane/swift/SnapshotfileProtocol.swift +2 -2
  95. data/fastlane/swift/SocketClient.swift +1 -1
  96. data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
  97. data/fastlane/swift/SocketResponse.swift +1 -1
  98. data/fastlane/swift/formatting/Brewfile.lock.json +19 -29
  99. data/fastlane/swift/main.swift +1 -1
  100. data/fastlane_core/lib/fastlane_core/build_watcher.rb +1 -1
  101. data/fastlane_core/lib/fastlane_core/cert_checker.rb +3 -3
  102. data/fastlane_core/lib/fastlane_core/configuration/configuration_file.rb +1 -1
  103. data/fastlane_core/lib/fastlane_core/device_manager.rb +17 -15
  104. data/fastlane_core/lib/fastlane_core/fastlane_pty.rb +34 -12
  105. data/fastlane_core/lib/fastlane_core/helper.rb +1 -1
  106. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +5 -2
  107. data/fastlane_core/lib/fastlane_core/project.rb +7 -2
  108. data/fastlane_core/lib/fastlane_core/queue_worker.rb +2 -2
  109. data/fastlane_core/lib/fastlane_core/string_filters.rb +6 -6
  110. data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +2 -2
  111. data/frameit/lib/frameit/editor.rb +4 -4
  112. data/frameit/lib/frameit/trim_box.rb +1 -1
  113. data/gym/lib/gym/error_handler.rb +1 -1
  114. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +3 -3
  115. data/gym/lib/gym/module.rb +13 -2
  116. data/gym/lib/gym/options.rb +1 -1
  117. data/gym/lib/gym/runner.rb +1 -1
  118. data/gym/lib/gym/xcodebuild_fixes/README.md +1 -1
  119. data/match/lib/match/generator.rb +9 -1
  120. data/match/lib/match/module.rb +2 -1
  121. data/match/lib/match/options.rb +5 -0
  122. data/match/lib/match/portal_cache.rb +106 -0
  123. data/match/lib/match/portal_fetcher.rb +72 -0
  124. data/match/lib/match/profile_includes.rb +120 -0
  125. data/match/lib/match/runner.rb +79 -172
  126. data/match/lib/match/spaceship_ensure.rb +15 -11
  127. data/match/lib/match/storage/git_storage.rb +17 -4
  128. data/match/lib/match/storage/gitlab/client.rb +1 -1
  129. data/match/lib/match/storage/gitlab_secure_files.rb +1 -1
  130. data/match/lib/match/storage/interface.rb +1 -1
  131. data/match/lib/match/storage/s3_storage.rb +1 -1
  132. data/match/lib/match.rb +3 -0
  133. data/precheck/lib/precheck/rules/unreachable_urls_rule.rb +1 -1
  134. data/produce/lib/produce/itunes_connect.rb +1 -1
  135. data/scan/lib/scan/detect_values.rb +78 -20
  136. data/scan/lib/scan/options.rb +1 -1
  137. data/scan/lib/scan/runner.rb +1 -1
  138. data/screengrab/lib/screengrab/runner.rb +1 -1
  139. data/sigh/lib/assets/resign.sh +10 -10
  140. data/sigh/lib/sigh/commands_generator.rb +1 -1
  141. data/sigh/lib/sigh/module.rb +98 -0
  142. data/sigh/lib/sigh/options.rb +55 -1
  143. data/sigh/lib/sigh/resign.rb +1 -1
  144. data/sigh/lib/sigh/runner.rb +35 -111
  145. data/snapshot/lib/assets/SnapshotHelper.swift +13 -9
  146. data/snapshot/lib/snapshot/reports_generator.rb +48 -7
  147. data/snapshot/lib/snapshot/setup.rb +2 -2
  148. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +23 -22
  149. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +2 -2
  150. data/spaceship/lib/spaceship/client.rb +1 -1
  151. data/spaceship/lib/spaceship/connect_api/api_client.rb +3 -2
  152. data/spaceship/lib/spaceship/connect_api/client.rb +4 -4
  153. data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +2 -0
  154. data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +2 -2
  155. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +2 -0
  156. data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +5 -5
  157. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +3 -3
  158. data/spaceship/lib/spaceship/connect_api/models/device.rb +83 -4
  159. data/spaceship/lib/spaceship/connect_api/models/profile.rb +5 -3
  160. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +14 -8
  161. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +3 -6
  162. data/spaceship/lib/spaceship/connect_api.rb +2 -0
  163. data/spaceship/lib/spaceship/portal/app.rb +1 -1
  164. data/spaceship/lib/spaceship/portal/app_group.rb +1 -1
  165. data/spaceship/lib/spaceship/test_flight/client.rb +1 -1
  166. data/spaceship/lib/spaceship/test_flight/tester.rb +1 -1
  167. data/spaceship/lib/spaceship/tunes/app_details.rb +2 -2
  168. data/spaceship/lib/spaceship/tunes/app_image.rb +1 -1
  169. data/spaceship/lib/spaceship/tunes/app_review_attachment.rb +1 -1
  170. data/spaceship/lib/spaceship/tunes/app_submission.rb +1 -1
  171. data/spaceship/lib/spaceship/tunes/app_version.rb +5 -5
  172. data/spaceship/lib/spaceship/tunes/build_details.rb +1 -1
  173. data/spaceship/lib/spaceship/tunes/iap.rb +3 -3
  174. data/spaceship/lib/spaceship/tunes/iap_detail.rb +2 -2
  175. data/spaceship/lib/spaceship/tunes/iap_families.rb +1 -1
  176. data/spaceship/lib/spaceship/tunes/iap_family_details.rb +2 -2
  177. data/spaceship/lib/spaceship/tunes/iap_family_list.rb +1 -1
  178. data/spaceship/lib/spaceship/tunes/tunes_client.rb +2 -2
  179. data/supply/lib/supply/client.rb +1 -1
  180. data/supply/lib/supply/setup.rb +1 -1
  181. data/supply/lib/supply/uploader.rb +28 -13
  182. data/trainer/lib/trainer/junit_generator.rb +1 -1
  183. data/trainer/lib/trainer/test_parser.rb +1 -1
  184. data/trainer/lib/trainer/xcresult.rb +1 -1
  185. metadata +27 -293
  186. data/fastlane/lib/fastlane/.features.rb.swp +0 -0
  187. data/fastlane/lib/fastlane/plugins/template/Gemfile +0 -6
  188. data/fastlane_core/lib/fastlane_core/.env.rb.swp +0 -0
  189. data/supply/lib/supply/.client.rb.swp +0 -0
@@ -13,7 +13,7 @@ module Fastlane
13
13
 
14
14
  self.print_values(values)
15
15
 
16
- self.evaulate(params, values)
16
+ self.evaluate(params, values)
17
17
  end
18
18
  end
19
19
 
@@ -24,7 +24,7 @@ module Fastlane
24
24
 
25
25
  case File.extname(build_path)
26
26
  when ".ipa", ".zip"
27
- `unzip #{build_path.shellescape} -d #{dir.shellescape} -x '__MACOSX/*' '*.DS_Store'`
27
+ `unzip #{build_path.shellescape} -d #{dir.shellescape} -x '__MACOSX/*' '*.DS_Store' 2>&1`
28
28
  UI.user_error!("Unable to unzip ipa") unless $? == 0
29
29
  # Adding extra ** for edge-case ipas where Payload directory is nested.
30
30
  app_path = Dir["#{dir}/**/Payload/*.app"].first
@@ -66,7 +66,10 @@ module Fastlane
66
66
  end
67
67
 
68
68
  def self.update_with_profile_info(app_path, values)
69
- profile = `cat #{app_path.shellescape}/embedded.mobileprovision | security cms -D`
69
+ provision_profile_path = "#{app_path}/embedded.mobileprovision"
70
+ UI.user_error!("Unable to find embedded profile in #{provision_profile_path}") unless File.exist?(provision_profile_path)
71
+
72
+ profile = `cat #{provision_profile_path.shellescape} | security cms -D`
70
73
  UI.user_error!("Unable to extract profile") unless $? == 0
71
74
 
72
75
  plist = Plist.parse_xml(profile)
@@ -90,7 +93,7 @@ module Fastlane
90
93
  title: "Summary for verify_build #{Fastlane::VERSION}")
91
94
  end
92
95
 
93
- def self.evaulate(params, values)
96
+ def self.evaluate(params, values)
94
97
  if params[:provisioning_type]
95
98
  UI.user_error!("Mismatched provisioning_type. Required: '#{params[:provisioning_type]}'; Found: '#{values['provisioning_type']}'") unless params[:provisioning_type] == values['provisioning_type']
96
99
  end
@@ -40,7 +40,7 @@ module Fastlane
40
40
  begin
41
41
  Gem::Specification.find_by_name('xcov')
42
42
  rescue Gem::LoadError
43
- # Catched missing gem exception and returned empty array
43
+ # Catch missing gem exception and return empty array
44
44
  # to avoid unused_options_spec failure
45
45
  return []
46
46
  end
@@ -162,7 +162,7 @@ module Fastlane
162
162
  end
163
163
 
164
164
  def print_bundle_exec_warning(is_slow: false)
165
- return if FastlaneCore::Helper.bundler? # user is alread using bundler
165
+ return if FastlaneCore::Helper.bundler? # user is already using bundler
166
166
  return if FastlaneCore::Env.truthy?('SKIP_SLOW_FASTLANE_WARNING') # user disabled the warnings
167
167
  return if FastlaneCore::Helper.contained_fastlane? # user uses the bundled fastlane
168
168
 
@@ -26,14 +26,12 @@ module Fastlane
26
26
  lane = platform_lane_info[0]
27
27
  end
28
28
 
29
- dot_env = Helper.test? ? nil : options.env
30
-
31
29
  if FastlaneCore::FastlaneFolder.swift?
32
30
  disable_runner_upgrades = options.disable_runner_upgrades || false
33
31
  swift_server_port = options.swift_server_port
34
- Fastlane::SwiftLaneManager.cruise_lane(lane, lane_parameters, dot_env, disable_runner_upgrades: disable_runner_upgrades, swift_server_port: swift_server_port)
32
+ Fastlane::SwiftLaneManager.cruise_lane(lane, lane_parameters, disable_runner_upgrades: disable_runner_upgrades, swift_server_port: swift_server_port)
35
33
  else
36
- Fastlane::LaneManager.cruise_lane(platform, lane, lane_parameters, dot_env)
34
+ Fastlane::LaneManager.cruise_lane(platform, lane, lane_parameters)
37
35
  end
38
36
  end
39
37
 
@@ -68,7 +68,7 @@ module Fastlane
68
68
  return if $troubleshoot
69
69
  UI.error("---")
70
70
  UI.error("Are you sure you want to enable '--troubleshoot'?")
71
- UI.error("All commmands will run in full unfiltered output mode.")
71
+ UI.error("All commands will run in full unfiltered output mode.")
72
72
  UI.error("Sensitive data, like passwords, could be printed to the log.")
73
73
  UI.error("---")
74
74
  if UI.confirm("Do you really want to enable --troubleshoot")
@@ -211,7 +211,7 @@ module Fastlane
211
211
  c.action do |args, options|
212
212
  if ensure_fastfile
213
213
  ff = Fastlane::FastFile.new(File.join(FastlaneCore::FastlaneFolder.path || '.', 'Fastfile'))
214
- UI.message("You don't need to run `fastlane docs` manually any more, this will be done automatically for you when running a lane.")
214
+ UI.message("You don't need to run `fastlane docs` manually anymore, this will be done automatically for you when running a lane.")
215
215
  Fastlane::DocsGenerator.run(ff)
216
216
  end
217
217
  end
@@ -187,7 +187,7 @@ module Fastlane
187
187
  end
188
188
 
189
189
  # Execute shell command
190
- # Accepts arguments with with and without the command named keyword so that sh
190
+ # Accepts arguments with and without the command named keyword so that sh
191
191
  # behaves like other actions with named keywords
192
192
  # https://github.com/fastlane/fastlane/issues/14930
193
193
  #
@@ -22,7 +22,7 @@ module Fastlane
22
22
  end
23
23
 
24
24
  # loads the dotenvs. First the .env and .env.default and
25
- # then override with all speficied extra environments
25
+ # then override with all specified extra environments
26
26
  def self.load_dot_envs_from(env_cl_param, base_path)
27
27
  require 'dotenv'
28
28
 
@@ -121,7 +121,10 @@ module Fastlane
121
121
 
122
122
  # Returns the current git branch, or "HEAD" if it's not checked out to any branch
123
123
  # Can be replaced using the environment variable `GIT_BRANCH`
124
+ # unless `FL_GIT_BRANCH_DONT_USE_ENV_VARS` is `true`
124
125
  def self.git_branch
126
+ return self.git_branch_name_using_HEAD if FastlaneCore::Env.truthy?('FL_GIT_BRANCH_DONT_USE_ENV_VARS')
127
+
125
128
  env_name = SharedValues::GIT_BRANCH_ENV_VARS.find { |env_var| FastlaneCore::Env.truthy?(env_var) }
126
129
  ENV.fetch(env_name.to_s) do
127
130
  self.git_branch_name_using_HEAD
@@ -12,7 +12,7 @@ module Fastlane
12
12
  xml_path = File.join(Fastlane::ROOT, "lib/assets/report_template.xml.erb")
13
13
  xml = ERB.new(File.read(xml_path)).result(binding) # https://web.archive.org/web/20160430190141/www.rrn.dk/rubys-erb-templating-system
14
14
 
15
- xml = xml.gsub('system_', 'system-').delete("\e") # Jenkins can not parse 'ESC' symbol
15
+ xml = xml.gsub('system_', 'system-').delete("\e") # Jenkins cannot parse 'ESC' symbol
16
16
 
17
17
  begin
18
18
  File.write(path, xml)
@@ -24,11 +24,19 @@ module Fastlane
24
24
  self.platform = platform
25
25
  self.name = name
26
26
  self.description = description
27
- self.block = block
27
+ # We want to support _both_ lanes expecting a `Hash` (like `lane :foo do |options|`), and lanes expecting
28
+ # keyword parameters (like `lane :foo do |param1:, param2:, param3: 'default value'|`)
29
+ block_expects_keywords = !block.nil? && block.parameters.any? { |type, _| [:key, :keyreq].include?(type) }
30
+ # Conversion of the `Hash` parameters (passed by `Lane#call`) into keywords has to be explicit in Ruby 3
31
+ # https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/
32
+ self.block = block_expects_keywords ? proc { |options| block.call(**options) } : block
28
33
  self.is_private = is_private
29
34
  end
30
35
 
31
36
  # Execute this lane
37
+ #
38
+ # @param [Hash] parameters The Hash of parameters to pass to the lane
39
+ #
32
40
  def call(parameters)
33
41
  block.call(parameters || {})
34
42
  end
@@ -5,9 +5,8 @@ module Fastlane
5
5
  # @param platform The name of the platform to execute
6
6
  # @param lane_name The name of the lane to execute
7
7
  # @param parameters [Hash] The parameters passed from the command line to the lane
8
- # @param env Dot Env Information
9
8
  # @param A custom Fastfile path, this is used by fastlane.ci
10
- def self.cruise_lane(platform, lane, parameters = nil, env = nil, fastfile_path = nil)
9
+ def self.cruise_lane(platform, lane, parameters = nil, fastfile_path = nil)
11
10
  UI.user_error!("lane must be a string") unless lane.kind_of?(String) || lane.nil?
12
11
  UI.user_error!("platform must be a string") unless platform.kind_of?(String) || platform.nil?
13
12
  UI.user_error!("parameters must be a hash") unless parameters.kind_of?(Hash) || parameters.nil?
@@ -21,15 +21,4 @@ Gem::Specification.new do |spec|
21
21
  # since this would cause a circular dependency
22
22
 
23
23
  # spec.add_dependency 'your-dependency', '~> 1.0.0'
24
-
25
- spec.add_development_dependency('bundler')
26
- spec.add_development_dependency('fastlane', '>= <%= Fastlane::VERSION %>')
27
- spec.add_development_dependency('pry')
28
- spec.add_development_dependency('rake')
29
- spec.add_development_dependency('rspec')
30
- spec.add_development_dependency('rspec_junit_formatter')
31
- spec.add_development_dependency('rubocop', '<%= Fastlane::RUBOCOP_REQUIREMENT %>')
32
- spec.add_development_dependency('rubocop-performance')
33
- spec.add_development_dependency('rubocop-require_tools')
34
- spec.add_development_dependency('simplecov')
35
24
  end
@@ -188,5 +188,9 @@ Style/MethodCallWithArgsParentheses:
188
188
  - context
189
189
  - before
190
190
  - after
191
+ Bundler/OrderedGems:
192
+ Enabled: true
193
+ TreatCommentsAsGroupSeparators: false
191
194
  Gemspec/DevelopmentDependencies:
192
- Enabled: false
195
+ Enabled: true
196
+ EnforcedStyle: Gemfile
@@ -0,0 +1,27 @@
1
+ source('https://rubygems.org')
2
+
3
+ # Provides a consistent environment for Ruby projects by tracking and installing exact gem versions.
4
+ gem 'bundler'
5
+ # Automation tool for mobile developers.
6
+ gem 'fastlane', '>= <%= Fastlane::VERSION %>'
7
+ # Provides an interactive debugging environment for Ruby.
8
+ gem 'pry'
9
+ # A simple task automation tool.
10
+ gem 'rake'
11
+ # Behavior-driven testing tool for Ruby.
12
+ gem 'rspec'
13
+ # Formatter for RSpec to generate JUnit compatible reports.
14
+ gem 'rspec_junit_formatter'
15
+ # A Ruby static code analyzer and formatter.
16
+ gem 'rubocop', '<%= Fastlane::RUBOCOP_REQUIREMENT %>'
17
+ # A collection of RuboCop cops for performance optimizations.
18
+ gem 'rubocop-performance'
19
+ # A RuboCop extension focused on enforcing tools.
20
+ gem 'rubocop-require_tools'
21
+ # SimpleCov is a code coverage analysis tool for Ruby.
22
+ gem 'simplecov'
23
+
24
+ gemspec
25
+
26
+ plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
27
+ eval_gemfile(plugins_path) if File.exist?(plugins_path)
@@ -15,7 +15,7 @@ module Fastlane
15
15
 
16
16
  # This will take care of executing **one** lane. That's when the user triggers a lane from the CLI for example
17
17
  # This method is **not** executed when switching a lane
18
- # @param lane_name The name of the lane to execute
18
+ # @param lane The name of the lane to execute
19
19
  # @param platform The name of the platform to execute
20
20
  # @param parameters [Hash] The parameters passed from the command line to the lane
21
21
  def execute(lane, platform = nil, parameters = nil)
@@ -124,7 +124,7 @@ module Fastlane
124
124
 
125
125
  # This is being called from `method_missing` from the Fastfile
126
126
  # It's also used when an action is called from another action
127
- # @param from_action Indicates if this action is being trigged by another action.
127
+ # @param from_action Indicates if this action is being triggered by another action.
128
128
  # If so, it won't show up in summary.
129
129
  def trigger_action_by_name(method_sym, custom_dir, from_action, *arguments)
130
130
  # First, check if there is a predefined method in the actions folder
@@ -135,7 +135,7 @@ module Fastlane
135
135
  runner_source_resources = "#{Fastlane::ROOT}/swift/."
136
136
  destination_path = File.expand_path('swift', FastlaneCore::FastlaneFolder.path)
137
137
 
138
- # Return eearly if already setup
138
+ # Return early if already setup
139
139
  return if File.exist?(destination_path)
140
140
 
141
141
  # Show message if Fastfile.swift exists but missing Swift classes and Xcode project
@@ -5,8 +5,7 @@ module Fastlane
5
5
  class SwiftLaneManager < LaneManagerBase
6
6
  # @param lane_name The name of the lane to execute
7
7
  # @param parameters [Hash] The parameters passed from the command line to the lane
8
- # @param env Dot Env Information
9
- def self.cruise_lane(lane, parameters = nil, env = nil, disable_runner_upgrades: false, swift_server_port: nil)
8
+ def self.cruise_lane(lane, parameters = nil, disable_runner_upgrades: false, swift_server_port: nil)
10
9
  UI.user_error!("lane must be a string") unless lane.kind_of?(String) || lane.nil?
11
10
  UI.user_error!("parameters must be a hash") unless parameters.kind_of?(Hash) || parameters.nil?
12
11
 
@@ -106,7 +105,7 @@ module Fastlane
106
105
  end
107
106
  end
108
107
 
109
- def self.swap_paths_in_target(target: nil, file_refs_to_swap: nil, expected_path_to_replacement_path_tuples: nil)
108
+ def self.swap_paths_in_target(file_refs_to_swap: nil, expected_path_to_replacement_path_tuples: nil)
110
109
  made_project_updates = false
111
110
  file_refs_to_swap.each do |file_ref|
112
111
  expected_path_to_replacement_path_tuples.each do |preinstalled_config_relative_path, user_config_relative_path|
@@ -198,14 +197,12 @@ module Fastlane
198
197
 
199
198
  # Swap in all new user supplied configs into the project
200
199
  project_modified = swap_paths_in_target(
201
- target: runner_target,
202
200
  file_refs_to_swap: target_file_refs,
203
201
  expected_path_to_replacement_path_tuples: new_user_tool_file_paths
204
202
  )
205
203
 
206
204
  # Swap out any configs the user has removed, inserting fastlane defaults
207
205
  project_modified = swap_paths_in_target(
208
- target: runner_target,
209
206
  file_refs_to_swap: target_file_refs,
210
207
  expected_path_to_replacement_path_tuples: user_tool_files_possibly_removed
211
208
  ) || project_modified
@@ -163,7 +163,7 @@ module Fastlane
163
163
  group_name = group.name.downcase
164
164
  manifest_group_filenames = inverted_hash[group_name]
165
165
 
166
- # compare the current group files to what the manifest says should minially be there
166
+ # compare the current group files to what the manifest says should minimally be there
167
167
  manifest_group_filenames.each do |filename|
168
168
  # current group is missing a file from the manifest, need to add it
169
169
  next if existing_group_files_set.include?(filename)
@@ -232,16 +232,19 @@ module Fastlane
232
232
  # adds new copy files build phase to fastlane_runner_target
233
233
  def add_missing_copy_phase!(dry_run: false)
234
234
  # Check if upgrade is needed
235
- # If fastlane copy files build phase exists already, we don't need any more changes to the Xcode project
236
- phase_copy_sign = self.fastlane_runner_target.copy_files_build_phases.select { |phase_copy| phase_copy.name == "FastlaneRunnerCopySigned" }.first
237
235
 
238
- old_phase_copy_sign = self.fastlane_runner_target.shell_script_build_phases.select { |phase_copy| phase_copy.shell_script == "cd \"${SRCROOT}\"\ncd ../..\ncp \"${TARGET_BUILD_DIR}/${EXECUTABLE_PATH}\" .\n" }.first
236
+ # Check if Copy Files build phase contains FastlaneRunner target.
237
+ phase_copy_sign = self.fastlane_runner_target.copy_files_build_phases.map(&:files).flatten.select { |file| file.display_name == "FastlaneRunner" }.first
238
+
239
+ # If fastlane copy files build phase exists already, we don't need any more changes to the Xcode project
240
+ phase_copy_sign = self.fastlane_runner_target.copy_files_build_phases.select { |phase_copy| phase_copy.name == "FastlaneRunnerCopySigned" }.first unless phase_copy_sign
239
241
 
240
242
  return true if dry_run && phase_copy_sign.nil?
241
243
 
242
244
  return false if dry_run
243
245
 
244
246
  # Proceed to upgrade
247
+ old_phase_copy_sign = self.fastlane_runner_target.shell_script_build_phases.select { |phase_copy| phase_copy.shell_script == "cd \"${SRCROOT}\"\ncd ../..\ncp \"${TARGET_BUILD_DIR}/${EXECUTABLE_PATH}\" .\n" }.first
245
248
  old_phase_copy_sign.remove_from_project unless old_phase_copy_sign.nil?
246
249
 
247
250
  unless phase_copy_sign
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.216.0'.freeze
2
+ VERSION = '2.218.0'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  MINIMUM_XCODE_RELEASE = "7.0".freeze
5
5
  RUBOCOP_REQUIREMENT = '1.50.2'.freeze
@@ -1,5 +1,5 @@
1
1
  // Actions.swift
2
- // Copyright (c) 2023 FastlaneTools
2
+ // Copyright (c) 2024 FastlaneTools
3
3
 
4
4
  // This autogenerated file will be overwritten or replaced when running "fastlane generate_swift"
5
5
  //
@@ -1,5 +1,5 @@
1
1
  // Appfile.swift
2
- // Copyright (c) 2023 FastlaneTools
2
+ // Copyright (c) 2024 FastlaneTools
3
3
 
4
4
  var appIdentifier: String { return "" } // The bundle identifier of your app
5
5
  var appleID: String { return "" } // Your Apple Developer Portal username
@@ -1,5 +1,5 @@
1
1
  // ArgumentProcessor.swift
2
- // Copyright (c) 2023 FastlaneTools
2
+ // Copyright (c) 2024 FastlaneTools
3
3
 
4
4
  //
5
5
  // ** NOTE **
@@ -1,5 +1,5 @@
1
1
  // Atomic.swift
2
- // Copyright (c) 2023 FastlaneTools
2
+ // Copyright (c) 2024 FastlaneTools
3
3
 
4
4
  import Foundation
5
5
 
@@ -1,5 +1,5 @@
1
1
  // ControlCommand.swift
2
- // Copyright (c) 2023 FastlaneTools
2
+ // Copyright (c) 2024 FastlaneTools
3
3
 
4
4
  //
5
5
  // ** NOTE **
@@ -1,5 +1,5 @@
1
1
  // Deliverfile.swift
2
- // Copyright (c) 2023 FastlaneTools
2
+ // Copyright (c) 2024 FastlaneTools
3
3
 
4
4
  // This class is automatically included in FastlaneRunner during build
5
5
 
@@ -17,4 +17,4 @@ public class Deliverfile: DeliverfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.216.0
20
+ // Generated with fastlane 2.218.0
@@ -1,5 +1,5 @@
1
1
  // DeliverfileProtocol.swift
2
- // Copyright (c) 2023 FastlaneTools
2
+ // Copyright (c) 2024 FastlaneTools
3
3
 
4
4
  public protocol DeliverfileProtocol: AnyObject {
5
5
  /// Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
@@ -71,10 +71,10 @@ public protocol DeliverfileProtocol: AnyObject {
71
71
  /// Rejects the previously submitted build if it's in a state where it's possible
72
72
  var rejectIfPossible: Bool { get }
73
73
 
74
- /// Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
74
+ /// Should the app be automatically released once it's approved? (Cannot be used together with `auto_release_date`)
75
75
  var automaticRelease: Bool? { get }
76
76
 
77
- /// Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)
77
+ /// Date in milliseconds for automatically releasing on pending approval (Cannot be used together with `automatic_release`)
78
78
  var autoReleaseDate: Int? { get }
79
79
 
80
80
  /// Enable the phased release feature of iTC
@@ -264,4 +264,4 @@ public extension DeliverfileProtocol {
264
264
 
265
265
  // Please don't remove the lines below
266
266
  // They are used to detect outdated files
267
- // FastlaneRunnerAPIVersion [0.9.120]
267
+ // FastlaneRunnerAPIVersion [0.9.122]