fastlane 2.216.0 → 2.218.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +96 -96
- data/deliver/lib/deliver/app_screenshot.rb +9 -2
- data/deliver/lib/deliver/app_screenshot_iterator.rb +2 -2
- data/deliver/lib/deliver/detect_values.rb +1 -1
- data/deliver/lib/deliver/languages.rb +1 -1
- data/deliver/lib/deliver/loader.rb +2 -2
- data/deliver/lib/deliver/options.rb +4 -4
- data/deliver/lib/deliver/runner.rb +3 -2
- data/deliver/lib/deliver/sync_screenshots.rb +2 -2
- data/deliver/lib/deliver/upload_metadata.rb +60 -15
- data/deliver/lib/deliver/upload_price_tier.rb +1 -1
- data/deliver/lib/deliver/upload_screenshots.rb +3 -3
- data/fastlane/lib/fastlane/action.rb +1 -1
- data/fastlane/lib/fastlane/actions/appledoc.rb +1 -1
- data/fastlane/lib/fastlane/actions/apteligent.rb +1 -1
- data/fastlane/lib/fastlane/actions/backup_xcarchive.rb +1 -1
- data/fastlane/lib/fastlane/actions/commit_github_file.rb +2 -2
- data/fastlane/lib/fastlane/actions/copy_artifacts.rb +1 -1
- data/fastlane/lib/fastlane/actions/create_app_online.rb +1 -1
- data/fastlane/lib/fastlane/actions/create_pull_request.rb +1 -1
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +1 -1
- data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +6 -2
- data/fastlane/lib/fastlane/actions/get_certificates.rb +1 -1
- data/fastlane/lib/fastlane/actions/get_github_release.rb +1 -1
- data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +1 -1
- data/fastlane/lib/fastlane/actions/git_branch.rb +1 -1
- data/fastlane/lib/fastlane/actions/github_api.rb +1 -1
- data/fastlane/lib/fastlane/actions/gradle.rb +1 -1
- data/fastlane/lib/fastlane/actions/install_on_device.rb +2 -2
- data/fastlane/lib/fastlane/actions/ipa.rb +1 -1
- data/fastlane/lib/fastlane/actions/jazzy.rb +1 -1
- data/fastlane/lib/fastlane/actions/nexus_upload.rb +1 -0
- data/fastlane/lib/fastlane/actions/notarize.rb +17 -2
- data/fastlane/lib/fastlane/actions/oclint.rb +3 -3
- data/fastlane/lib/fastlane/actions/opt_out_crash_reporting.rb +2 -2
- data/fastlane/lib/fastlane/actions/restore_file.rb +1 -1
- data/fastlane/lib/fastlane/actions/set_github_release.rb +1 -1
- data/fastlane/lib/fastlane/actions/slather.rb +18 -5
- data/fastlane/lib/fastlane/actions/sonar.rb +12 -3
- data/fastlane/lib/fastlane/actions/splunkmint.rb +1 -1
- data/fastlane/lib/fastlane/actions/spm.rb +76 -2
- data/fastlane/lib/fastlane/actions/update_info_plist.rb +1 -1
- data/fastlane/lib/fastlane/actions/update_urban_airship_configuration.rb +1 -1
- data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +1 -0
- data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +1 -1
- data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +2 -2
- data/fastlane/lib/fastlane/actions/verify_build.rb +7 -4
- data/fastlane/lib/fastlane/actions/xcov.rb +1 -1
- data/fastlane/lib/fastlane/cli_tools_distributor.rb +1 -1
- data/fastlane/lib/fastlane/command_line_handler.rb +2 -4
- data/fastlane/lib/fastlane/commands_generator.rb +2 -2
- data/fastlane/lib/fastlane/fast_file.rb +1 -1
- data/fastlane/lib/fastlane/helper/dotenv_helper.rb +1 -1
- data/fastlane/lib/fastlane/helper/git_helper.rb +3 -0
- data/fastlane/lib/fastlane/junit_generator.rb +1 -1
- data/fastlane/lib/fastlane/lane.rb +9 -1
- data/fastlane/lib/fastlane/lane_manager.rb +1 -2
- data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +0 -11
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +5 -1
- data/fastlane/lib/fastlane/plugins/template/Gemfile.erb +27 -0
- data/fastlane/lib/fastlane/runner.rb +2 -2
- data/fastlane/lib/fastlane/setup/setup.rb +1 -1
- data/fastlane/lib/fastlane/swift_lane_manager.rb +2 -5
- data/fastlane/lib/fastlane/swift_runner_upgrader.rb +7 -4
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Actions.swift +1 -1
- data/fastlane/swift/Appfile.swift +1 -1
- data/fastlane/swift/ArgumentProcessor.swift +1 -1
- data/fastlane/swift/Atomic.swift +1 -1
- data/fastlane/swift/ControlCommand.swift +1 -1
- data/fastlane/swift/Deliverfile.swift +2 -2
- data/fastlane/swift/DeliverfileProtocol.swift +4 -4
- data/fastlane/swift/Fastlane.swift +99 -31
- data/fastlane/swift/Gymfile.swift +2 -2
- data/fastlane/swift/GymfileProtocol.swift +2 -2
- data/fastlane/swift/LaneFileProtocol.swift +5 -5
- data/fastlane/swift/MainProcess.swift +1 -1
- data/fastlane/swift/Matchfile.swift +2 -2
- data/fastlane/swift/MatchfileProtocol.swift +6 -2
- data/fastlane/swift/OptionalConfigValue.swift +1 -1
- data/fastlane/swift/Plugins.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +2 -2
- data/fastlane/swift/PrecheckfileProtocol.swift +2 -2
- data/fastlane/swift/RubyCommand.swift +1 -1
- data/fastlane/swift/RubyCommandable.swift +1 -1
- data/fastlane/swift/Runner.swift +1 -1
- data/fastlane/swift/RunnerArgument.swift +1 -1
- data/fastlane/swift/Scanfile.swift +2 -2
- data/fastlane/swift/ScanfileProtocol.swift +2 -2
- data/fastlane/swift/Screengrabfile.swift +2 -2
- data/fastlane/swift/ScreengrabfileProtocol.swift +2 -2
- data/fastlane/swift/Snapshotfile.swift +2 -2
- data/fastlane/swift/SnapshotfileProtocol.swift +2 -2
- data/fastlane/swift/SocketClient.swift +1 -1
- data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
- data/fastlane/swift/SocketResponse.swift +1 -1
- data/fastlane/swift/formatting/Brewfile.lock.json +19 -29
- data/fastlane/swift/main.swift +1 -1
- data/fastlane_core/lib/fastlane_core/build_watcher.rb +1 -1
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +3 -3
- data/fastlane_core/lib/fastlane_core/configuration/configuration_file.rb +1 -1
- data/fastlane_core/lib/fastlane_core/device_manager.rb +17 -15
- data/fastlane_core/lib/fastlane_core/fastlane_pty.rb +34 -12
- data/fastlane_core/lib/fastlane_core/helper.rb +1 -1
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +5 -2
- data/fastlane_core/lib/fastlane_core/project.rb +7 -2
- data/fastlane_core/lib/fastlane_core/queue_worker.rb +2 -2
- data/fastlane_core/lib/fastlane_core/string_filters.rb +6 -6
- data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +2 -2
- data/frameit/lib/frameit/editor.rb +4 -4
- data/frameit/lib/frameit/trim_box.rb +1 -1
- data/gym/lib/gym/error_handler.rb +1 -1
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +3 -3
- data/gym/lib/gym/module.rb +13 -2
- data/gym/lib/gym/options.rb +1 -1
- data/gym/lib/gym/runner.rb +1 -1
- data/gym/lib/gym/xcodebuild_fixes/README.md +1 -1
- data/match/lib/match/generator.rb +9 -1
- data/match/lib/match/module.rb +2 -1
- data/match/lib/match/options.rb +5 -0
- data/match/lib/match/portal_cache.rb +106 -0
- data/match/lib/match/portal_fetcher.rb +72 -0
- data/match/lib/match/profile_includes.rb +120 -0
- data/match/lib/match/runner.rb +79 -172
- data/match/lib/match/spaceship_ensure.rb +15 -11
- data/match/lib/match/storage/git_storage.rb +17 -4
- data/match/lib/match/storage/gitlab/client.rb +1 -1
- data/match/lib/match/storage/gitlab_secure_files.rb +1 -1
- data/match/lib/match/storage/interface.rb +1 -1
- data/match/lib/match/storage/s3_storage.rb +1 -1
- data/match/lib/match.rb +3 -0
- data/precheck/lib/precheck/rules/unreachable_urls_rule.rb +1 -1
- data/produce/lib/produce/itunes_connect.rb +1 -1
- data/scan/lib/scan/detect_values.rb +78 -20
- data/scan/lib/scan/options.rb +1 -1
- data/scan/lib/scan/runner.rb +1 -1
- data/screengrab/lib/screengrab/runner.rb +1 -1
- data/sigh/lib/assets/resign.sh +10 -10
- data/sigh/lib/sigh/commands_generator.rb +1 -1
- data/sigh/lib/sigh/module.rb +98 -0
- data/sigh/lib/sigh/options.rb +55 -1
- data/sigh/lib/sigh/resign.rb +1 -1
- data/sigh/lib/sigh/runner.rb +35 -111
- data/snapshot/lib/assets/SnapshotHelper.swift +13 -9
- data/snapshot/lib/snapshot/reports_generator.rb +48 -7
- data/snapshot/lib/snapshot/setup.rb +2 -2
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +23 -22
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +2 -2
- data/spaceship/lib/spaceship/client.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/api_client.rb +3 -2
- data/spaceship/lib/spaceship/connect_api/client.rb +4 -4
- data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +2 -0
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +2 -2
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +2 -0
- data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +5 -5
- data/spaceship/lib/spaceship/connect_api/models/certificate.rb +3 -3
- data/spaceship/lib/spaceship/connect_api/models/device.rb +83 -4
- data/spaceship/lib/spaceship/connect_api/models/profile.rb +5 -3
- data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +14 -8
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +3 -6
- data/spaceship/lib/spaceship/connect_api.rb +2 -0
- data/spaceship/lib/spaceship/portal/app.rb +1 -1
- data/spaceship/lib/spaceship/portal/app_group.rb +1 -1
- data/spaceship/lib/spaceship/test_flight/client.rb +1 -1
- data/spaceship/lib/spaceship/test_flight/tester.rb +1 -1
- data/spaceship/lib/spaceship/tunes/app_details.rb +2 -2
- data/spaceship/lib/spaceship/tunes/app_image.rb +1 -1
- data/spaceship/lib/spaceship/tunes/app_review_attachment.rb +1 -1
- data/spaceship/lib/spaceship/tunes/app_submission.rb +1 -1
- data/spaceship/lib/spaceship/tunes/app_version.rb +5 -5
- data/spaceship/lib/spaceship/tunes/build_details.rb +1 -1
- data/spaceship/lib/spaceship/tunes/iap.rb +3 -3
- data/spaceship/lib/spaceship/tunes/iap_detail.rb +2 -2
- data/spaceship/lib/spaceship/tunes/iap_families.rb +1 -1
- data/spaceship/lib/spaceship/tunes/iap_family_details.rb +2 -2
- data/spaceship/lib/spaceship/tunes/iap_family_list.rb +1 -1
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +2 -2
- data/supply/lib/supply/client.rb +1 -1
- data/supply/lib/supply/setup.rb +1 -1
- data/supply/lib/supply/uploader.rb +28 -13
- data/trainer/lib/trainer/junit_generator.rb +1 -1
- data/trainer/lib/trainer/test_parser.rb +1 -1
- data/trainer/lib/trainer/xcresult.rb +1 -1
- metadata +27 -293
- data/fastlane/lib/fastlane/.features.rb.swp +0 -0
- data/fastlane/lib/fastlane/plugins/template/Gemfile +0 -6
- data/fastlane_core/lib/fastlane_core/.env.rb.swp +0 -0
- 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.
|
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
|
-
|
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.
|
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
|
-
#
|
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
|
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,
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
-
|
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,
|
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:
|
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
|
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
|
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
|
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
|
-
|
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(
|
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
|
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
|
-
|
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
|
data/fastlane/swift/Atomic.swift
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
// Deliverfile.swift
|
2
|
-
// Copyright (c)
|
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.
|
20
|
+
// Generated with fastlane 2.218.0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// DeliverfileProtocol.swift
|
2
|
-
// Copyright (c)
|
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? (
|
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 (
|
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.
|
267
|
+
// FastlaneRunnerAPIVersion [0.9.122]
|