fastlane 2.173.0 → 2.178.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 +82 -82
- data/cert/lib/cert/options.rb +2 -2
- data/cert/lib/cert/runner.rb +1 -1
- data/deliver/lib/deliver/app_screenshot.rb +6 -2
- data/deliver/lib/deliver/options.rb +2 -2
- data/deliver/lib/deliver/runner.rb +8 -4
- data/deliver/lib/deliver/upload_metadata.rb +3 -3
- data/deliver/lib/deliver/upload_screenshots.rb +12 -11
- data/fastlane/lib/fastlane/actions/adb.rb +1 -1
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +3 -3
- data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +6 -2
- data/fastlane/lib/fastlane/actions/appaloosa.rb +7 -2
- data/fastlane/lib/fastlane/actions/appetize.rb +13 -1
- data/fastlane/lib/fastlane/actions/backup_file.rb +1 -1
- data/fastlane/lib/fastlane/actions/build_and_upload_to_appetize.rb +10 -2
- data/fastlane/lib/fastlane/actions/carthage.rb +22 -0
- data/fastlane/lib/fastlane/actions/cocoapods.rb +15 -1
- data/fastlane/lib/fastlane/actions/commit_github_file.rb +11 -1
- data/fastlane/lib/fastlane/actions/create_xcframework.rb +5 -0
- data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +8 -2
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +5 -15
- data/fastlane/lib/fastlane/actions/get_github_release.rb +11 -1
- data/fastlane/lib/fastlane/actions/git_commit.rb +1 -1
- data/fastlane/lib/fastlane/actions/github_api.rb +2 -1
- data/fastlane/lib/fastlane/actions/increment_build_number.rb +8 -1
- data/fastlane/lib/fastlane/actions/jazzy.rb +10 -1
- data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +2 -2
- data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +1 -2
- data/fastlane/lib/fastlane/actions/register_device.rb +3 -3
- data/fastlane/lib/fastlane/actions/register_devices.rb +3 -3
- data/fastlane/lib/fastlane/actions/restore_file.rb +1 -1
- data/fastlane/lib/fastlane/actions/set_changelog.rb +3 -3
- data/fastlane/lib/fastlane/actions/swiftlint.rb +1 -1
- data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +1 -1
- data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +4 -5
- data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +5 -1
- data/fastlane/lib/fastlane/documentation/actions_list.rb +2 -2
- data/fastlane/lib/fastlane/erb_template_helper.rb +7 -1
- data/fastlane/lib/fastlane/fast_file.rb +9 -5
- data/fastlane/lib/fastlane/helper/adb_helper.rb +1 -1
- data/fastlane/lib/fastlane/helper/gem_helper.rb +2 -2
- 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/ControlCommand.swift +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +1 -1
- data/fastlane/swift/Fastlane.swift +71 -27
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +1 -1
- data/fastlane/swift/LaneFileProtocol.swift +1 -1
- data/fastlane/swift/MainProcess.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +1 -1
- data/fastlane/swift/Plugins.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
- data/fastlane/swift/RubyCommand.swift +1 -1
- data/fastlane/swift/RubyCommandable.swift +1 -1
- data/fastlane/swift/Runner.swift +2 -2
- data/fastlane/swift/RunnerArgument.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +9 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
- 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 +20 -14
- data/fastlane/swift/main.swift +1 -1
- data/fastlane_core/lib/fastlane_core.rb +1 -0
- data/fastlane_core/lib/fastlane_core/command_executor.rb +3 -9
- data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +1 -1
- data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +23 -0
- data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +9 -5
- data/fastlane_core/lib/fastlane_core/helper.rb +26 -5
- data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +3 -2
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +14 -8
- data/fastlane_core/lib/fastlane_core/keychain_importer.rb +1 -1
- data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +3 -2
- data/fastlane_core/lib/fastlane_core/project.rb +23 -20
- data/{deliver/lib/deliver → fastlane_core/lib/fastlane_core}/queue_worker.rb +2 -2
- data/fastlane_core/lib/fastlane_core/ui/interface.rb +1 -1
- data/fastlane_core/lib/fastlane_core/update_checker/update_checker.rb +2 -2
- data/gym/lib/gym/.runner.rb.swp +0 -0
- data/gym/lib/gym/generators/.package_command_generator_xcode7.rb.swp +0 -0
- data/match/lib/match/importer.rb +1 -1
- data/match/lib/match/migrate.rb +1 -1
- data/match/lib/match/nuke.rb +6 -1
- data/match/lib/match/options.rb +2 -2
- data/match/lib/match/runner.rb +1 -1
- data/match/lib/match/storage/google_cloud_storage.rb +1 -1
- data/match/lib/match/storage/s3_storage.rb +1 -1
- data/pilot/lib/pilot/build_manager.rb +25 -8
- data/pilot/lib/pilot/manager.rb +1 -1
- data/pilot/lib/pilot/options.rb +5 -5
- data/precheck/lib/precheck/options.rb +2 -2
- data/precheck/lib/precheck/runner.rb +2 -2
- data/scan/lib/scan/detect_values.rb +4 -1
- data/scan/lib/scan/options.rb +10 -0
- data/scan/lib/scan/runner.rb +27 -0
- data/screengrab/lib/screengrab/android_environment.rb +2 -2
- data/screengrab/lib/screengrab/runner.rb +1 -2
- data/sigh/lib/sigh/download_all.rb +1 -1
- data/sigh/lib/sigh/options.rb +2 -2
- data/sigh/lib/sigh/runner.rb +1 -1
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +2 -1
- data/spaceship/README.md +2 -2
- data/spaceship/lib/spaceship/client.rb +18 -17
- data/spaceship/lib/spaceship/connect_api/api_client.rb +40 -7
- data/spaceship/lib/spaceship/connect_api/models/app.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +5 -0
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +5 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +6 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +5 -0
- data/spaceship/lib/spaceship/connect_api/models/build.rb +5 -0
- data/spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb +4 -0
- data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +24 -0
- data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +26 -4
- data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +13 -0
- data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +53 -0
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +13 -0
- data/spaceship/lib/spaceship/connect_api/token.rb +2 -2
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +15 -0
- data/spaceship/lib/spaceship/playground.rb +2 -2
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +2 -2
- data/spaceship/lib/spaceship/two_step_or_factor_client.rb +42 -29
- metadata +38 -22
@@ -38,7 +38,7 @@ module Fastlane
|
|
38
38
|
|
39
39
|
[
|
40
40
|
FastlaneCore::ConfigItem.new(key: :api_key_path,
|
41
|
-
|
41
|
+
env_names: ["APPSTORE_BUILD_NUMBER_API_KEY_PATH", "APP_STORE_CONNECT_API_KEY_PATH"],
|
42
42
|
description: "Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)",
|
43
43
|
optional: true,
|
44
44
|
conflicting_options: [:api_key],
|
@@ -46,7 +46,7 @@ module Fastlane
|
|
46
46
|
UI.user_error!("Couldn't find API key JSON file at path '#{value}'") unless File.exist?(value)
|
47
47
|
end),
|
48
48
|
FastlaneCore::ConfigItem.new(key: :api_key,
|
49
|
-
|
49
|
+
env_names: ["APPSTORE_BUILD_NUMBER_API_KEY", "APP_STORE_CONNECT_API_KEY"],
|
50
50
|
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)",
|
51
51
|
type: Hash,
|
52
52
|
optional: true,
|
@@ -33,10 +33,9 @@ module Fastlane
|
|
33
33
|
command << '--set-upstream' if params[:set_upstream]
|
34
34
|
|
35
35
|
# optionally add the --push_options components
|
36
|
-
params[:push_options].each { |push_option| command << "--push-option=#{push_option}" }
|
36
|
+
params[:push_options].each { |push_option| command << "--push-option=#{push_option}" } if params[:push_options]
|
37
37
|
|
38
38
|
# execute our command
|
39
|
-
Actions.sh('pwd')
|
40
39
|
return command.join(' ') if Helper.test?
|
41
40
|
|
42
41
|
Actions.sh(command.join(' '))
|
@@ -39,7 +39,7 @@ module Fastlane
|
|
39
39
|
|
40
40
|
def self.api_token(params)
|
41
41
|
params[:api_key] ||= Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY]
|
42
|
-
api_token ||= Spaceship::ConnectAPI::Token.create(params[:api_key]) if params[:api_key]
|
42
|
+
api_token ||= Spaceship::ConnectAPI::Token.create(**params[:api_key]) if params[:api_key]
|
43
43
|
api_token ||= Spaceship::ConnectAPI::Token.from_json_file(params[:api_key_path]) if params[:api_key_path]
|
44
44
|
return api_token
|
45
45
|
end
|
@@ -69,7 +69,7 @@ module Fastlane
|
|
69
69
|
env_name: "FL_REGISTER_DEVICE_UDID",
|
70
70
|
description: "Provide the UDID of the device to register as"),
|
71
71
|
FastlaneCore::ConfigItem.new(key: :api_key_path,
|
72
|
-
|
72
|
+
env_names: ["FL_REGISTER_DEVICE_API_KEY_PATH", "APP_STORE_CONNECT_API_KEY_PATH"],
|
73
73
|
description: "Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)",
|
74
74
|
optional: true,
|
75
75
|
conflicting_options: [:api_key],
|
@@ -77,7 +77,7 @@ module Fastlane
|
|
77
77
|
UI.user_error!("Couldn't find API key JSON file at path '#{value}'") unless File.exist?(value)
|
78
78
|
end),
|
79
79
|
FastlaneCore::ConfigItem.new(key: :api_key,
|
80
|
-
|
80
|
+
env_names: ["FL_REGISTER_DEVICE_API_KEY", "APP_STORE_CONNECT_API_KEY"],
|
81
81
|
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)",
|
82
82
|
type: Hash,
|
83
83
|
optional: true,
|
@@ -85,7 +85,7 @@ module Fastlane
|
|
85
85
|
|
86
86
|
def self.api_token(params)
|
87
87
|
params[:api_key] ||= Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY]
|
88
|
-
api_token ||= Spaceship::ConnectAPI::Token.create(params[:api_key]) if params[:api_key]
|
88
|
+
api_token ||= Spaceship::ConnectAPI::Token.create(**params[:api_key]) if params[:api_key]
|
89
89
|
api_token ||= Spaceship::ConnectAPI::Token.from_json_file(params[:api_key_path]) if params[:api_key_path]
|
90
90
|
return api_token
|
91
91
|
end
|
@@ -118,7 +118,7 @@ module Fastlane
|
|
118
118
|
UI.user_error!("Could not find file '#{value}'") unless File.exist?(value)
|
119
119
|
end),
|
120
120
|
FastlaneCore::ConfigItem.new(key: :api_key_path,
|
121
|
-
|
121
|
+
env_names: ["FL_REGISTER_DEVICES_API_KEY_PATH", "APP_STORE_CONNECT_API_KEY_PATH"],
|
122
122
|
description: "Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)",
|
123
123
|
optional: true,
|
124
124
|
conflicting_options: [:api_key],
|
@@ -126,7 +126,7 @@ module Fastlane
|
|
126
126
|
UI.user_error!("Couldn't find API key JSON file at path '#{value}'") unless File.exist?(value)
|
127
127
|
end),
|
128
128
|
FastlaneCore::ConfigItem.new(key: :api_key,
|
129
|
-
|
129
|
+
env_names: ["FL_REGISTER_DEVICES_API_KEY", "APP_STORE_CONNECT_API_KEY"],
|
130
130
|
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)",
|
131
131
|
type: Hash,
|
132
132
|
optional: true,
|
@@ -5,7 +5,7 @@ module Fastlane
|
|
5
5
|
path = params[:path]
|
6
6
|
backup_path = "#{path}.back"
|
7
7
|
UI.user_error!("Could not find file '#{backup_path}'") unless File.exist?(backup_path)
|
8
|
-
FileUtils.cp(backup_path, path,
|
8
|
+
FileUtils.cp(backup_path, path, preserve: true)
|
9
9
|
FileUtils.rm(backup_path)
|
10
10
|
UI.message("Successfully restored backup 📤")
|
11
11
|
end
|
@@ -80,7 +80,7 @@ module Fastlane
|
|
80
80
|
|
81
81
|
def self.api_token(params)
|
82
82
|
params[:api_key] ||= Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY]
|
83
|
-
api_token ||= Spaceship::ConnectAPI::Token.create(params[:api_key]) if params[:api_key]
|
83
|
+
api_token ||= Spaceship::ConnectAPI::Token.create(**params[:api_key]) if params[:api_key]
|
84
84
|
api_token ||= Spaceship::ConnectAPI::Token.from_json_file(params[:api_key_path]) if params[:api_key_path]
|
85
85
|
return api_token
|
86
86
|
end
|
@@ -111,7 +111,7 @@ module Fastlane
|
|
111
111
|
|
112
112
|
[
|
113
113
|
FastlaneCore::ConfigItem.new(key: :api_key_path,
|
114
|
-
|
114
|
+
env_names: ["FL_SET_CHANGELOG_API_KEY_PATH", "APP_STORE_CONNECT_API_KEY_PATH"],
|
115
115
|
description: "Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)",
|
116
116
|
optional: true,
|
117
117
|
conflicting_options: [:api_key],
|
@@ -119,7 +119,7 @@ module Fastlane
|
|
119
119
|
UI.user_error!("Couldn't find API key JSON file at path '#{value}'") unless File.exist?(value)
|
120
120
|
end),
|
121
121
|
FastlaneCore::ConfigItem.new(key: :api_key,
|
122
|
-
|
122
|
+
env_names: ["FL_SET_CHANGELOG_API_KEY", "APP_STORE_CONNECT_API_KEY"],
|
123
123
|
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)",
|
124
124
|
type: Hash,
|
125
125
|
optional: true,
|
@@ -145,7 +145,7 @@ module Fastlane
|
|
145
145
|
optional: true,
|
146
146
|
verify_block: proc do |value|
|
147
147
|
available = ['xcode', 'json', 'csv', 'checkstyle', 'codeclimate', 'junit', 'html', 'emoji', 'sonarqube', 'markdown', 'github-actions-logging']
|
148
|
-
UI.
|
148
|
+
UI.important("Known 'reporter' values are '#{available.join("', '")}'. If you're receiving errors from swiftlint related to the reporter, make sure the reporter identifier you're using is correct and it's supported by your version of swiftlint.") unless available.include?(value)
|
149
149
|
end),
|
150
150
|
FastlaneCore::ConfigItem.new(key: :quiet,
|
151
151
|
env_name: "FL_SWIFTLINT_QUIET",
|
@@ -140,7 +140,7 @@ module Fastlane
|
|
140
140
|
env_name: "FL_PROJECT_SIGNING_BUILD_CONFIGURATIONS",
|
141
141
|
optional: true,
|
142
142
|
type: Array,
|
143
|
-
description: "Specify build_configurations you want to toggle the signing mech. (default to all
|
143
|
+
description: "Specify build_configurations you want to toggle the signing mech. (default to all configurations)",
|
144
144
|
is_string: false),
|
145
145
|
FastlaneCore::ConfigItem.new(key: :code_sign_identity,
|
146
146
|
env_name: "FL_CODE_SIGN_IDENTITY",
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'thread'
|
2
|
-
|
3
1
|
module Fastlane
|
4
2
|
module Actions
|
5
3
|
class UploadSymbolsToCrashlyticsAction < Action
|
@@ -35,10 +33,11 @@ module Fastlane
|
|
35
33
|
UI.message("Using #{max_worker_threads} threads for Crashlytics dSYM upload 🏎")
|
36
34
|
end
|
37
35
|
|
38
|
-
|
39
|
-
handle_dsym(params,
|
36
|
+
worker = FastlaneCore::QueueWorker.new(max_worker_threads) do |dsym_path|
|
37
|
+
handle_dsym(params, dsym_path, max_worker_threads)
|
40
38
|
end
|
41
|
-
|
39
|
+
worker.batch_enqueue(dsym_paths)
|
40
|
+
worker.start
|
42
41
|
UI.success("Successfully uploaded dSYM files to Crashlytics 💯")
|
43
42
|
end
|
44
43
|
|
@@ -22,7 +22,11 @@ module Fastlane
|
|
22
22
|
return values if Helper.test?
|
23
23
|
|
24
24
|
if distribute_only
|
25
|
-
Pilot::BuildManager.new
|
25
|
+
build_manager = Pilot::BuildManager.new
|
26
|
+
build_manager.start(values, should_login: true)
|
27
|
+
|
28
|
+
build_manager.wait_for_build_processing_to_be_complete(false) unless values[:skip_waiting_for_build_processing]
|
29
|
+
build_manager.distribute(values) # we already have the finished config
|
26
30
|
else
|
27
31
|
Pilot::BuildManager.new.upload(values) # we already have the finished config
|
28
32
|
end
|
@@ -135,7 +135,7 @@ module Fastlane
|
|
135
135
|
if options
|
136
136
|
puts(Terminal::Table.new(
|
137
137
|
title: "#{name} Options".green,
|
138
|
-
headings: ['Key', 'Description', 'Env Var', 'Default'],
|
138
|
+
headings: ['Key', 'Description', 'Env Var(s)', 'Default'],
|
139
139
|
rows: FastlaneCore::PrintTable.transform_output(options)
|
140
140
|
))
|
141
141
|
else
|
@@ -197,7 +197,7 @@ module Fastlane
|
|
197
197
|
if options.kind_of?(Array)
|
198
198
|
options.each do |current|
|
199
199
|
if current.kind_of?(FastlaneCore::ConfigItem)
|
200
|
-
rows << [current.key.to_s.yellow, current.deprecated ? current.description.red : current.description, current.
|
200
|
+
rows << [current.key.to_s.yellow, current.deprecated ? current.description.red : current.description, current.env_names.join(", "), current.help_default_value]
|
201
201
|
elsif current.kind_of?(Array)
|
202
202
|
# Legacy actions that don't use the new config manager
|
203
203
|
UI.user_error!("Invalid number of elements in this row: #{current}. Must be 2 or 3") unless [2, 3].include?(current.count)
|
@@ -24,7 +24,13 @@ module Fastlane
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def render(template)
|
27
|
-
ERB.new
|
27
|
+
# From Ruby 2.6, ERB.new takes keyword arguments and positional ones are deprecated
|
28
|
+
# https://bugs.ruby-lang.org/issues/14256
|
29
|
+
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.6.0")
|
30
|
+
ERB.new(template, trim_mode: @trim_mode).result(binding)
|
31
|
+
else
|
32
|
+
ERB.new(template, nil, @trim_mode).result(binding)
|
33
|
+
end
|
28
34
|
end
|
29
35
|
end
|
30
36
|
end
|
@@ -201,13 +201,17 @@ module Fastlane
|
|
201
201
|
# First accepts hash (or named keywords) like other actions
|
202
202
|
# Otherwise uses sh method that doesn't have an interface like an action
|
203
203
|
if args.count == 1 && args.first.kind_of?(Hash)
|
204
|
-
|
205
|
-
command =
|
204
|
+
options = args.first
|
205
|
+
command = options.delete(:command)
|
206
206
|
|
207
207
|
raise ArgumentError, "sh requires :command keyword in argument" if command.nil?
|
208
|
-
|
209
|
-
|
210
|
-
|
208
|
+
log = options[:log].nil? ? true : options[:log]
|
209
|
+
FastFile.sh(*command, step_name: options[:step_name], log: log, error_callback: options[:error_callback], &b)
|
210
|
+
elsif args.count != 1 && args.last.kind_of?(Hash)
|
211
|
+
new_args = args.dup
|
212
|
+
options = new_args.pop
|
213
|
+
log = options[:log].nil? ? true : options[:log]
|
214
|
+
FastFile.sh(*new_args, step_name: options[:step_name], log: log, error_callback: options[:error_callback], &b)
|
211
215
|
else
|
212
216
|
FastFile.sh(*args, &b)
|
213
217
|
end
|
@@ -10,8 +10,8 @@ module Fastlane
|
|
10
10
|
rescue Gem::LoadError
|
11
11
|
UI.error("Could not find gem '#{gem_name}'")
|
12
12
|
UI.error("")
|
13
|
-
UI.error("If you installed fastlane using `
|
14
|
-
UI.command("
|
13
|
+
UI.error("If you installed fastlane using `gem install fastlane` run")
|
14
|
+
UI.command("gem install #{gem_name}")
|
15
15
|
UI.error("to install the missing gem")
|
16
16
|
UI.error("")
|
17
17
|
UI.error("If you use a Gemfile add this to your Gemfile:")
|
@@ -8,7 +8,7 @@ import Foundation
|
|
8
8
|
- parameters:
|
9
9
|
- serial: Android serial of the device to use for this command
|
10
10
|
- command: All commands you want to pass to the adb command, e.g. `kill-server`
|
11
|
-
- adbPath: The path to your `adb` binary (can be left blank if the ANDROID_SDK_ROOT environment variable is set)
|
11
|
+
- adbPath: The path to your `adb` binary (can be left blank if the ANDROID_SDK_ROOT, ANDROID_HOME or ANDROID_SDK environment variable is set)
|
12
12
|
|
13
13
|
- returns: The output of the adb command
|
14
14
|
|
@@ -149,7 +149,7 @@ public func appStoreBuildNumber(apiKeyPath: String? = nil,
|
|
149
149
|
- keyContent: The content of the key p8 file
|
150
150
|
- isKeyContentBase64: Whether :key_content is Base64 encoded or not
|
151
151
|
- duration: The token session duration
|
152
|
-
- inHouse: Is App Store or Enterprise (in house) team? App Store Connect API cannot
|
152
|
+
- inHouse: Is App Store or Enterprise (in house) team? App Store Connect API cannot determine this on its own (yet)
|
153
153
|
|
154
154
|
Load the App Store Connect API token to use in other fastlane tools and actions
|
155
155
|
*/
|
@@ -158,7 +158,7 @@ public func appStoreConnectApiKey(keyId: String,
|
|
158
158
|
keyFilepath: String? = nil,
|
159
159
|
keyContent: String? = nil,
|
160
160
|
isKeyContentBase64: Bool = false,
|
161
|
-
duration: Int
|
161
|
+
duration: Int = 1200,
|
162
162
|
inHouse: Bool? = nil)
|
163
163
|
{
|
164
164
|
let command = RubyCommand(commandID: "", methodName: "app_store_connect_api_key", className: nil, args: [RubyCommand.Argument(name: "key_id", value: keyId),
|
@@ -183,6 +183,7 @@ public func appStoreConnectApiKey(keyId: String,
|
|
183
183
|
- locale: Select the folder locale for your screenshots
|
184
184
|
- device: Select the device format for your screenshots
|
185
185
|
- description: Your app description
|
186
|
+
- changelog: Your app changelog
|
186
187
|
|
187
188
|
Appaloosa is a private mobile application store. This action offers a quick deployment on the platform.
|
188
189
|
You can create an account, push to your existing account, or manage your user groups.
|
@@ -195,7 +196,8 @@ public func appaloosa(binary: String,
|
|
195
196
|
screenshots: String,
|
196
197
|
locale: String = "en-US",
|
197
198
|
device: String? = nil,
|
198
|
-
description: String? = nil
|
199
|
+
description: String? = nil,
|
200
|
+
changelog: String? = nil)
|
199
201
|
{
|
200
202
|
let command = RubyCommand(commandID: "", methodName: "appaloosa", className: nil, args: [RubyCommand.Argument(name: "binary", value: binary),
|
201
203
|
RubyCommand.Argument(name: "api_token", value: apiToken),
|
@@ -204,7 +206,8 @@ public func appaloosa(binary: String,
|
|
204
206
|
RubyCommand.Argument(name: "screenshots", value: screenshots),
|
205
207
|
RubyCommand.Argument(name: "locale", value: locale),
|
206
208
|
RubyCommand.Argument(name: "device", value: device),
|
207
|
-
RubyCommand.Argument(name: "description", value: description)
|
209
|
+
RubyCommand.Argument(name: "description", value: description),
|
210
|
+
RubyCommand.Argument(name: "changelog", value: changelog)])
|
208
211
|
_ = runner.executeCommand(command)
|
209
212
|
}
|
210
213
|
|
@@ -219,6 +222,7 @@ public func appaloosa(binary: String,
|
|
219
222
|
- path: Path to zipped build on the local filesystem. Either this or `url` must be specified
|
220
223
|
- publicKey: If not provided, a new app will be created. If provided, the existing build will be overwritten
|
221
224
|
- note: Notes you wish to add to the uploaded app
|
225
|
+
- timeout: The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120
|
222
226
|
|
223
227
|
If you provide a `public_key`, this will overwrite an existing application. If you want to have this build as a new app version, you shouldn't provide this value.
|
224
228
|
|
@@ -230,7 +234,8 @@ public func appetize(apiHost: String = "api.appetize.io",
|
|
230
234
|
platform: String = "ios",
|
231
235
|
path: String? = nil,
|
232
236
|
publicKey: String? = nil,
|
233
|
-
note: String? = nil
|
237
|
+
note: String? = nil,
|
238
|
+
timeout: Int? = nil)
|
234
239
|
{
|
235
240
|
let command = RubyCommand(commandID: "", methodName: "appetize", className: nil, args: [RubyCommand.Argument(name: "api_host", value: apiHost),
|
236
241
|
RubyCommand.Argument(name: "api_token", value: apiToken),
|
@@ -238,7 +243,8 @@ public func appetize(apiHost: String = "api.appetize.io",
|
|
238
243
|
RubyCommand.Argument(name: "platform", value: platform),
|
239
244
|
RubyCommand.Argument(name: "path", value: path),
|
240
245
|
RubyCommand.Argument(name: "public_key", value: publicKey),
|
241
|
-
RubyCommand.Argument(name: "note", value: note)
|
246
|
+
RubyCommand.Argument(name: "note", value: note),
|
247
|
+
RubyCommand.Argument(name: "timeout", value: timeout)])
|
242
248
|
_ = runner.executeCommand(command)
|
243
249
|
}
|
244
250
|
|
@@ -874,6 +880,7 @@ public func badge(dark: Any? = nil,
|
|
874
880
|
- apiToken: Appetize.io API Token
|
875
881
|
- publicKey: If not provided, a new app will be created. If provided, the existing build will be overwritten
|
876
882
|
- note: Notes you wish to add to the uploaded app
|
883
|
+
- timeout: The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120
|
877
884
|
|
878
885
|
This should be called from danger.
|
879
886
|
More information in the [device_grid guide](https://github.com/fastlane/fastlane/blob/master/fastlane/lib/fastlane/actions/device_grid/README.md).
|
@@ -882,13 +889,15 @@ public func buildAndUploadToAppetize(xcodebuild: [String: Any] = [:],
|
|
882
889
|
scheme: String? = nil,
|
883
890
|
apiToken: String,
|
884
891
|
publicKey: String? = nil,
|
885
|
-
note: String? = nil
|
892
|
+
note: String? = nil,
|
893
|
+
timeout: Int? = nil)
|
886
894
|
{
|
887
895
|
let command = RubyCommand(commandID: "", methodName: "build_and_upload_to_appetize", className: nil, args: [RubyCommand.Argument(name: "xcodebuild", value: xcodebuild),
|
888
896
|
RubyCommand.Argument(name: "scheme", value: scheme),
|
889
897
|
RubyCommand.Argument(name: "api_token", value: apiToken),
|
890
898
|
RubyCommand.Argument(name: "public_key", value: publicKey),
|
891
|
-
RubyCommand.Argument(name: "note", value: note)
|
899
|
+
RubyCommand.Argument(name: "note", value: note),
|
900
|
+
RubyCommand.Argument(name: "timeout", value: timeout)])
|
892
901
|
_ = runner.executeCommand(command)
|
893
902
|
}
|
894
903
|
|
@@ -1850,6 +1859,8 @@ public func captureScreenshots(workspace: String? = nil,
|
|
1850
1859
|
- projectDirectory: Define the directory containing the Carthage project
|
1851
1860
|
- newResolver: Use new resolver when resolving dependency graph
|
1852
1861
|
- logPath: Path to the xcode build output
|
1862
|
+
- useXcframeworks: Create xcframework bundles instead of one framework per platform (requires Xcode 12+)
|
1863
|
+
- archive: Archive built frameworks from the current project
|
1853
1864
|
- executable: Path to the `carthage` executable on your machine
|
1854
1865
|
*/
|
1855
1866
|
public func carthage(command: String = "bootstrap",
|
@@ -1872,6 +1883,8 @@ public func carthage(command: String = "bootstrap",
|
|
1872
1883
|
projectDirectory: String? = nil,
|
1873
1884
|
newResolver: Bool? = nil,
|
1874
1885
|
logPath: String? = nil,
|
1886
|
+
useXcframeworks: Bool = false,
|
1887
|
+
archive: Bool = false,
|
1875
1888
|
executable: String = "carthage")
|
1876
1889
|
{
|
1877
1890
|
let command = RubyCommand(commandID: "", methodName: "carthage", className: nil, args: [RubyCommand.Argument(name: "command", value: command),
|
@@ -1894,6 +1907,8 @@ public func carthage(command: String = "bootstrap",
|
|
1894
1907
|
RubyCommand.Argument(name: "project_directory", value: projectDirectory),
|
1895
1908
|
RubyCommand.Argument(name: "new_resolver", value: newResolver),
|
1896
1909
|
RubyCommand.Argument(name: "log_path", value: logPath),
|
1910
|
+
RubyCommand.Argument(name: "use_xcframeworks", value: useXcframeworks),
|
1911
|
+
RubyCommand.Argument(name: "archive", value: archive),
|
1897
1912
|
RubyCommand.Argument(name: "executable", value: executable)])
|
1898
1913
|
_ = runner.executeCommand(command)
|
1899
1914
|
}
|
@@ -2192,6 +2207,7 @@ public func clubmate() {
|
|
2192
2207
|
- errorCallback: A callback invoked with the command output if there is a non-zero exit status
|
2193
2208
|
- tryRepoUpdateOnError: Retry with --repo-update if action was finished with error
|
2194
2209
|
- deployment: Disallow any changes to the Podfile or the Podfile.lock during installation
|
2210
|
+
- allowRoot: Allows CocoaPods to run as root
|
2195
2211
|
- clean: **DEPRECATED!** (Option renamed as clean_install) Remove SCM directories
|
2196
2212
|
- integrate: **DEPRECATED!** (Option removed from cocoapods) Integrate the Pods libraries into the Xcode project(s)
|
2197
2213
|
|
@@ -2207,6 +2223,7 @@ public func cocoapods(repoUpdate: Bool = false,
|
|
2207
2223
|
errorCallback: ((String) -> Void)? = nil,
|
2208
2224
|
tryRepoUpdateOnError: Bool = false,
|
2209
2225
|
deployment: Bool = false,
|
2226
|
+
allowRoot: Bool = false,
|
2210
2227
|
clean: Bool = true,
|
2211
2228
|
integrate: Bool = true)
|
2212
2229
|
{
|
@@ -2220,6 +2237,7 @@ public func cocoapods(repoUpdate: Bool = false,
|
|
2220
2237
|
RubyCommand.Argument(name: "error_callback", value: errorCallback, type: .stringClosure),
|
2221
2238
|
RubyCommand.Argument(name: "try_repo_update_on_error", value: tryRepoUpdateOnError),
|
2222
2239
|
RubyCommand.Argument(name: "deployment", value: deployment),
|
2240
|
+
RubyCommand.Argument(name: "allow_root", value: allowRoot),
|
2223
2241
|
RubyCommand.Argument(name: "clean", value: clean),
|
2224
2242
|
RubyCommand.Argument(name: "integrate", value: integrate)])
|
2225
2243
|
_ = runner.executeCommand(command)
|
@@ -2232,6 +2250,7 @@ public func cocoapods(repoUpdate: Bool = false,
|
|
2232
2250
|
- repositoryName: The path to your repo, e.g. 'fastlane/fastlane'
|
2233
2251
|
- serverUrl: The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com')
|
2234
2252
|
- apiToken: Personal API Token for GitHub - generate one at https://github.com/settings/tokens
|
2253
|
+
- apiBearer: Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable
|
2235
2254
|
- branch: The branch that the file should be committed on (default: master)
|
2236
2255
|
- path: The relative path to your file from project root e.g. assets/my_app.xcarchive
|
2237
2256
|
- message: The commit message. Defaults to the file name
|
@@ -2246,7 +2265,8 @@ public func cocoapods(repoUpdate: Bool = false,
|
|
2246
2265
|
*/
|
2247
2266
|
@discardableResult public func commitGithubFile(repositoryName: String,
|
2248
2267
|
serverUrl: String = "https://api.github.com",
|
2249
|
-
apiToken: String,
|
2268
|
+
apiToken: String? = nil,
|
2269
|
+
apiBearer: String? = nil,
|
2250
2270
|
branch: String = "master",
|
2251
2271
|
path: String,
|
2252
2272
|
message: String? = nil,
|
@@ -2255,6 +2275,7 @@ public func cocoapods(repoUpdate: Bool = false,
|
|
2255
2275
|
let command = RubyCommand(commandID: "", methodName: "commit_github_file", className: nil, args: [RubyCommand.Argument(name: "repository_name", value: repositoryName),
|
2256
2276
|
RubyCommand.Argument(name: "server_url", value: serverUrl),
|
2257
2277
|
RubyCommand.Argument(name: "api_token", value: apiToken),
|
2278
|
+
RubyCommand.Argument(name: "api_bearer", value: apiBearer),
|
2258
2279
|
RubyCommand.Argument(name: "branch", value: branch),
|
2259
2280
|
RubyCommand.Argument(name: "path", value: path),
|
2260
2281
|
RubyCommand.Argument(name: "message", value: message),
|
@@ -3519,6 +3540,7 @@ public func getCertificates(development: Bool = false,
|
|
3519
3540
|
- serverUrl: The server url. e.g. 'https://your.github.server/api/v3' (Default: 'https://api.github.com')
|
3520
3541
|
- version: The version tag of the release to check
|
3521
3542
|
- apiToken: GitHub Personal Token (required for private repositories)
|
3543
|
+
- apiBearer: Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable
|
3522
3544
|
|
3523
3545
|
This will return all information about a release. For example:|
|
3524
3546
|
|
|
@@ -3566,12 +3588,14 @@ public func getCertificates(development: Bool = false,
|
|
3566
3588
|
public func getGithubRelease(url: String,
|
3567
3589
|
serverUrl: String = "https://api.github.com",
|
3568
3590
|
version: String,
|
3569
|
-
apiToken: String? = nil
|
3591
|
+
apiToken: String? = nil,
|
3592
|
+
apiBearer: String? = nil)
|
3570
3593
|
{
|
3571
3594
|
let command = RubyCommand(commandID: "", methodName: "get_github_release", className: nil, args: [RubyCommand.Argument(name: "url", value: url),
|
3572
3595
|
RubyCommand.Argument(name: "server_url", value: serverUrl),
|
3573
3596
|
RubyCommand.Argument(name: "version", value: version),
|
3574
|
-
RubyCommand.Argument(name: "api_token", value: apiToken)
|
3597
|
+
RubyCommand.Argument(name: "api_token", value: apiToken),
|
3598
|
+
RubyCommand.Argument(name: "api_bearer", value: apiBearer)])
|
3575
3599
|
_ = runner.executeCommand(command)
|
3576
3600
|
}
|
3577
3601
|
|
@@ -3830,7 +3854,7 @@ public func gitAdd(path: Any? = nil,
|
|
3830
3854
|
Directly commit the given file with the given message
|
3831
3855
|
|
3832
3856
|
- parameters:
|
3833
|
-
- path: The file you want to commit
|
3857
|
+
- path: The file(s) or directory(ies) you want to commit. You can pass an array of multiple file-paths or fileglobs "*.txt" to commit all matching files. The files already staged but not specified and untracked files won't be committed
|
3834
3858
|
- message: The commit message that should be used
|
3835
3859
|
- skipGitHooks: Set to true to pass --no-verify to git
|
3836
3860
|
- allowNothingToCommit: Set to true to allow commit without any git changes in the files you want to commit
|
@@ -4493,14 +4517,17 @@ public func importCertificate(certificatePath: String,
|
|
4493
4517
|
|
4494
4518
|
- parameters:
|
4495
4519
|
- buildNumber: Change to a specific version. When you provide this parameter, Apple Generic Versioning does not have to be enabled
|
4520
|
+
- skipInfoPlist: Don't update Info.plist files when updating the build version
|
4496
4521
|
- xcodeproj: optional, you must specify the path to your main Xcode project if it is not in the project root directory
|
4497
4522
|
|
4498
4523
|
- returns: The new build number
|
4499
4524
|
*/
|
4500
4525
|
@discardableResult public func incrementBuildNumber(buildNumber: Any? = nil,
|
4526
|
+
skipInfoPlist: Bool = false,
|
4501
4527
|
xcodeproj: String? = nil) -> String
|
4502
4528
|
{
|
4503
4529
|
let command = RubyCommand(commandID: "", methodName: "increment_build_number", className: nil, args: [RubyCommand.Argument(name: "build_number", value: buildNumber),
|
4530
|
+
RubyCommand.Argument(name: "skip_info_plist", value: skipInfoPlist),
|
4504
4531
|
RubyCommand.Argument(name: "xcodeproj", value: xcodeproj)])
|
4505
4532
|
return runner.executeCommand(command)
|
4506
4533
|
}
|
@@ -4665,10 +4692,15 @@ public func ipa(workspace: String? = nil,
|
|
4665
4692
|
/**
|
4666
4693
|
Generate docs using Jazzy
|
4667
4694
|
|
4668
|
-
-
|
4695
|
+
- parameters:
|
4696
|
+
- config: Path to jazzy config file
|
4697
|
+
- moduleVersion: Version string to use as part of the the default docs title and inside the docset
|
4669
4698
|
*/
|
4670
|
-
public func jazzy(config: String? = nil
|
4671
|
-
|
4699
|
+
public func jazzy(config: String? = nil,
|
4700
|
+
moduleVersion: String? = nil)
|
4701
|
+
{
|
4702
|
+
let command = RubyCommand(commandID: "", methodName: "jazzy", className: nil, args: [RubyCommand.Argument(name: "config", value: config),
|
4703
|
+
RubyCommand.Argument(name: "module_version", value: moduleVersion)])
|
4672
4704
|
_ = runner.executeCommand(command)
|
4673
4705
|
}
|
4674
4706
|
|
@@ -5415,7 +5447,7 @@ public func pem(development: Bool = false,
|
|
5415
5447
|
- distributeOnly: Distribute a previously uploaded build (equivalent to the `fastlane pilot distribute` command)
|
5416
5448
|
- usesNonExemptEncryption: Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist
|
5417
5449
|
- distributeExternal: Should the build be distributed to external testers?
|
5418
|
-
- notifyExternalTesters: Should notify external testers?
|
5450
|
+
- notifyExternalTesters: Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify)
|
5419
5451
|
- appVersion: The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed
|
5420
5452
|
- buildNumber: The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed
|
5421
5453
|
- expirePreviousBuilds: Should expire previous builds?
|
@@ -5442,7 +5474,7 @@ public func pilot(apiKeyPath: String? = nil,
|
|
5442
5474
|
appPlatform: String = "ios",
|
5443
5475
|
appleId: String? = nil,
|
5444
5476
|
ipa: String? = nil,
|
5445
|
-
demoAccountRequired: Bool =
|
5477
|
+
demoAccountRequired: Bool? = nil,
|
5446
5478
|
betaAppReviewInfo: [String: Any]? = nil,
|
5447
5479
|
localizedAppInfo: [String: Any]? = nil,
|
5448
5480
|
betaAppDescription: String? = nil,
|
@@ -5455,7 +5487,7 @@ public func pilot(apiKeyPath: String? = nil,
|
|
5455
5487
|
distributeOnly: Bool = false,
|
5456
5488
|
usesNonExemptEncryption: Bool = false,
|
5457
5489
|
distributeExternal: Bool = false,
|
5458
|
-
notifyExternalTesters:
|
5490
|
+
notifyExternalTesters: Any? = nil,
|
5459
5491
|
appVersion: String? = nil,
|
5460
5492
|
buildNumber: String? = nil,
|
5461
5493
|
expirePreviousBuilds: Bool = false,
|
@@ -6169,6 +6201,7 @@ public func rubyVersion() {
|
|
6169
6201
|
- device: The name of the simulator type you want to run tests on (e.g. 'iPhone 6')
|
6170
6202
|
- devices: Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air'])
|
6171
6203
|
- skipDetectDevices: Should skip auto detecting of devices if none were specified
|
6204
|
+
- ensureDevicesFound: Should fail if devices not found
|
6172
6205
|
- forceQuitSimulator: Enabling this option will automatically killall Simulator processes before the run
|
6173
6206
|
- resetSimulator: Enabling this option will automatically erase the simulator before running the application
|
6174
6207
|
- disableSlideToType: Enabling this option will disable the simulator from showing the 'Slide to type' prompt
|
@@ -6199,6 +6232,7 @@ public func rubyVersion() {
|
|
6199
6232
|
- xcprettyArgs: Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf')
|
6200
6233
|
- derivedDataPath: The directory where build products and other derived data will go
|
6201
6234
|
- shouldZipBuildProducts: Should zip the derived data build products and place in output path?
|
6235
|
+
- outputXctestrun: Should provide additional copy of .xctestrun file (settings.xctestrun) and place in output path?
|
6202
6236
|
- resultBundle: Should an Xcode result bundle be generated in the output directory
|
6203
6237
|
- useClangReportName: Generate the json compilation database with clang naming convention (compile_commands.json)
|
6204
6238
|
- concurrentWorkers: Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count
|
@@ -6240,6 +6274,7 @@ public func runTests(workspace: String? = nil,
|
|
6240
6274
|
device: String? = nil,
|
6241
6275
|
devices: [String]? = nil,
|
6242
6276
|
skipDetectDevices: Bool = false,
|
6277
|
+
ensureDevicesFound: Bool = false,
|
6243
6278
|
forceQuitSimulator: Bool = false,
|
6244
6279
|
resetSimulator: Bool = false,
|
6245
6280
|
disableSlideToType: Bool = true,
|
@@ -6270,6 +6305,7 @@ public func runTests(workspace: String? = nil,
|
|
6270
6305
|
xcprettyArgs: String? = nil,
|
6271
6306
|
derivedDataPath: String? = nil,
|
6272
6307
|
shouldZipBuildProducts: Bool = false,
|
6308
|
+
outputXctestrun: Bool = false,
|
6273
6309
|
resultBundle: Bool = false,
|
6274
6310
|
useClangReportName: Bool = false,
|
6275
6311
|
concurrentWorkers: Int? = nil,
|
@@ -6309,6 +6345,7 @@ public func runTests(workspace: String? = nil,
|
|
6309
6345
|
RubyCommand.Argument(name: "device", value: device),
|
6310
6346
|
RubyCommand.Argument(name: "devices", value: devices),
|
6311
6347
|
RubyCommand.Argument(name: "skip_detect_devices", value: skipDetectDevices),
|
6348
|
+
RubyCommand.Argument(name: "ensure_devices_found", value: ensureDevicesFound),
|
6312
6349
|
RubyCommand.Argument(name: "force_quit_simulator", value: forceQuitSimulator),
|
6313
6350
|
RubyCommand.Argument(name: "reset_simulator", value: resetSimulator),
|
6314
6351
|
RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
|
@@ -6339,6 +6376,7 @@ public func runTests(workspace: String? = nil,
|
|
6339
6376
|
RubyCommand.Argument(name: "xcpretty_args", value: xcprettyArgs),
|
6340
6377
|
RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
|
6341
6378
|
RubyCommand.Argument(name: "should_zip_build_products", value: shouldZipBuildProducts),
|
6379
|
+
RubyCommand.Argument(name: "output_xctestrun", value: outputXctestrun),
|
6342
6380
|
RubyCommand.Argument(name: "result_bundle", value: resultBundle),
|
6343
6381
|
RubyCommand.Argument(name: "use_clang_report_name", value: useClangReportName),
|
6344
6382
|
RubyCommand.Argument(name: "concurrent_workers", value: concurrentWorkers),
|
@@ -6460,6 +6498,7 @@ public func say(text: Any,
|
|
6460
6498
|
- device: The name of the simulator type you want to run tests on (e.g. 'iPhone 6')
|
6461
6499
|
- devices: Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air'])
|
6462
6500
|
- skipDetectDevices: Should skip auto detecting of devices if none were specified
|
6501
|
+
- ensureDevicesFound: Should fail if devices not found
|
6463
6502
|
- forceQuitSimulator: Enabling this option will automatically killall Simulator processes before the run
|
6464
6503
|
- resetSimulator: Enabling this option will automatically erase the simulator before running the application
|
6465
6504
|
- disableSlideToType: Enabling this option will disable the simulator from showing the 'Slide to type' prompt
|
@@ -6490,6 +6529,7 @@ public func say(text: Any,
|
|
6490
6529
|
- xcprettyArgs: Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf')
|
6491
6530
|
- derivedDataPath: The directory where build products and other derived data will go
|
6492
6531
|
- shouldZipBuildProducts: Should zip the derived data build products and place in output path?
|
6532
|
+
- outputXctestrun: Should provide additional copy of .xctestrun file (settings.xctestrun) and place in output path?
|
6493
6533
|
- resultBundle: Should an Xcode result bundle be generated in the output directory
|
6494
6534
|
- useClangReportName: Generate the json compilation database with clang naming convention (compile_commands.json)
|
6495
6535
|
- concurrentWorkers: Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count
|
@@ -6531,6 +6571,7 @@ public func scan(workspace: Any? = scanfile.workspace,
|
|
6531
6571
|
device: Any? = scanfile.device,
|
6532
6572
|
devices: [String]? = scanfile.devices,
|
6533
6573
|
skipDetectDevices: Bool = scanfile.skipDetectDevices,
|
6574
|
+
ensureDevicesFound: Bool = scanfile.ensureDevicesFound,
|
6534
6575
|
forceQuitSimulator: Bool = scanfile.forceQuitSimulator,
|
6535
6576
|
resetSimulator: Bool = scanfile.resetSimulator,
|
6536
6577
|
disableSlideToType: Bool = scanfile.disableSlideToType,
|
@@ -6561,6 +6602,7 @@ public func scan(workspace: Any? = scanfile.workspace,
|
|
6561
6602
|
xcprettyArgs: Any? = scanfile.xcprettyArgs,
|
6562
6603
|
derivedDataPath: Any? = scanfile.derivedDataPath,
|
6563
6604
|
shouldZipBuildProducts: Bool = scanfile.shouldZipBuildProducts,
|
6605
|
+
outputXctestrun: Bool = scanfile.outputXctestrun,
|
6564
6606
|
resultBundle: Bool = scanfile.resultBundle,
|
6565
6607
|
useClangReportName: Bool = scanfile.useClangReportName,
|
6566
6608
|
concurrentWorkers: Int? = scanfile.concurrentWorkers,
|
@@ -6600,6 +6642,7 @@ public func scan(workspace: Any? = scanfile.workspace,
|
|
6600
6642
|
RubyCommand.Argument(name: "device", value: device),
|
6601
6643
|
RubyCommand.Argument(name: "devices", value: devices),
|
6602
6644
|
RubyCommand.Argument(name: "skip_detect_devices", value: skipDetectDevices),
|
6645
|
+
RubyCommand.Argument(name: "ensure_devices_found", value: ensureDevicesFound),
|
6603
6646
|
RubyCommand.Argument(name: "force_quit_simulator", value: forceQuitSimulator),
|
6604
6647
|
RubyCommand.Argument(name: "reset_simulator", value: resetSimulator),
|
6605
6648
|
RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
|
@@ -6630,6 +6673,7 @@ public func scan(workspace: Any? = scanfile.workspace,
|
|
6630
6673
|
RubyCommand.Argument(name: "xcpretty_args", value: xcprettyArgs),
|
6631
6674
|
RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
|
6632
6675
|
RubyCommand.Argument(name: "should_zip_build_products", value: shouldZipBuildProducts),
|
6676
|
+
RubyCommand.Argument(name: "output_xctestrun", value: outputXctestrun),
|
6633
6677
|
RubyCommand.Argument(name: "result_bundle", value: resultBundle),
|
6634
6678
|
RubyCommand.Argument(name: "use_clang_report_name", value: useClangReportName),
|
6635
6679
|
RubyCommand.Argument(name: "concurrent_workers", value: concurrentWorkers),
|
@@ -8092,7 +8136,7 @@ public func testfairy(apiKey: String,
|
|
8092
8136
|
- distributeOnly: Distribute a previously uploaded build (equivalent to the `fastlane pilot distribute` command)
|
8093
8137
|
- usesNonExemptEncryption: Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist
|
8094
8138
|
- distributeExternal: Should the build be distributed to external testers?
|
8095
|
-
- notifyExternalTesters: Should notify external testers?
|
8139
|
+
- notifyExternalTesters: Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify)
|
8096
8140
|
- appVersion: The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed
|
8097
8141
|
- buildNumber: The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed
|
8098
8142
|
- expirePreviousBuilds: Should expire previous builds?
|
@@ -8119,7 +8163,7 @@ public func testflight(apiKeyPath: String? = nil,
|
|
8119
8163
|
appPlatform: String = "ios",
|
8120
8164
|
appleId: String? = nil,
|
8121
8165
|
ipa: String? = nil,
|
8122
|
-
demoAccountRequired: Bool =
|
8166
|
+
demoAccountRequired: Bool? = nil,
|
8123
8167
|
betaAppReviewInfo: [String: Any]? = nil,
|
8124
8168
|
localizedAppInfo: [String: Any]? = nil,
|
8125
8169
|
betaAppDescription: String? = nil,
|
@@ -8132,7 +8176,7 @@ public func testflight(apiKeyPath: String? = nil,
|
|
8132
8176
|
distributeOnly: Bool = false,
|
8133
8177
|
usesNonExemptEncryption: Bool = false,
|
8134
8178
|
distributeExternal: Bool = false,
|
8135
|
-
notifyExternalTesters:
|
8179
|
+
notifyExternalTesters: Any? = nil,
|
8136
8180
|
appVersion: String? = nil,
|
8137
8181
|
buildNumber: String? = nil,
|
8138
8182
|
expirePreviousBuilds: Bool = false,
|
@@ -8323,7 +8367,7 @@ public func updateAppIdentifier(xcodeproj: String,
|
|
8323
8367
|
- useAutomaticSigning: Defines if project should use automatic signing
|
8324
8368
|
- teamId: Team ID, is used when upgrading project
|
8325
8369
|
- targets: Specify targets you want to toggle the signing mech. (default to all targets)
|
8326
|
-
- buildConfigurations: Specify build_configurations you want to toggle the signing mech. (default to all
|
8370
|
+
- buildConfigurations: Specify build_configurations you want to toggle the signing mech. (default to all configurations)
|
8327
8371
|
- codeSignIdentity: Code signing identity type (iPhone Developer, iPhone Distribution)
|
8328
8372
|
- profileName: Provisioning profile name to use for code signing
|
8329
8373
|
- profileUuid: Provisioning profile UUID to use for code signing
|
@@ -9085,7 +9129,7 @@ public func uploadToPlayStoreInternalAppSharing(packageName: String,
|
|
9085
9129
|
- distributeOnly: Distribute a previously uploaded build (equivalent to the `fastlane pilot distribute` command)
|
9086
9130
|
- usesNonExemptEncryption: Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist
|
9087
9131
|
- distributeExternal: Should the build be distributed to external testers?
|
9088
|
-
- notifyExternalTesters: Should notify external testers?
|
9132
|
+
- notifyExternalTesters: Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify)
|
9089
9133
|
- appVersion: The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed
|
9090
9134
|
- buildNumber: The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed
|
9091
9135
|
- expirePreviousBuilds: Should expire previous builds?
|
@@ -9112,7 +9156,7 @@ public func uploadToTestflight(apiKeyPath: String? = nil,
|
|
9112
9156
|
appPlatform: String = "ios",
|
9113
9157
|
appleId: String? = nil,
|
9114
9158
|
ipa: String? = nil,
|
9115
|
-
demoAccountRequired: Bool =
|
9159
|
+
demoAccountRequired: Bool? = nil,
|
9116
9160
|
betaAppReviewInfo: [String: Any]? = nil,
|
9117
9161
|
localizedAppInfo: [String: Any]? = nil,
|
9118
9162
|
betaAppDescription: String? = nil,
|
@@ -9125,7 +9169,7 @@ public func uploadToTestflight(apiKeyPath: String? = nil,
|
|
9125
9169
|
distributeOnly: Bool = false,
|
9126
9170
|
usesNonExemptEncryption: Bool = false,
|
9127
9171
|
distributeExternal: Bool = false,
|
9128
|
-
notifyExternalTesters:
|
9172
|
+
notifyExternalTesters: Any? = nil,
|
9129
9173
|
appVersion: String? = nil,
|
9130
9174
|
buildNumber: String? = nil,
|
9131
9175
|
expirePreviousBuilds: Bool = false,
|
@@ -9630,4 +9674,4 @@ public let snapshotfile = Snapshotfile()
|
|
9630
9674
|
|
9631
9675
|
// Please don't remove the lines below
|
9632
9676
|
// They are used to detect outdated files
|
9633
|
-
// FastlaneRunnerAPIVersion [0.9.
|
9677
|
+
// FastlaneRunnerAPIVersion [0.9.114]
|