fastlane 2.136.0 → 2.141.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 +85 -72
- data/cert/lib/cert/options.rb +12 -5
- data/cert/lib/cert/runner.rb +13 -0
- data/deliver/lib/deliver/options.rb +2 -2
- data/deliver/lib/deliver/runner.rb +13 -2
- data/deliver/lib/deliver/submit_for_review.rb +7 -1
- data/fastlane/lib/fastlane/action.rb +2 -2
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +1 -1
- data/fastlane/lib/fastlane/actions/build_app.rb +157 -6
- data/fastlane/lib/fastlane/actions/build_ios_app.rb +28 -132
- data/fastlane/lib/fastlane/actions/build_mac_app.rb +46 -0
- data/fastlane/lib/fastlane/actions/create_pull_request.rb +71 -2
- data/fastlane/lib/fastlane/actions/docs/{build_ios_app.md → build_app.md} +1 -1
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +19 -0
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +10 -0
- data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +4 -2
- data/fastlane/lib/fastlane/actions/ensure_bundle_exec.rb +3 -3
- data/fastlane/lib/fastlane/actions/get_version_number.rb +7 -2
- data/fastlane/lib/fastlane/actions/gradle.rb +54 -3
- data/fastlane/lib/fastlane/actions/gym.rb +3 -7
- data/fastlane/lib/fastlane/actions/import_from_git.rb +4 -0
- data/fastlane/lib/fastlane/actions/increment_version_number.rb +6 -3
- data/fastlane/lib/fastlane/actions/last_git_tag.rb +14 -5
- data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +2 -2
- data/fastlane/lib/fastlane/actions/register_devices.rb +5 -1
- data/fastlane/lib/fastlane/actions/ruby_version.rb +1 -1
- data/fastlane/lib/fastlane/actions/run_tests.rb +5 -22
- data/fastlane/lib/fastlane/actions/set_github_release.rb +1 -1
- data/fastlane/lib/fastlane/actions/setup_ci.rb +14 -8
- data/fastlane/lib/fastlane/actions/testfairy.rb +8 -1
- data/fastlane/lib/fastlane/actions/update_plist.rb +37 -2
- data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +1 -0
- data/fastlane/lib/fastlane/actions/upload_to_play_store_internal_app_sharing.rb +78 -0
- data/fastlane/lib/fastlane/actions/verify_build.rb +1 -1
- data/fastlane/lib/fastlane/actions/xcode_select.rb +6 -1
- data/fastlane/lib/fastlane/cli_tools_distributor.rb +2 -2
- data/fastlane/lib/fastlane/commands_generator.rb +1 -1
- data/fastlane/lib/fastlane/fast_file.rb +13 -3
- data/fastlane/lib/fastlane/helper/adb_helper.rb +13 -4
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +2 -0
- data/fastlane/lib/fastlane/runner.rb +23 -18
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +3 -3
- data/fastlane/swift/Fastlane.swift +342 -66
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +17 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +12 -4
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +17 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +1 -9
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +9 -1
- data/fastlane_core/lib/fastlane_core/build_watcher.rb +6 -2
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +28 -0
- data/fastlane_core/lib/fastlane_core/device_manager.rb +20 -0
- data/fastlane_core/lib/fastlane_core/helper.rb +7 -1
- data/fastlane_core/lib/fastlane_core/project.rb +23 -0
- data/frameit/lib/frameit/editor.rb +3 -0
- data/gym/lib/gym/code_signing_mapping.rb +32 -3
- data/gym/lib/gym/detect_values.rb +34 -2
- data/gym/lib/gym/generators/build_command_generator.rb +1 -0
- data/gym/lib/gym/generators/package_command_generator.rb +4 -0
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +47 -17
- data/gym/lib/gym/module.rb +8 -0
- data/gym/lib/gym/options.rb +25 -1
- data/gym/lib/gym/runner.rb +63 -23
- data/match/lib/match/encryption/openssl.rb +1 -1
- data/match/lib/match/generator.rb +17 -3
- data/match/lib/match/module.rb +4 -1
- data/match/lib/match/nuke.rb +54 -16
- data/match/lib/match/options.rb +28 -15
- data/match/lib/match/runner.rb +21 -8
- data/match/lib/match/spaceship_ensure.rb +19 -9
- data/match/lib/match/storage/git_storage.rb +11 -3
- data/pilot/lib/pilot/build_manager.rb +46 -12
- data/pilot/lib/pilot/options.rb +3 -1
- data/scan/lib/scan/detect_values.rb +6 -1
- data/scan/lib/scan/manager.rb +18 -1
- data/scan/lib/scan/options.rb +23 -1
- data/scan/lib/scan/runner.rb +6 -0
- data/scan/lib/scan/slack_poster.rb +1 -1
- data/scan/lib/scan/test_command_generator.rb +1 -1
- data/screengrab/lib/screengrab/options.rb +1 -10
- data/screengrab/lib/screengrab/runner.rb +16 -19
- data/snapshot/lib/snapshot/options.rb +12 -1
- data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +2 -0
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +11 -0
- data/spaceship/lib/spaceship/client.rb +9 -4
- data/spaceship/lib/spaceship/connect_api.rb +2 -0
- data/spaceship/lib/spaceship/connect_api/models/app.rb +11 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_feedback.rb +75 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_screenshot.rb +18 -0
- data/spaceship/lib/spaceship/connect_api/models/build.rb +5 -0
- data/spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb +5 -0
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +15 -0
- data/spaceship/lib/spaceship/portal/app.rb +11 -2
- data/spaceship/lib/spaceship/tunes/iap.rb +11 -11
- data/spaceship/lib/spaceship/tunes/iap_detail.rb +7 -3
- data/spaceship/lib/spaceship/tunes/iap_families.rb +12 -1
- data/spaceship/lib/spaceship/tunes/iap_family_details.rb +26 -17
- data/spaceship/lib/spaceship/tunes/iap_status.rb +5 -1
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +4 -7
- data/supply/lib/supply/client.rb +27 -0
- data/supply/lib/supply/options.rb +8 -2
- data/supply/lib/supply/uploader.rb +55 -26
- metadata +44 -25
- data/supply/lib/supply/.uploader.rb.swp +0 -0
@@ -39,7 +39,7 @@ module Fastlane
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def self.details
|
42
|
-
"This action allows you to modify any `plist` file."
|
42
|
+
"This action allows you to modify any value inside any `plist` file."
|
43
43
|
end
|
44
44
|
|
45
45
|
def self.available_options
|
@@ -57,11 +57,46 @@ module Fastlane
|
|
57
57
|
end
|
58
58
|
|
59
59
|
def self.author
|
60
|
-
|
60
|
+
["rishabhtayal", "matthiaszarzecki"]
|
61
61
|
end
|
62
62
|
|
63
63
|
def self.example_code
|
64
64
|
[
|
65
|
+
'update_plist( # Updates the CLIENT_ID and GOOGLE_APP_ID string entries in the plist-file
|
66
|
+
plist_path: "path/to/your_plist_file.plist",
|
67
|
+
block: proc do |plist|
|
68
|
+
plist[:CLIENT_ID] = "new_client_id"
|
69
|
+
plist[:GOOGLE_APP_ID] = "new_google_app_id"
|
70
|
+
end
|
71
|
+
)',
|
72
|
+
'update_plist( # Sets a boolean entry
|
73
|
+
plist_path: "path/to/your_plist_file.plist",
|
74
|
+
block: proc do |plist|
|
75
|
+
plist[:boolean_entry] = true
|
76
|
+
end
|
77
|
+
)',
|
78
|
+
'update_plist( # Sets a number entry
|
79
|
+
plist_path: "path/to/your_plist_file.plist",
|
80
|
+
block: proc do |plist|
|
81
|
+
plist[:number_entry] = 13
|
82
|
+
end
|
83
|
+
)',
|
84
|
+
'update_plist( # Sets an array-entry with multiple sub-types
|
85
|
+
plist_path: "path/to/your_plist_file.plist",
|
86
|
+
block: proc do |plist|
|
87
|
+
plist[:array_entry] = ["entry_01", true, 1243]
|
88
|
+
end
|
89
|
+
)',
|
90
|
+
'update_plist( # The block can contain logic too
|
91
|
+
plist_path: "path/to/your_plist_file.plist",
|
92
|
+
block: proc do |plist|
|
93
|
+
if options[:environment] == "production"
|
94
|
+
plist[:CLIENT_ID] = "new_client_id_production"
|
95
|
+
else
|
96
|
+
plist[:CLIENT_ID] = "new_client_id_development"
|
97
|
+
end
|
98
|
+
end
|
99
|
+
)',
|
65
100
|
'update_plist( # Advanced processing: find URL scheme for particular key and replace value
|
66
101
|
plist_path: "path/to/Info.plist",
|
67
102
|
block: proc do |plist|
|
@@ -11,6 +11,7 @@ module Fastlane
|
|
11
11
|
config.load_configuration_file("Deliverfile")
|
12
12
|
config[:screenshots_path] = Actions.lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH] if Actions.lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH]
|
13
13
|
config[:ipa] = Actions.lane_context[SharedValues::IPA_OUTPUT_PATH] if Actions.lane_context[SharedValues::IPA_OUTPUT_PATH]
|
14
|
+
config[:pkg] = Actions.lane_context[SharedValues::PKG_OUTPUT_PATH] if Actions.lane_context[SharedValues::PKG_OUTPUT_PATH]
|
14
15
|
|
15
16
|
return config if Helper.test?
|
16
17
|
Deliver::Runner.new(config).run
|
@@ -0,0 +1,78 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
class UploadToPlayStoreInternalAppSharingAction < Action
|
4
|
+
def self.run(params)
|
5
|
+
require 'supply'
|
6
|
+
|
7
|
+
# If no APK params were provided, try to fill in the values from lane context, preferring
|
8
|
+
# the multiple APKs over the single APK if set.
|
9
|
+
if params[:apk_paths].nil? && params[:apk].nil?
|
10
|
+
all_apk_paths = Actions.lane_context[SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS] || []
|
11
|
+
if all_apk_paths.size > 1
|
12
|
+
params[:apk_paths] = all_apk_paths
|
13
|
+
else
|
14
|
+
params[:apk] = Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# If no AAB param was provided, try to fill in the value from lane context.
|
19
|
+
# First GRADLE_ALL_AAB_OUTPUT_PATHS if only one
|
20
|
+
# Else from GRADLE_AAB_OUTPUT_PATH
|
21
|
+
if params[:aab].nil?
|
22
|
+
all_aab_paths = Actions.lane_context[SharedValues::GRADLE_ALL_AAB_OUTPUT_PATHS] || []
|
23
|
+
if all_aab_paths.count == 1
|
24
|
+
params[:aab] = all_aab_paths.first
|
25
|
+
else
|
26
|
+
params[:aab] = Actions.lane_context[SharedValues::GRADLE_AAB_OUTPUT_PATH]
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
Supply.config = params # we already have the finished config
|
31
|
+
|
32
|
+
Supply::Uploader.new.perform_upload_to_internal_app_sharing
|
33
|
+
end
|
34
|
+
|
35
|
+
#####################################################
|
36
|
+
# @!group Documentation
|
37
|
+
#####################################################
|
38
|
+
|
39
|
+
def self.description
|
40
|
+
"Upload binaries to Google Play Internal App Sharing (via _supply_)"
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.details
|
44
|
+
"More information: https://docs.fastlane.tools/actions/upload_to_play_store_internal_app_sharing/"
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.available_options
|
48
|
+
require 'supply'
|
49
|
+
require 'supply/options'
|
50
|
+
options = Supply::Options.available_options.clone
|
51
|
+
|
52
|
+
# remove all the unnecessary (for this action) options
|
53
|
+
options_to_keep = [:package_name, :apk, :apk_paths, :aab, :aab_paths, :json_key, :json_key_data, :root_url, :timeout]
|
54
|
+
options.delete_if { |option| options_to_keep.include?(option.key) == false }
|
55
|
+
end
|
56
|
+
|
57
|
+
def self.return_value
|
58
|
+
"Returns a string containing the download URL for the uploaded APK/AAB (or array of strings if multiple were uploaded)."
|
59
|
+
end
|
60
|
+
|
61
|
+
def self.authors
|
62
|
+
["andrewhavens"]
|
63
|
+
end
|
64
|
+
|
65
|
+
def self.is_supported?(platform)
|
66
|
+
platform == :android
|
67
|
+
end
|
68
|
+
|
69
|
+
def self.example_code
|
70
|
+
["upload_to_play_store_internal_app_sharing"]
|
71
|
+
end
|
72
|
+
|
73
|
+
def self.category
|
74
|
+
:production
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -92,7 +92,7 @@ module Fastlane
|
|
92
92
|
|
93
93
|
def self.evaulate(params, values)
|
94
94
|
if params[:provisioning_type]
|
95
|
-
UI.user_error!("Mismatched provisioning_type. Required: '#{params[:provisioning_type]}'
|
95
|
+
UI.user_error!("Mismatched provisioning_type. Required: '#{params[:provisioning_type]}'; Found: '#{values['provisioning_type']}'") unless params[:provisioning_type] == values['provisioning_type']
|
96
96
|
end
|
97
97
|
if params[:provisioning_uuid]
|
98
98
|
UI.user_error!("Mismatched provisioning_uuid. Required: '#{params[:provisioning_uuid]}'; Found: '#{values['provisioning_uuid']}'") unless params[:provisioning_uuid] == values['provisioning_uuid']
|
@@ -38,7 +38,12 @@ module Fastlane
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def self.details
|
41
|
-
|
41
|
+
[
|
42
|
+
"Select and build with the Xcode installed at the provided path.",
|
43
|
+
"Use the `xcversion` action if you want to select an Xcode:",
|
44
|
+
"- Based on a version specifier or",
|
45
|
+
"- You don't have known, stable paths, as may happen in a CI environment."
|
46
|
+
].join("\n")
|
42
47
|
end
|
43
48
|
|
44
49
|
def self.author
|
@@ -142,8 +142,8 @@ module Fastlane
|
|
142
142
|
# Let's tell the user how to use `bundle exec`
|
143
143
|
# We show this warning no matter if the command is slow or not
|
144
144
|
UI.important("fastlane detected a Gemfile in the current directory")
|
145
|
-
UI.important("
|
146
|
-
UI.important("
|
145
|
+
UI.important("However, it seems like you didn't use `bundle exec`")
|
146
|
+
UI.important("To launch fastlane faster, please use")
|
147
147
|
UI.message("")
|
148
148
|
UI.command "bundle exec fastlane #{ARGV.join(' ')}"
|
149
149
|
UI.message("")
|
@@ -17,7 +17,7 @@ module Fastlane
|
|
17
17
|
end
|
18
18
|
FastlaneCore::Swag.show_loader
|
19
19
|
|
20
|
-
# has to be checked here - in case we
|
20
|
+
# has to be checked here - in case we want to troubleshoot plugin related issues
|
21
21
|
if ARGV.include?("--troubleshoot")
|
22
22
|
self.confirm_troubleshoot
|
23
23
|
end
|
@@ -263,7 +263,7 @@ module Fastlane
|
|
263
263
|
# @param branch [String] The branch to checkout in the repository
|
264
264
|
# @param path [String] The path to the Fastfile
|
265
265
|
# @param version [String, Array] Version requirement for repo tags
|
266
|
-
def import_from_git(url: nil, branch: 'HEAD', path: 'fastlane/Fastfile', version: nil)
|
266
|
+
def import_from_git(url: nil, branch: 'HEAD', path: 'fastlane/Fastfile', version: nil, dependencies: [])
|
267
267
|
UI.user_error!("Please pass a path to the `import_from_git` action") if url.to_s.length == 0
|
268
268
|
|
269
269
|
Actions.execute_action('import_from_git') do
|
@@ -280,6 +280,10 @@ module Fastlane
|
|
280
280
|
|
281
281
|
branch_option = "--branch #{branch}" if branch != 'HEAD'
|
282
282
|
|
283
|
+
checkout_dependencies = dependencies.map(&:shellescape).join(" ")
|
284
|
+
|
285
|
+
checkout_path = "#{path.shellescape} #{checkout_dependencies}"
|
286
|
+
|
283
287
|
UI.message("Cloning remote git repo...")
|
284
288
|
Helper.with_env_values('GIT_TERMINAL_PROMPT' => '0') do
|
285
289
|
Actions.sh("git clone #{url.shellescape} #{clone_folder.shellescape} --depth 1 -n #{branch_option}")
|
@@ -292,7 +296,7 @@ module Fastlane
|
|
292
296
|
UI.user_error!("No tag found matching #{version.inspect}") if checkout_param.nil?
|
293
297
|
end
|
294
298
|
|
295
|
-
Actions.sh("cd #{clone_folder.shellescape} && git checkout #{checkout_param.shellescape} #{
|
299
|
+
Actions.sh("cd #{clone_folder.shellescape} && git checkout #{checkout_param.shellescape} #{checkout_path}")
|
296
300
|
|
297
301
|
# We also want to check out all the local actions of this fastlane setup
|
298
302
|
containing = path.split(File::SEPARATOR)[0..-2]
|
@@ -304,7 +308,13 @@ module Fastlane
|
|
304
308
|
# We don't care about a failure here, as local actions are optional
|
305
309
|
end
|
306
310
|
|
307
|
-
return_value =
|
311
|
+
return_value = nil
|
312
|
+
if dependencies.any?
|
313
|
+
return_value = [import(File.join(clone_folder, path))]
|
314
|
+
return_value += dependencies.map { |file_path| import(File.join(clone_folder, file_path)) }
|
315
|
+
else
|
316
|
+
return_value = import(File.join(clone_folder, path))
|
317
|
+
end
|
308
318
|
|
309
319
|
action_completed('import_from_git', status: FastlaneCore::ActionCompletionStatus::SUCCESS)
|
310
320
|
|
@@ -12,21 +12,30 @@ module Fastlane
|
|
12
12
|
# Path to the adb binary
|
13
13
|
attr_accessor :adb_path
|
14
14
|
|
15
|
+
# Path to the adb binary
|
16
|
+
attr_accessor :adb_host
|
17
|
+
|
15
18
|
# All available devices
|
16
19
|
attr_accessor :devices
|
17
20
|
|
18
|
-
def initialize(adb_path: nil)
|
21
|
+
def initialize(adb_path: nil, adb_host: nil)
|
19
22
|
android_home = ENV['ANDROID_HOME'] || ENV['ANDROID_SDK_ROOT'] || ENV['ANDROID_SDK']
|
20
23
|
if (adb_path.nil? || adb_path == "adb") && android_home
|
21
24
|
adb_path = File.join(android_home, "platform-tools", "adb")
|
22
25
|
end
|
26
|
+
|
23
27
|
self.adb_path = adb_path
|
28
|
+
self.adb_host = adb_host
|
29
|
+
end
|
30
|
+
|
31
|
+
def host_option
|
32
|
+
return self.adb_host ? "-H #{adb_host}" : nil
|
24
33
|
end
|
25
34
|
|
26
35
|
# Run a certain action
|
27
36
|
def trigger(command: nil, serial: nil)
|
28
37
|
android_serial = serial != "" ? "ANDROID_SERIAL=#{serial}" : nil
|
29
|
-
command = [android_serial, adb_path.shellescape, command].join(" ").strip
|
38
|
+
command = [android_serial, adb_path.shellescape, host_option, command].compact.join(" ").strip
|
30
39
|
Action.sh(command)
|
31
40
|
end
|
32
41
|
|
@@ -43,10 +52,10 @@ module Fastlane
|
|
43
52
|
def load_all_devices
|
44
53
|
self.devices = []
|
45
54
|
|
46
|
-
command = [adb_path.shellescape, "devices"].join(" ")
|
55
|
+
command = [adb_path.shellescape, host_option, "devices -l"].compact.join(" ")
|
47
56
|
output = Actions.sh(command, log: false)
|
48
57
|
output.split("\n").each do |line|
|
49
|
-
if (result = line.match(
|
58
|
+
if (result = line.match(/^(\S+)(\s+)(device )/))
|
50
59
|
self.devices << AdbDevice.new(serial: result[1])
|
51
60
|
end
|
52
61
|
end
|
@@ -225,27 +225,32 @@ module Fastlane
|
|
225
225
|
|
226
226
|
begin
|
227
227
|
Dir.chdir(custom_dir) do # go up from the fastlane folder, to the project folder
|
228
|
-
#
|
228
|
+
# Removing step_name before its parsed into configurations
|
229
|
+
args = arguments.kind_of?(Array) && arguments.first.kind_of?(Hash) ? arguments.first : {}
|
230
|
+
step_name = args.delete(:step_name)
|
231
|
+
|
232
|
+
# arguments is an array by default, containing an hash with the actual parameters
|
233
|
+
# Since we usually just need the passed hash, we'll just use the first object if there is only one
|
234
|
+
if arguments.count == 0
|
235
|
+
configurations = ConfigurationHelper.parse(class_ref, {}) # no parameters => empty hash
|
236
|
+
elsif arguments.count == 1 && arguments.first.kind_of?(Hash)
|
237
|
+
configurations = ConfigurationHelper.parse(class_ref, arguments.first) # Correct configuration passed
|
238
|
+
elsif !class_ref.available_options
|
239
|
+
# This action does not use the new action format
|
240
|
+
# Just passing the arguments to this method
|
241
|
+
configurations = arguments
|
242
|
+
else
|
243
|
+
UI.user_error!("You have to call the integration like `#{method_sym}(key: \"value\")`. Run `fastlane action #{method_sym}` for all available keys. Please check out the current documentation on GitHub.")
|
244
|
+
end
|
229
245
|
|
246
|
+
# If another action is calling this action, we shouldn't show it in the summary
|
247
|
+
# A nil value for action_name will hide it from the summary
|
230
248
|
unless from_action
|
231
|
-
|
232
|
-
action_name
|
233
|
-
args.delete(:step_name)
|
249
|
+
action_name = step_name
|
250
|
+
action_name ||= class_ref.method(:step_text).arity == 1 ? class_ref.step_text(configurations) : class_ref.step_text
|
234
251
|
end
|
235
|
-
Actions.execute_action(action_name) do
|
236
|
-
# arguments is an array by default, containing an hash with the actual parameters
|
237
|
-
# Since we usually just need the passed hash, we'll just use the first object if there is only one
|
238
|
-
if arguments.count == 0
|
239
|
-
arguments = ConfigurationHelper.parse(class_ref, {}) # no parameters => empty hash
|
240
|
-
elsif arguments.count == 1 && arguments.first.kind_of?(Hash)
|
241
|
-
arguments = ConfigurationHelper.parse(class_ref, arguments.first) # Correct configuration passed
|
242
|
-
elsif !class_ref.available_options
|
243
|
-
# This action does not use the new action format
|
244
|
-
# Just passing the arguments to this method
|
245
|
-
else
|
246
|
-
UI.user_error!("You have to call the integration like `#{method_sym}(key: \"value\")`. Run `fastlane action #{method_sym}` for all available keys. Please check out the current documentation on GitHub.")
|
247
|
-
end
|
248
252
|
|
253
|
+
Actions.execute_action(action_name) do
|
249
254
|
if Fastlane::Actions.is_deprecated?(class_ref)
|
250
255
|
puts("==========================================".deprecated)
|
251
256
|
puts("This action (#{method_sym}) is deprecated".deprecated)
|
@@ -253,7 +258,7 @@ module Fastlane
|
|
253
258
|
puts("==========================================\n".deprecated)
|
254
259
|
end
|
255
260
|
class_ref.runner = self # needed to call another action from an action
|
256
|
-
return class_ref.run(
|
261
|
+
return class_ref.run(configurations)
|
257
262
|
end
|
258
263
|
end
|
259
264
|
rescue Interrupt => e
|
@@ -57,10 +57,10 @@ protocol DeliverfileProtocol: class {
|
|
57
57
|
/// Rejects the previously submitted build if it's in a state where it's possible
|
58
58
|
var rejectIfPossible: Bool { get }
|
59
59
|
|
60
|
-
/// Should the app be automatically released once it's approved?
|
60
|
+
/// Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
|
61
61
|
var automaticRelease: Bool { get }
|
62
62
|
|
63
|
-
/// Date in milliseconds for automatically releasing on pending approval
|
63
|
+
/// Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)
|
64
64
|
var autoReleaseDate: String? { get }
|
65
65
|
|
66
66
|
/// Enable the phased release feature of iTC
|
@@ -246,4 +246,4 @@ extension DeliverfileProtocol {
|
|
246
246
|
|
247
247
|
// Please don't remove the lines below
|
248
248
|
// They are used to detect outdated files
|
249
|
-
// FastlaneRunnerAPIVersion [0.9.
|
249
|
+
// FastlaneRunnerAPIVersion [0.9.19]
|
@@ -441,8 +441,8 @@ func appledoc(input: Any,
|
|
441
441
|
- overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
|
442
442
|
- submitForReview: Submit the new version for Review after uploading everything
|
443
443
|
- rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
|
444
|
-
- automaticRelease: Should the app be automatically released once it's approved?
|
445
|
-
- autoReleaseDate: Date in milliseconds for automatically releasing on pending approval
|
444
|
+
- automaticRelease: Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
|
445
|
+
- autoReleaseDate: Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)
|
446
446
|
- phasedRelease: Enable the phased release feature of iTC
|
447
447
|
- resetRatings: Reset the summary rating when you release a new version of the application
|
448
448
|
- priceTier: The price tier of this application
|
@@ -829,6 +829,7 @@ func buildAndUploadToAppetize(xcodebuild: [String : Any] = [:],
|
|
829
829
|
- task: The gradle task you want to execute, e.g. `assemble`, `bundle` or `test`. For tasks such as `assembleMyFlavorRelease` you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release')
|
830
830
|
- flavor: The flavor that you want the task for, e.g. `MyFlavor`. If you are running the `assemble` task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined
|
831
831
|
- buildType: The build type that you want the task for, e.g. `Release`. Useful for some tasks such as `assemble`
|
832
|
+
- tasks: The multiple gradle tasks that you want to execute, e.g. `[assembleDebug, bundleDebug]`
|
832
833
|
- flags: All parameter flags you want to pass to the gradle command, e.g. `--exitcode --xml file.xml`
|
833
834
|
- projectDir: The root directory of the gradle project
|
834
835
|
- gradlePath: The path to your `gradlew`. If you specify a relative path, it is assumed to be relative to the `project_dir`
|
@@ -842,9 +843,10 @@ func buildAndUploadToAppetize(xcodebuild: [String : Any] = [:],
|
|
842
843
|
|
843
844
|
Run `./gradlew tasks` to get a list of all available gradle tasks for your project
|
844
845
|
*/
|
845
|
-
func buildAndroidApp(task: String,
|
846
|
+
func buildAndroidApp(task: String? = nil,
|
846
847
|
flavor: String? = nil,
|
847
848
|
buildType: String? = nil,
|
849
|
+
tasks: [String]? = nil,
|
848
850
|
flags: String? = nil,
|
849
851
|
projectDir: String = ".",
|
850
852
|
gradlePath: String? = nil,
|
@@ -856,6 +858,7 @@ func buildAndroidApp(task: String,
|
|
856
858
|
let command = RubyCommand(commandID: "", methodName: "build_android_app", className: nil, args: [RubyCommand.Argument(name: "task", value: task),
|
857
859
|
RubyCommand.Argument(name: "flavor", value: flavor),
|
858
860
|
RubyCommand.Argument(name: "build_type", value: buildType),
|
861
|
+
RubyCommand.Argument(name: "tasks", value: tasks),
|
859
862
|
RubyCommand.Argument(name: "flags", value: flags),
|
860
863
|
RubyCommand.Argument(name: "project_dir", value: projectDir),
|
861
864
|
RubyCommand.Argument(name: "gradle_path", value: gradlePath),
|
@@ -868,7 +871,7 @@ func buildAndroidApp(task: String,
|
|
868
871
|
}
|
869
872
|
|
870
873
|
/**
|
871
|
-
|
874
|
+
Easily build and sign your app (via _gym_)
|
872
875
|
|
873
876
|
- parameters:
|
874
877
|
- workspace: Path to the workspace file
|
@@ -881,6 +884,7 @@ func buildAndroidApp(task: String,
|
|
881
884
|
- silent: Hide all information that's not necessary while building
|
882
885
|
- codesigningIdentity: The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH'
|
883
886
|
- skipPackageIpa: Should we skip packaging the ipa?
|
887
|
+
- skipPackagePkg: Should we skip packaging the pkg?
|
884
888
|
- includeSymbols: Should the ipa file include symbols?
|
885
889
|
- includeBitcode: Should the ipa file include bitcode?
|
886
890
|
- exportMethod: Method used to export the archive. Valid values are: app-store, ad-hoc, package, enterprise, development, developer-id
|
@@ -889,6 +893,8 @@ func buildAndroidApp(task: String,
|
|
889
893
|
- skipBuildArchive: Export ipa from previously built xcarchive. Uses archive_path as source
|
890
894
|
- skipArchive: After building, don't archive, effectively not including -archivePath param
|
891
895
|
- skipCodesigning: Build without codesigning
|
896
|
+
- catalystPlatform: Platform to build when using a Catalyst enabled app. Valid values are: ios, macos
|
897
|
+
- installerCertName: Full name of 3rd Party Mac Developer Installer or Deveoper ID Installer certificate. Example: `3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ)`
|
892
898
|
- buildPath: The directory in which the archive should be stored in
|
893
899
|
- archivePath: The path to the created archive
|
894
900
|
- derivedDataPath: The directory where built products and other derived data will go
|
@@ -911,6 +917,7 @@ func buildAndroidApp(task: String,
|
|
911
917
|
- analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
|
912
918
|
- xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
|
913
919
|
- skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
|
920
|
+
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
914
921
|
|
915
922
|
- returns: The absolute path to the generated ipa file
|
916
923
|
|
@@ -926,6 +933,7 @@ func buildApp(workspace: String? = nil,
|
|
926
933
|
silent: Bool = false,
|
927
934
|
codesigningIdentity: String? = nil,
|
928
935
|
skipPackageIpa: Bool = false,
|
936
|
+
skipPackagePkg: Bool = false,
|
929
937
|
includeSymbols: Bool? = nil,
|
930
938
|
includeBitcode: Bool? = nil,
|
931
939
|
exportMethod: String? = nil,
|
@@ -934,6 +942,8 @@ func buildApp(workspace: String? = nil,
|
|
934
942
|
skipBuildArchive: Bool? = nil,
|
935
943
|
skipArchive: Bool? = nil,
|
936
944
|
skipCodesigning: Bool? = nil,
|
945
|
+
catalystPlatform: String? = nil,
|
946
|
+
installerCertName: String? = nil,
|
937
947
|
buildPath: String? = nil,
|
938
948
|
archivePath: String? = nil,
|
939
949
|
derivedDataPath: String? = nil,
|
@@ -955,7 +965,8 @@ func buildApp(workspace: String? = nil,
|
|
955
965
|
xcprettyReportJson: String? = nil,
|
956
966
|
analyzeBuildTime: Bool? = nil,
|
957
967
|
xcprettyUtf: Bool? = nil,
|
958
|
-
skipProfileDetection: Bool = false
|
968
|
+
skipProfileDetection: Bool = false,
|
969
|
+
clonedSourcePackagesPath: String? = nil) {
|
959
970
|
let command = RubyCommand(commandID: "", methodName: "build_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
960
971
|
RubyCommand.Argument(name: "project", value: project),
|
961
972
|
RubyCommand.Argument(name: "scheme", value: scheme),
|
@@ -966,6 +977,7 @@ func buildApp(workspace: String? = nil,
|
|
966
977
|
RubyCommand.Argument(name: "silent", value: silent),
|
967
978
|
RubyCommand.Argument(name: "codesigning_identity", value: codesigningIdentity),
|
968
979
|
RubyCommand.Argument(name: "skip_package_ipa", value: skipPackageIpa),
|
980
|
+
RubyCommand.Argument(name: "skip_package_pkg", value: skipPackagePkg),
|
969
981
|
RubyCommand.Argument(name: "include_symbols", value: includeSymbols),
|
970
982
|
RubyCommand.Argument(name: "include_bitcode", value: includeBitcode),
|
971
983
|
RubyCommand.Argument(name: "export_method", value: exportMethod),
|
@@ -974,6 +986,8 @@ func buildApp(workspace: String? = nil,
|
|
974
986
|
RubyCommand.Argument(name: "skip_build_archive", value: skipBuildArchive),
|
975
987
|
RubyCommand.Argument(name: "skip_archive", value: skipArchive),
|
976
988
|
RubyCommand.Argument(name: "skip_codesigning", value: skipCodesigning),
|
989
|
+
RubyCommand.Argument(name: "catalyst_platform", value: catalystPlatform),
|
990
|
+
RubyCommand.Argument(name: "installer_cert_name", value: installerCertName),
|
977
991
|
RubyCommand.Argument(name: "build_path", value: buildPath),
|
978
992
|
RubyCommand.Argument(name: "archive_path", value: archivePath),
|
979
993
|
RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
|
@@ -995,12 +1009,13 @@ func buildApp(workspace: String? = nil,
|
|
995
1009
|
RubyCommand.Argument(name: "xcpretty_report_json", value: xcprettyReportJson),
|
996
1010
|
RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
|
997
1011
|
RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
|
998
|
-
RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection)
|
1012
|
+
RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
|
1013
|
+
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
|
999
1014
|
_ = runner.executeCommand(command)
|
1000
1015
|
}
|
1001
1016
|
|
1002
1017
|
/**
|
1003
|
-
|
1018
|
+
Alias for the `build_app` action but only for iOS
|
1004
1019
|
|
1005
1020
|
- parameters:
|
1006
1021
|
- workspace: Path to the workspace file
|
@@ -1043,6 +1058,7 @@ func buildApp(workspace: String? = nil,
|
|
1043
1058
|
- analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
|
1044
1059
|
- xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
|
1045
1060
|
- skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
|
1061
|
+
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
1046
1062
|
|
1047
1063
|
- returns: The absolute path to the generated ipa file
|
1048
1064
|
|
@@ -1087,7 +1103,8 @@ func buildIosApp(workspace: String? = nil,
|
|
1087
1103
|
xcprettyReportJson: String? = nil,
|
1088
1104
|
analyzeBuildTime: Bool? = nil,
|
1089
1105
|
xcprettyUtf: Bool? = nil,
|
1090
|
-
skipProfileDetection: Bool = false
|
1106
|
+
skipProfileDetection: Bool = false,
|
1107
|
+
clonedSourcePackagesPath: String? = nil) {
|
1091
1108
|
let command = RubyCommand(commandID: "", methodName: "build_ios_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
1092
1109
|
RubyCommand.Argument(name: "project", value: project),
|
1093
1110
|
RubyCommand.Argument(name: "scheme", value: scheme),
|
@@ -1127,7 +1144,146 @@ func buildIosApp(workspace: String? = nil,
|
|
1127
1144
|
RubyCommand.Argument(name: "xcpretty_report_json", value: xcprettyReportJson),
|
1128
1145
|
RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
|
1129
1146
|
RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
|
1130
|
-
RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection)
|
1147
|
+
RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
|
1148
|
+
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
|
1149
|
+
_ = runner.executeCommand(command)
|
1150
|
+
}
|
1151
|
+
|
1152
|
+
/**
|
1153
|
+
Alias for the `build_app` action but only for macOS
|
1154
|
+
|
1155
|
+
- parameters:
|
1156
|
+
- workspace: Path to the workspace file
|
1157
|
+
- project: Path to the project file
|
1158
|
+
- scheme: The project's scheme. Make sure it's marked as `Shared`
|
1159
|
+
- clean: Should the project be cleaned before building it?
|
1160
|
+
- outputDirectory: The directory in which the ipa file should be stored in
|
1161
|
+
- outputName: The name of the resulting ipa file
|
1162
|
+
- configuration: The configuration to use when building the app. Defaults to 'Release'
|
1163
|
+
- silent: Hide all information that's not necessary while building
|
1164
|
+
- codesigningIdentity: The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH'
|
1165
|
+
- skipPackagePkg: Should we skip packaging the pkg?
|
1166
|
+
- includeSymbols: Should the ipa file include symbols?
|
1167
|
+
- includeBitcode: Should the ipa file include bitcode?
|
1168
|
+
- exportMethod: Method used to export the archive. Valid values are: app-store, ad-hoc, package, enterprise, development, developer-id
|
1169
|
+
- exportOptions: Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options
|
1170
|
+
- exportXcargs: Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
|
1171
|
+
- skipBuildArchive: Export ipa from previously built xcarchive. Uses archive_path as source
|
1172
|
+
- skipArchive: After building, don't archive, effectively not including -archivePath param
|
1173
|
+
- skipCodesigning: Build without codesigning
|
1174
|
+
- installerCertName: Full name of 3rd Party Mac Developer Installer or Deveoper ID Installer certificate. Example: `3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ)`
|
1175
|
+
- buildPath: The directory in which the archive should be stored in
|
1176
|
+
- archivePath: The path to the created archive
|
1177
|
+
- derivedDataPath: The directory where built products and other derived data will go
|
1178
|
+
- resultBundle: Should an Xcode result bundle be generated in the output directory
|
1179
|
+
- resultBundlePath: Path to the result bundle directory to create. Ignored if `result_bundle` if false
|
1180
|
+
- buildlogPath: The directory where to store the build log
|
1181
|
+
- sdk: The SDK that should be used for building the application
|
1182
|
+
- toolchain: The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a)
|
1183
|
+
- destination: Use a custom destination for building the app
|
1184
|
+
- exportTeamId: Optional: Sometimes you need to specify a team id when exporting the ipa file
|
1185
|
+
- xcargs: Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
|
1186
|
+
- xcconfig: Use an extra XCCONFIG file to build your app
|
1187
|
+
- suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
|
1188
|
+
- disableXcpretty: Disable xcpretty formatting of build output
|
1189
|
+
- xcprettyTestFormat: Use the test (RSpec style) format for build output
|
1190
|
+
- xcprettyFormatter: A custom xcpretty formatter to use
|
1191
|
+
- xcprettyReportJunit: Have xcpretty create a JUnit-style XML report at the provided path
|
1192
|
+
- xcprettyReportHtml: Have xcpretty create a simple HTML report at the provided path
|
1193
|
+
- xcprettyReportJson: Have xcpretty create a JSON compilation database at the provided path
|
1194
|
+
- analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
|
1195
|
+
- xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
|
1196
|
+
- skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
|
1197
|
+
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
1198
|
+
|
1199
|
+
- returns: The absolute path to the generated ipa file
|
1200
|
+
|
1201
|
+
More information: https://fastlane.tools/gym
|
1202
|
+
*/
|
1203
|
+
func buildMacApp(workspace: String? = nil,
|
1204
|
+
project: String? = nil,
|
1205
|
+
scheme: String? = nil,
|
1206
|
+
clean: Bool = false,
|
1207
|
+
outputDirectory: String = ".",
|
1208
|
+
outputName: String? = nil,
|
1209
|
+
configuration: String? = nil,
|
1210
|
+
silent: Bool = false,
|
1211
|
+
codesigningIdentity: String? = nil,
|
1212
|
+
skipPackagePkg: Bool = false,
|
1213
|
+
includeSymbols: Bool? = nil,
|
1214
|
+
includeBitcode: Bool? = nil,
|
1215
|
+
exportMethod: String? = nil,
|
1216
|
+
exportOptions: [String : Any]? = nil,
|
1217
|
+
exportXcargs: String? = nil,
|
1218
|
+
skipBuildArchive: Bool? = nil,
|
1219
|
+
skipArchive: Bool? = nil,
|
1220
|
+
skipCodesigning: Bool? = nil,
|
1221
|
+
installerCertName: String? = nil,
|
1222
|
+
buildPath: String? = nil,
|
1223
|
+
archivePath: String? = nil,
|
1224
|
+
derivedDataPath: String? = nil,
|
1225
|
+
resultBundle: Bool = false,
|
1226
|
+
resultBundlePath: String? = nil,
|
1227
|
+
buildlogPath: String = "~/Library/Logs/gym",
|
1228
|
+
sdk: String? = nil,
|
1229
|
+
toolchain: String? = nil,
|
1230
|
+
destination: String? = nil,
|
1231
|
+
exportTeamId: String? = nil,
|
1232
|
+
xcargs: String? = nil,
|
1233
|
+
xcconfig: String? = nil,
|
1234
|
+
suppressXcodeOutput: Bool? = nil,
|
1235
|
+
disableXcpretty: Bool? = nil,
|
1236
|
+
xcprettyTestFormat: Bool? = nil,
|
1237
|
+
xcprettyFormatter: String? = nil,
|
1238
|
+
xcprettyReportJunit: String? = nil,
|
1239
|
+
xcprettyReportHtml: String? = nil,
|
1240
|
+
xcprettyReportJson: String? = nil,
|
1241
|
+
analyzeBuildTime: Bool? = nil,
|
1242
|
+
xcprettyUtf: Bool? = nil,
|
1243
|
+
skipProfileDetection: Bool = false,
|
1244
|
+
clonedSourcePackagesPath: String? = nil) {
|
1245
|
+
let command = RubyCommand(commandID: "", methodName: "build_mac_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
1246
|
+
RubyCommand.Argument(name: "project", value: project),
|
1247
|
+
RubyCommand.Argument(name: "scheme", value: scheme),
|
1248
|
+
RubyCommand.Argument(name: "clean", value: clean),
|
1249
|
+
RubyCommand.Argument(name: "output_directory", value: outputDirectory),
|
1250
|
+
RubyCommand.Argument(name: "output_name", value: outputName),
|
1251
|
+
RubyCommand.Argument(name: "configuration", value: configuration),
|
1252
|
+
RubyCommand.Argument(name: "silent", value: silent),
|
1253
|
+
RubyCommand.Argument(name: "codesigning_identity", value: codesigningIdentity),
|
1254
|
+
RubyCommand.Argument(name: "skip_package_pkg", value: skipPackagePkg),
|
1255
|
+
RubyCommand.Argument(name: "include_symbols", value: includeSymbols),
|
1256
|
+
RubyCommand.Argument(name: "include_bitcode", value: includeBitcode),
|
1257
|
+
RubyCommand.Argument(name: "export_method", value: exportMethod),
|
1258
|
+
RubyCommand.Argument(name: "export_options", value: exportOptions),
|
1259
|
+
RubyCommand.Argument(name: "export_xcargs", value: exportXcargs),
|
1260
|
+
RubyCommand.Argument(name: "skip_build_archive", value: skipBuildArchive),
|
1261
|
+
RubyCommand.Argument(name: "skip_archive", value: skipArchive),
|
1262
|
+
RubyCommand.Argument(name: "skip_codesigning", value: skipCodesigning),
|
1263
|
+
RubyCommand.Argument(name: "installer_cert_name", value: installerCertName),
|
1264
|
+
RubyCommand.Argument(name: "build_path", value: buildPath),
|
1265
|
+
RubyCommand.Argument(name: "archive_path", value: archivePath),
|
1266
|
+
RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
|
1267
|
+
RubyCommand.Argument(name: "result_bundle", value: resultBundle),
|
1268
|
+
RubyCommand.Argument(name: "result_bundle_path", value: resultBundlePath),
|
1269
|
+
RubyCommand.Argument(name: "buildlog_path", value: buildlogPath),
|
1270
|
+
RubyCommand.Argument(name: "sdk", value: sdk),
|
1271
|
+
RubyCommand.Argument(name: "toolchain", value: toolchain),
|
1272
|
+
RubyCommand.Argument(name: "destination", value: destination),
|
1273
|
+
RubyCommand.Argument(name: "export_team_id", value: exportTeamId),
|
1274
|
+
RubyCommand.Argument(name: "xcargs", value: xcargs),
|
1275
|
+
RubyCommand.Argument(name: "xcconfig", value: xcconfig),
|
1276
|
+
RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput),
|
1277
|
+
RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty),
|
1278
|
+
RubyCommand.Argument(name: "xcpretty_test_format", value: xcprettyTestFormat),
|
1279
|
+
RubyCommand.Argument(name: "xcpretty_formatter", value: xcprettyFormatter),
|
1280
|
+
RubyCommand.Argument(name: "xcpretty_report_junit", value: xcprettyReportJunit),
|
1281
|
+
RubyCommand.Argument(name: "xcpretty_report_html", value: xcprettyReportHtml),
|
1282
|
+
RubyCommand.Argument(name: "xcpretty_report_json", value: xcprettyReportJson),
|
1283
|
+
RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
|
1284
|
+
RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
|
1285
|
+
RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
|
1286
|
+
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
|
1131
1287
|
_ = runner.executeCommand(command)
|
1132
1288
|
}
|
1133
1289
|
|
@@ -1219,8 +1375,6 @@ func bundleInstall(binstubs: String? = nil,
|
|
1219
1375
|
- reinstallApp: Enabling this option will automatically uninstall the application before running it
|
1220
1376
|
- useTimestampSuffix: Add timestamp suffix to screenshot filename
|
1221
1377
|
- adbHost: Configure the host used by adb to connect, allows running on remote devices farm
|
1222
|
-
- cleanStatusBar: Enabling this option will clean the status bar
|
1223
|
-
- cleanStatusBarConfig: Specifies the configuration for the clean status bar
|
1224
1378
|
*/
|
1225
1379
|
func captureAndroidScreenshots(androidHome: String? = nil,
|
1226
1380
|
buildToolsVersion: String? = nil,
|
@@ -1243,9 +1397,7 @@ func captureAndroidScreenshots(androidHome: String? = nil,
|
|
1243
1397
|
exitOnTestFailure: Bool = true,
|
1244
1398
|
reinstallApp: Bool = false,
|
1245
1399
|
useTimestampSuffix: Bool = true,
|
1246
|
-
adbHost: String? = nil
|
1247
|
-
cleanStatusBar: Bool = false,
|
1248
|
-
cleanStatusBarConfig: [String : Any] = [:]) {
|
1400
|
+
adbHost: String? = nil) {
|
1249
1401
|
let command = RubyCommand(commandID: "", methodName: "capture_android_screenshots", className: nil, args: [RubyCommand.Argument(name: "android_home", value: androidHome),
|
1250
1402
|
RubyCommand.Argument(name: "build_tools_version", value: buildToolsVersion),
|
1251
1403
|
RubyCommand.Argument(name: "locales", value: locales),
|
@@ -1267,9 +1419,7 @@ func captureAndroidScreenshots(androidHome: String? = nil,
|
|
1267
1419
|
RubyCommand.Argument(name: "exit_on_test_failure", value: exitOnTestFailure),
|
1268
1420
|
RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
|
1269
1421
|
RubyCommand.Argument(name: "use_timestamp_suffix", value: useTimestampSuffix),
|
1270
|
-
RubyCommand.Argument(name: "adb_host", value: adbHost)
|
1271
|
-
RubyCommand.Argument(name: "clean_status_bar", value: cleanStatusBar),
|
1272
|
-
RubyCommand.Argument(name: "clean_status_bar_config", value: cleanStatusBarConfig)])
|
1422
|
+
RubyCommand.Argument(name: "adb_host", value: adbHost)])
|
1273
1423
|
_ = runner.executeCommand(command)
|
1274
1424
|
}
|
1275
1425
|
|
@@ -1311,6 +1461,8 @@ func captureAndroidScreenshots(androidHome: String? = nil,
|
|
1311
1461
|
- testTargetName: The name of the target you want to test (if you desire to override the Target Application from Xcode)
|
1312
1462
|
- namespaceLogFiles: Separate the log files per device and per language
|
1313
1463
|
- concurrentSimulators: Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9
|
1464
|
+
- disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
|
1465
|
+
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
1314
1466
|
*/
|
1315
1467
|
func captureIosScreenshots(workspace: String? = nil,
|
1316
1468
|
project: String? = nil,
|
@@ -1345,7 +1497,9 @@ func captureIosScreenshots(workspace: String? = nil,
|
|
1345
1497
|
resultBundle: Bool = false,
|
1346
1498
|
testTargetName: String? = nil,
|
1347
1499
|
namespaceLogFiles: Any? = nil,
|
1348
|
-
concurrentSimulators: Bool = true
|
1500
|
+
concurrentSimulators: Bool = true,
|
1501
|
+
disableSlideToType: Bool = false,
|
1502
|
+
clonedSourcePackagesPath: String? = nil) {
|
1349
1503
|
let command = RubyCommand(commandID: "", methodName: "capture_ios_screenshots", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
1350
1504
|
RubyCommand.Argument(name: "project", value: project),
|
1351
1505
|
RubyCommand.Argument(name: "xcargs", value: xcargs),
|
@@ -1379,7 +1533,9 @@ func captureIosScreenshots(workspace: String? = nil,
|
|
1379
1533
|
RubyCommand.Argument(name: "result_bundle", value: resultBundle),
|
1380
1534
|
RubyCommand.Argument(name: "test_target_name", value: testTargetName),
|
1381
1535
|
RubyCommand.Argument(name: "namespace_log_files", value: namespaceLogFiles),
|
1382
|
-
RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators)
|
1536
|
+
RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
|
1537
|
+
RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
|
1538
|
+
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
|
1383
1539
|
_ = runner.executeCommand(command)
|
1384
1540
|
}
|
1385
1541
|
|
@@ -1421,6 +1577,8 @@ func captureIosScreenshots(workspace: String? = nil,
|
|
1421
1577
|
- testTargetName: The name of the target you want to test (if you desire to override the Target Application from Xcode)
|
1422
1578
|
- namespaceLogFiles: Separate the log files per device and per language
|
1423
1579
|
- concurrentSimulators: Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9
|
1580
|
+
- disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
|
1581
|
+
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
1424
1582
|
*/
|
1425
1583
|
func captureScreenshots(workspace: String? = nil,
|
1426
1584
|
project: String? = nil,
|
@@ -1455,7 +1613,9 @@ func captureScreenshots(workspace: String? = nil,
|
|
1455
1613
|
resultBundle: Bool = false,
|
1456
1614
|
testTargetName: String? = nil,
|
1457
1615
|
namespaceLogFiles: Any? = nil,
|
1458
|
-
concurrentSimulators: Bool = true
|
1616
|
+
concurrentSimulators: Bool = true,
|
1617
|
+
disableSlideToType: Bool = false,
|
1618
|
+
clonedSourcePackagesPath: String? = nil) {
|
1459
1619
|
let command = RubyCommand(commandID: "", methodName: "capture_screenshots", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
1460
1620
|
RubyCommand.Argument(name: "project", value: project),
|
1461
1621
|
RubyCommand.Argument(name: "xcargs", value: xcargs),
|
@@ -1489,7 +1649,9 @@ func captureScreenshots(workspace: String? = nil,
|
|
1489
1649
|
RubyCommand.Argument(name: "result_bundle", value: resultBundle),
|
1490
1650
|
RubyCommand.Argument(name: "test_target_name", value: testTargetName),
|
1491
1651
|
RubyCommand.Argument(name: "namespace_log_files", value: namespaceLogFiles),
|
1492
|
-
RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators)
|
1652
|
+
RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
|
1653
|
+
RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
|
1654
|
+
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
|
1493
1655
|
_ = runner.executeCommand(command)
|
1494
1656
|
}
|
1495
1657
|
|
@@ -1566,6 +1728,7 @@ func carthage(command: String = "bootstrap",
|
|
1566
1728
|
|
1567
1729
|
- parameters:
|
1568
1730
|
- development: Create a development certificate instead of a distribution one
|
1731
|
+
- type: Create specific certificate type (takes precedence over :development)
|
1569
1732
|
- force: Create a certificate even if an existing certificate exists
|
1570
1733
|
- generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
|
1571
1734
|
- username: Your Apple ID Username
|
@@ -1581,8 +1744,9 @@ func carthage(command: String = "bootstrap",
|
|
1581
1744
|
Use this action to download the latest code signing identity.
|
1582
1745
|
*/
|
1583
1746
|
func cert(development: Bool = false,
|
1747
|
+
type: String? = nil,
|
1584
1748
|
force: Bool = false,
|
1585
|
-
generateAppleCerts: Bool =
|
1749
|
+
generateAppleCerts: Bool = true,
|
1586
1750
|
username: String,
|
1587
1751
|
teamId: String? = nil,
|
1588
1752
|
teamName: String? = nil,
|
@@ -1590,8 +1754,9 @@ func cert(development: Bool = false,
|
|
1590
1754
|
outputPath: String = ".",
|
1591
1755
|
keychainPath: String,
|
1592
1756
|
keychainPassword: String? = nil,
|
1593
|
-
platform:
|
1757
|
+
platform: String = "ios") {
|
1594
1758
|
let command = RubyCommand(commandID: "", methodName: "cert", className: nil, args: [RubyCommand.Argument(name: "development", value: development),
|
1759
|
+
RubyCommand.Argument(name: "type", value: type),
|
1595
1760
|
RubyCommand.Argument(name: "force", value: force),
|
1596
1761
|
RubyCommand.Argument(name: "generate_apple_certs", value: generateAppleCerts),
|
1597
1762
|
RubyCommand.Argument(name: "username", value: username),
|
@@ -2148,10 +2313,13 @@ func createKeychain(name: String? = nil,
|
|
2148
2313
|
- title: The title of the pull request
|
2149
2314
|
- body: The contents of the pull request
|
2150
2315
|
- labels: The labels for the pull request
|
2316
|
+
- milestone: The milestone ID (Integer) for the pull request
|
2151
2317
|
- head: The name of the branch where your changes are implemented (defaults to the current branch name)
|
2152
2318
|
- base: The name of the branch you want your changes pulled into (defaults to `master`)
|
2153
2319
|
- apiUrl: The URL of GitHub API - used when the Enterprise (default to `https://api.github.com`)
|
2154
2320
|
- assignees: The assignees for the pull request
|
2321
|
+
- reviewers: The reviewers (slug) for the pull request
|
2322
|
+
- teamReviewers: The team reviewers (slug) for the pull request
|
2155
2323
|
|
2156
2324
|
- returns: The pull request URL when successful
|
2157
2325
|
*/
|
@@ -2160,19 +2328,25 @@ func createPullRequest(apiToken: String,
|
|
2160
2328
|
title: String,
|
2161
2329
|
body: String? = nil,
|
2162
2330
|
labels: [String]? = nil,
|
2331
|
+
milestone: String? = nil,
|
2163
2332
|
head: String? = nil,
|
2164
2333
|
base: String = "master",
|
2165
2334
|
apiUrl: String = "https://api.github.com",
|
2166
|
-
assignees: [String]? = nil
|
2335
|
+
assignees: [String]? = nil,
|
2336
|
+
reviewers: [String]? = nil,
|
2337
|
+
teamReviewers: [String]? = nil) {
|
2167
2338
|
let command = RubyCommand(commandID: "", methodName: "create_pull_request", className: nil, args: [RubyCommand.Argument(name: "api_token", value: apiToken),
|
2168
2339
|
RubyCommand.Argument(name: "repo", value: repo),
|
2169
2340
|
RubyCommand.Argument(name: "title", value: title),
|
2170
2341
|
RubyCommand.Argument(name: "body", value: body),
|
2171
2342
|
RubyCommand.Argument(name: "labels", value: labels),
|
2343
|
+
RubyCommand.Argument(name: "milestone", value: milestone),
|
2172
2344
|
RubyCommand.Argument(name: "head", value: head),
|
2173
2345
|
RubyCommand.Argument(name: "base", value: base),
|
2174
2346
|
RubyCommand.Argument(name: "api_url", value: apiUrl),
|
2175
|
-
RubyCommand.Argument(name: "assignees", value: assignees)
|
2347
|
+
RubyCommand.Argument(name: "assignees", value: assignees),
|
2348
|
+
RubyCommand.Argument(name: "reviewers", value: reviewers),
|
2349
|
+
RubyCommand.Argument(name: "team_reviewers", value: teamReviewers)])
|
2176
2350
|
_ = runner.executeCommand(command)
|
2177
2351
|
}
|
2178
2352
|
|
@@ -2275,8 +2449,8 @@ func deleteKeychain(name: String? = nil,
|
|
2275
2449
|
- overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
|
2276
2450
|
- submitForReview: Submit the new version for Review after uploading everything
|
2277
2451
|
- rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
|
2278
|
-
- automaticRelease: Should the app be automatically released once it's approved?
|
2279
|
-
- autoReleaseDate: Date in milliseconds for automatically releasing on pending approval
|
2452
|
+
- automaticRelease: Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
|
2453
|
+
- autoReleaseDate: Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)
|
2280
2454
|
- phasedRelease: Enable the phased release feature of iTC
|
2281
2455
|
- resetRatings: Reset the summary rating when you release a new version of the application
|
2282
2456
|
- priceTier: The price tier of this application
|
@@ -2635,8 +2809,8 @@ func echo(message: String? = nil) {
|
|
2635
2809
|
/**
|
2636
2810
|
Raises an exception if not using `bundle exec` to run fastlane
|
2637
2811
|
|
2638
|
-
This action will check if you are using bundle exec to run fastlane.
|
2639
|
-
You can put it into `before_all`
|
2812
|
+
This action will check if you are using `bundle exec` to run fastlane.
|
2813
|
+
You can put it into `before_all` to make sure that fastlane is ran using the `bundle exec fastlane` command.
|
2640
2814
|
*/
|
2641
2815
|
func ensureBundleExec() {
|
2642
2816
|
let command = RubyCommand(commandID: "", methodName: "ensure_bundle_exec", className: nil, args: [])
|
@@ -2938,6 +3112,7 @@ func getBuildNumberRepository(useHgRevisionNumber: Bool = false) {
|
|
2938
3112
|
|
2939
3113
|
- parameters:
|
2940
3114
|
- development: Create a development certificate instead of a distribution one
|
3115
|
+
- type: Create specific certificate type (takes precedence over :development)
|
2941
3116
|
- force: Create a certificate even if an existing certificate exists
|
2942
3117
|
- generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
|
2943
3118
|
- username: Your Apple ID Username
|
@@ -2953,8 +3128,9 @@ func getBuildNumberRepository(useHgRevisionNumber: Bool = false) {
|
|
2953
3128
|
Use this action to download the latest code signing identity.
|
2954
3129
|
*/
|
2955
3130
|
func getCertificates(development: Bool = false,
|
3131
|
+
type: String? = nil,
|
2956
3132
|
force: Bool = false,
|
2957
|
-
generateAppleCerts: Bool =
|
3133
|
+
generateAppleCerts: Bool = true,
|
2958
3134
|
username: String,
|
2959
3135
|
teamId: String? = nil,
|
2960
3136
|
teamName: String? = nil,
|
@@ -2962,8 +3138,9 @@ func getCertificates(development: Bool = false,
|
|
2962
3138
|
outputPath: String = ".",
|
2963
3139
|
keychainPath: String,
|
2964
3140
|
keychainPassword: String? = nil,
|
2965
|
-
platform:
|
3141
|
+
platform: String = "ios") {
|
2966
3142
|
let command = RubyCommand(commandID: "", methodName: "get_certificates", className: nil, args: [RubyCommand.Argument(name: "development", value: development),
|
3143
|
+
RubyCommand.Argument(name: "type", value: type),
|
2967
3144
|
RubyCommand.Argument(name: "force", value: force),
|
2968
3145
|
RubyCommand.Argument(name: "generate_apple_certs", value: generateAppleCerts),
|
2969
3146
|
RubyCommand.Argument(name: "username", value: username),
|
@@ -3425,6 +3602,7 @@ func googlePlayTrackVersionCodes(packageName: String,
|
|
3425
3602
|
- task: The gradle task you want to execute, e.g. `assemble`, `bundle` or `test`. For tasks such as `assembleMyFlavorRelease` you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release')
|
3426
3603
|
- flavor: The flavor that you want the task for, e.g. `MyFlavor`. If you are running the `assemble` task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined
|
3427
3604
|
- buildType: The build type that you want the task for, e.g. `Release`. Useful for some tasks such as `assemble`
|
3605
|
+
- tasks: The multiple gradle tasks that you want to execute, e.g. `[assembleDebug, bundleDebug]`
|
3428
3606
|
- flags: All parameter flags you want to pass to the gradle command, e.g. `--exitcode --xml file.xml`
|
3429
3607
|
- projectDir: The root directory of the gradle project
|
3430
3608
|
- gradlePath: The path to your `gradlew`. If you specify a relative path, it is assumed to be relative to the `project_dir`
|
@@ -3438,9 +3616,10 @@ func googlePlayTrackVersionCodes(packageName: String,
|
|
3438
3616
|
|
3439
3617
|
Run `./gradlew tasks` to get a list of all available gradle tasks for your project
|
3440
3618
|
*/
|
3441
|
-
func gradle(task: String,
|
3619
|
+
func gradle(task: String? = nil,
|
3442
3620
|
flavor: String? = nil,
|
3443
3621
|
buildType: String? = nil,
|
3622
|
+
tasks: [String]? = nil,
|
3444
3623
|
flags: String? = nil,
|
3445
3624
|
projectDir: String = ".",
|
3446
3625
|
gradlePath: String? = nil,
|
@@ -3452,6 +3631,7 @@ func gradle(task: String,
|
|
3452
3631
|
let command = RubyCommand(commandID: "", methodName: "gradle", className: nil, args: [RubyCommand.Argument(name: "task", value: task),
|
3453
3632
|
RubyCommand.Argument(name: "flavor", value: flavor),
|
3454
3633
|
RubyCommand.Argument(name: "build_type", value: buildType),
|
3634
|
+
RubyCommand.Argument(name: "tasks", value: tasks),
|
3455
3635
|
RubyCommand.Argument(name: "flags", value: flags),
|
3456
3636
|
RubyCommand.Argument(name: "project_dir", value: projectDir),
|
3457
3637
|
RubyCommand.Argument(name: "gradle_path", value: gradlePath),
|
@@ -3464,7 +3644,7 @@ func gradle(task: String,
|
|
3464
3644
|
}
|
3465
3645
|
|
3466
3646
|
/**
|
3467
|
-
Alias for the `
|
3647
|
+
Alias for the `build_app` action
|
3468
3648
|
|
3469
3649
|
- parameters:
|
3470
3650
|
- workspace: Path to the workspace file
|
@@ -3477,6 +3657,7 @@ func gradle(task: String,
|
|
3477
3657
|
- silent: Hide all information that's not necessary while building
|
3478
3658
|
- codesigningIdentity: The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH'
|
3479
3659
|
- skipPackageIpa: Should we skip packaging the ipa?
|
3660
|
+
- skipPackagePkg: Should we skip packaging the pkg?
|
3480
3661
|
- includeSymbols: Should the ipa file include symbols?
|
3481
3662
|
- includeBitcode: Should the ipa file include bitcode?
|
3482
3663
|
- exportMethod: Method used to export the archive. Valid values are: app-store, ad-hoc, package, enterprise, development, developer-id
|
@@ -3485,6 +3666,8 @@ func gradle(task: String,
|
|
3485
3666
|
- skipBuildArchive: Export ipa from previously built xcarchive. Uses archive_path as source
|
3486
3667
|
- skipArchive: After building, don't archive, effectively not including -archivePath param
|
3487
3668
|
- skipCodesigning: Build without codesigning
|
3669
|
+
- catalystPlatform: Platform to build when using a Catalyst enabled app. Valid values are: ios, macos
|
3670
|
+
- installerCertName: Full name of 3rd Party Mac Developer Installer or Deveoper ID Installer certificate. Example: `3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ)`
|
3488
3671
|
- buildPath: The directory in which the archive should be stored in
|
3489
3672
|
- archivePath: The path to the created archive
|
3490
3673
|
- derivedDataPath: The directory where built products and other derived data will go
|
@@ -3507,6 +3690,7 @@ func gradle(task: String,
|
|
3507
3690
|
- analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
|
3508
3691
|
- xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
|
3509
3692
|
- skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
|
3693
|
+
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
3510
3694
|
|
3511
3695
|
- returns: The absolute path to the generated ipa file
|
3512
3696
|
|
@@ -3522,6 +3706,7 @@ func gym(workspace: Any? = gymfile.workspace,
|
|
3522
3706
|
silent: Bool = gymfile.silent,
|
3523
3707
|
codesigningIdentity: Any? = gymfile.codesigningIdentity,
|
3524
3708
|
skipPackageIpa: Bool = gymfile.skipPackageIpa,
|
3709
|
+
skipPackagePkg: Bool = gymfile.skipPackagePkg,
|
3525
3710
|
includeSymbols: Bool? = gymfile.includeSymbols,
|
3526
3711
|
includeBitcode: Bool? = gymfile.includeBitcode,
|
3527
3712
|
exportMethod: Any? = gymfile.exportMethod,
|
@@ -3530,6 +3715,8 @@ func gym(workspace: Any? = gymfile.workspace,
|
|
3530
3715
|
skipBuildArchive: Bool? = gymfile.skipBuildArchive,
|
3531
3716
|
skipArchive: Bool? = gymfile.skipArchive,
|
3532
3717
|
skipCodesigning: Bool? = gymfile.skipCodesigning,
|
3718
|
+
catalystPlatform: Any? = gymfile.catalystPlatform,
|
3719
|
+
installerCertName: Any? = gymfile.installerCertName,
|
3533
3720
|
buildPath: Any? = gymfile.buildPath,
|
3534
3721
|
archivePath: Any? = gymfile.archivePath,
|
3535
3722
|
derivedDataPath: Any? = gymfile.derivedDataPath,
|
@@ -3551,7 +3738,8 @@ func gym(workspace: Any? = gymfile.workspace,
|
|
3551
3738
|
xcprettyReportJson: Any? = gymfile.xcprettyReportJson,
|
3552
3739
|
analyzeBuildTime: Bool? = gymfile.analyzeBuildTime,
|
3553
3740
|
xcprettyUtf: Bool? = gymfile.xcprettyUtf,
|
3554
|
-
skipProfileDetection: Bool = gymfile.skipProfileDetection
|
3741
|
+
skipProfileDetection: Bool = gymfile.skipProfileDetection,
|
3742
|
+
clonedSourcePackagesPath: Any? = gymfile.clonedSourcePackagesPath) {
|
3555
3743
|
let command = RubyCommand(commandID: "", methodName: "gym", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
3556
3744
|
RubyCommand.Argument(name: "project", value: project),
|
3557
3745
|
RubyCommand.Argument(name: "scheme", value: scheme),
|
@@ -3562,6 +3750,7 @@ func gym(workspace: Any? = gymfile.workspace,
|
|
3562
3750
|
RubyCommand.Argument(name: "silent", value: silent),
|
3563
3751
|
RubyCommand.Argument(name: "codesigning_identity", value: codesigningIdentity),
|
3564
3752
|
RubyCommand.Argument(name: "skip_package_ipa", value: skipPackageIpa),
|
3753
|
+
RubyCommand.Argument(name: "skip_package_pkg", value: skipPackagePkg),
|
3565
3754
|
RubyCommand.Argument(name: "include_symbols", value: includeSymbols),
|
3566
3755
|
RubyCommand.Argument(name: "include_bitcode", value: includeBitcode),
|
3567
3756
|
RubyCommand.Argument(name: "export_method", value: exportMethod),
|
@@ -3570,6 +3759,8 @@ func gym(workspace: Any? = gymfile.workspace,
|
|
3570
3759
|
RubyCommand.Argument(name: "skip_build_archive", value: skipBuildArchive),
|
3571
3760
|
RubyCommand.Argument(name: "skip_archive", value: skipArchive),
|
3572
3761
|
RubyCommand.Argument(name: "skip_codesigning", value: skipCodesigning),
|
3762
|
+
RubyCommand.Argument(name: "catalyst_platform", value: catalystPlatform),
|
3763
|
+
RubyCommand.Argument(name: "installer_cert_name", value: installerCertName),
|
3573
3764
|
RubyCommand.Argument(name: "build_path", value: buildPath),
|
3574
3765
|
RubyCommand.Argument(name: "archive_path", value: archivePath),
|
3575
3766
|
RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
|
@@ -3591,7 +3782,8 @@ func gym(workspace: Any? = gymfile.workspace,
|
|
3591
3782
|
RubyCommand.Argument(name: "xcpretty_report_json", value: xcprettyReportJson),
|
3592
3783
|
RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
|
3593
3784
|
RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
|
3594
|
-
RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection)
|
3785
|
+
RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
|
3786
|
+
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
|
3595
3787
|
_ = runner.executeCommand(command)
|
3596
3788
|
}
|
3597
3789
|
|
@@ -3884,7 +4076,7 @@ func importCertificate(certificatePath: String,
|
|
3884
4076
|
This action will increment the version number.
|
3885
4077
|
You first have to set up your Xcode project, if you haven't done it already: [https://developer.apple.com/library/ios/qa/qa1827/_index.html](https://developer.apple.com/library/ios/qa/qa1827/_index.html).
|
3886
4078
|
*/
|
3887
|
-
@discardableResult func incrementVersionNumber(bumpType: String = "
|
4079
|
+
@discardableResult func incrementVersionNumber(bumpType: String = "bump",
|
3888
4080
|
versionNumber: String? = nil,
|
3889
4081
|
xcodeproj: String? = nil) -> String {
|
3890
4082
|
let command = RubyCommand(commandID: "", methodName: "increment_version_number", className: nil, args: [RubyCommand.Argument(name: "bump_type", value: bumpType),
|
@@ -4083,10 +4275,13 @@ func jira(url: String,
|
|
4083
4275
|
/**
|
4084
4276
|
Get the most recent git tag
|
4085
4277
|
|
4278
|
+
- parameter pattern: Pattern to filter tags when looking for last one. Limit tags to ones matching given shell glob. If pattern lacks ?, *, or [, * at the end is implied
|
4279
|
+
|
4086
4280
|
If you are using this action on a **shallow clone**, *the default with some CI systems like Bamboo*, you need to ensure that you have also pulled all the git tags appropriately. Assuming your git repo has the correct remote set you can issue `sh('git fetch --tags')`.
|
4281
|
+
Pattern parameter allows you to filter to a subset of tags.
|
4087
4282
|
*/
|
4088
|
-
@discardableResult func lastGitTag() -> String {
|
4089
|
-
let command = RubyCommand(commandID: "", methodName: "last_git_tag", className: nil, args: [])
|
4283
|
+
@discardableResult func lastGitTag(pattern: String? = nil) -> String {
|
4284
|
+
let command = RubyCommand(commandID: "", methodName: "last_git_tag", className: nil, args: [RubyCommand.Argument(name: "pattern", value: pattern)])
|
4090
4285
|
return runner.executeCommand(command)
|
4091
4286
|
}
|
4092
4287
|
|
@@ -4223,7 +4418,8 @@ func makeChangelogFromJenkins(fallbackChangelog: String = "",
|
|
4223
4418
|
Alias for the `sync_code_signing` action
|
4224
4419
|
|
4225
4420
|
- parameters:
|
4226
|
-
- type: Define the profile type, can be appstore, adhoc, development, enterprise
|
4421
|
+
- type: Define the profile type, can be appstore, adhoc, development, enterprise, developer_id
|
4422
|
+
- additionalCertTypes: Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer)
|
4227
4423
|
- readonly: Only fetch existing certificates and profiles, don't generate new ones
|
4228
4424
|
- generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
|
4229
4425
|
- skipProvisioningProfiles: Skip syncing provisioning profiles
|
@@ -4239,6 +4435,7 @@ func makeChangelogFromJenkins(fallbackChangelog: String = "",
|
|
4239
4435
|
- shallowClone: Make a shallow clone of the repository (truncate the history to 1 revision)
|
4240
4436
|
- cloneBranchDirectly: Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail
|
4241
4437
|
- gitBasicAuthorization: Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64
|
4438
|
+
- gitBearerAuthorization: Use a bearer authorization header to access the git repo (e.g.: access to an Azure Devops repository), usually a string in Base64
|
4242
4439
|
- googleCloudBucketName: Name of the Google Cloud Storage bucket to use
|
4243
4440
|
- googleCloudKeysFile: Path to the gc_keys.json file
|
4244
4441
|
- googleCloudProjectId: ID of the Google Cloud project to use for authentication
|
@@ -4248,7 +4445,7 @@ func makeChangelogFromJenkins(fallbackChangelog: String = "",
|
|
4248
4445
|
- forceForNewDevices: Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile type 'appstore'
|
4249
4446
|
- skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
|
4250
4447
|
- skipDocs: Skip generation of a README.md for the created git repository
|
4251
|
-
- platform: Set the provisioning profile's platform to work with (i.e. ios, tvos)
|
4448
|
+
- platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos)
|
4252
4449
|
- templateName: The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
|
4253
4450
|
- outputPath: Path in which to export certificates, key and profile
|
4254
4451
|
- verbose: Print out extra information and all commands
|
@@ -4256,6 +4453,7 @@ func makeChangelogFromJenkins(fallbackChangelog: String = "",
|
|
4256
4453
|
More information: https://docs.fastlane.tools/actions/match/
|
4257
4454
|
*/
|
4258
4455
|
func match(type: Any = matchfile.type,
|
4456
|
+
additionalCertTypes: [String]? = matchfile.additionalCertTypes,
|
4259
4457
|
readonly: Bool = matchfile.readonly,
|
4260
4458
|
generateAppleCerts: Bool = matchfile.generateAppleCerts,
|
4261
4459
|
skipProvisioningProfiles: Bool = matchfile.skipProvisioningProfiles,
|
@@ -4271,6 +4469,7 @@ func match(type: Any = matchfile.type,
|
|
4271
4469
|
shallowClone: Bool = matchfile.shallowClone,
|
4272
4470
|
cloneBranchDirectly: Bool = matchfile.cloneBranchDirectly,
|
4273
4471
|
gitBasicAuthorization: Any? = matchfile.gitBasicAuthorization,
|
4472
|
+
gitBearerAuthorization: Any? = matchfile.gitBearerAuthorization,
|
4274
4473
|
googleCloudBucketName: Any? = matchfile.googleCloudBucketName,
|
4275
4474
|
googleCloudKeysFile: Any? = matchfile.googleCloudKeysFile,
|
4276
4475
|
googleCloudProjectId: Any? = matchfile.googleCloudProjectId,
|
@@ -4285,6 +4484,7 @@ func match(type: Any = matchfile.type,
|
|
4285
4484
|
outputPath: Any? = matchfile.outputPath,
|
4286
4485
|
verbose: Bool = matchfile.verbose) {
|
4287
4486
|
let command = RubyCommand(commandID: "", methodName: "match", className: nil, args: [RubyCommand.Argument(name: "type", value: type),
|
4487
|
+
RubyCommand.Argument(name: "additional_cert_types", value: additionalCertTypes),
|
4288
4488
|
RubyCommand.Argument(name: "readonly", value: readonly),
|
4289
4489
|
RubyCommand.Argument(name: "generate_apple_certs", value: generateAppleCerts),
|
4290
4490
|
RubyCommand.Argument(name: "skip_provisioning_profiles", value: skipProvisioningProfiles),
|
@@ -4300,6 +4500,7 @@ func match(type: Any = matchfile.type,
|
|
4300
4500
|
RubyCommand.Argument(name: "shallow_clone", value: shallowClone),
|
4301
4501
|
RubyCommand.Argument(name: "clone_branch_directly", value: cloneBranchDirectly),
|
4302
4502
|
RubyCommand.Argument(name: "git_basic_authorization", value: gitBasicAuthorization),
|
4503
|
+
RubyCommand.Argument(name: "git_bearer_authorization", value: gitBearerAuthorization),
|
4303
4504
|
RubyCommand.Argument(name: "google_cloud_bucket_name", value: googleCloudBucketName),
|
4304
4505
|
RubyCommand.Argument(name: "google_cloud_keys_file", value: googleCloudKeysFile),
|
4305
4506
|
RubyCommand.Argument(name: "google_cloud_project_id", value: googleCloudProjectId),
|
@@ -4670,7 +4871,7 @@ func pem(development: Bool = false,
|
|
4670
4871
|
- localizedBuildInfo: Localized beta app test info for what's new
|
4671
4872
|
- changelog: Provide the 'What to Test' text when uploading a new build. `skip_waiting_for_build_processing: false` is required to set the changelog
|
4672
4873
|
- skipSubmission: Skip the distributing action of pilot and only upload the ipa file
|
4673
|
-
- skipWaitingForBuildProcessing:
|
4874
|
+
- skipWaitingForBuildProcessing: If set to true, the `distribute_external` option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to `true` and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps
|
4674
4875
|
- updateBuildInfoOnUpload: **DEPRECATED!** Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default
|
4675
4876
|
- usesNonExemptEncryption: Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist
|
4676
4877
|
- distributeExternal: Should the build be distributed to external testers?
|
@@ -5338,7 +5539,7 @@ func rubocop() {
|
|
5338
5539
|
Verifies the minimum ruby version required
|
5339
5540
|
|
5340
5541
|
Add this to your `Fastfile` to require a certain version of _ruby_.
|
5341
|
-
Put it at the top of your `Fastfile to ensure that _fastlane_ is executed appropriately.
|
5542
|
+
Put it at the top of your `Fastfile` to ensure that _fastlane_ is executed appropriately.
|
5342
5543
|
*/
|
5343
5544
|
func rubyVersion() {
|
5344
5545
|
let command = RubyCommand(commandID: "", methodName: "ruby_version", className: nil, args: [])
|
@@ -5357,6 +5558,7 @@ func rubyVersion() {
|
|
5357
5558
|
- skipDetectDevices: Should skip auto detecting of devices if none were specified
|
5358
5559
|
- forceQuitSimulator: Enabling this option will automatically killall Simulator processes before the run
|
5359
5560
|
- resetSimulator: Enabling this option will automatically erase the simulator before running the application
|
5561
|
+
- disableSlideToType: Enabling this option will disable the simulator from showing the 'Slide to type' prompt
|
5360
5562
|
- prelaunchSimulator: Enabling this option will launch the first simulator prior to calling any xcodebuild command
|
5361
5563
|
- reinstallApp: Enabling this option will automatically uninstall the application before running it
|
5362
5564
|
- appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
|
@@ -5391,6 +5593,8 @@ func rubyVersion() {
|
|
5391
5593
|
- configuration: The configuration to use when building the app. Defaults to 'Release'
|
5392
5594
|
- xcargs: Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
|
5393
5595
|
- xcconfig: Use an extra XCCONFIG file to build your app
|
5596
|
+
- appName: App name to use in slack message and logfile name
|
5597
|
+
- deploymentTargetVersion: Target version of the app being build or tested. Used to filter out simulator version
|
5394
5598
|
- slackUrl: Create an Incoming WebHook for your Slack group to post results there
|
5395
5599
|
- slackChannel: #channel or @username
|
5396
5600
|
- slackMessage: The message included with each message posted to slack
|
@@ -5402,6 +5606,7 @@ func rubyVersion() {
|
|
5402
5606
|
- destination: Use only if you're a pro, use the other options instead
|
5403
5607
|
- customReportFileName: **DEPRECATED!** Use `--output_files` instead - Sets custom full report file name when generating a single report
|
5404
5608
|
- xcodebuildCommand: Allows for override of the default `xcodebuild` command
|
5609
|
+
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
5405
5610
|
- failBuild: Should this step stop the build if the tests fail? Set this to false if you're using trainer
|
5406
5611
|
|
5407
5612
|
More information: https://docs.fastlane.tools/actions/scan/
|
@@ -5414,6 +5619,7 @@ func runTests(workspace: String? = nil,
|
|
5414
5619
|
skipDetectDevices: Bool = false,
|
5415
5620
|
forceQuitSimulator: Bool = false,
|
5416
5621
|
resetSimulator: Bool = false,
|
5622
|
+
disableSlideToType: Bool = true,
|
5417
5623
|
prelaunchSimulator: Bool? = nil,
|
5418
5624
|
reinstallApp: Bool = false,
|
5419
5625
|
appIdentifier: String? = nil,
|
@@ -5448,6 +5654,8 @@ func runTests(workspace: String? = nil,
|
|
5448
5654
|
configuration: String? = nil,
|
5449
5655
|
xcargs: String? = nil,
|
5450
5656
|
xcconfig: String? = nil,
|
5657
|
+
appName: String? = nil,
|
5658
|
+
deploymentTargetVersion: String? = nil,
|
5451
5659
|
slackUrl: String? = nil,
|
5452
5660
|
slackChannel: String? = nil,
|
5453
5661
|
slackMessage: String? = nil,
|
@@ -5459,6 +5667,7 @@ func runTests(workspace: String? = nil,
|
|
5459
5667
|
destination: Any? = nil,
|
5460
5668
|
customReportFileName: String? = nil,
|
5461
5669
|
xcodebuildCommand: String = "env NSUnbufferedIO=YES xcodebuild",
|
5670
|
+
clonedSourcePackagesPath: String? = nil,
|
5462
5671
|
failBuild: Bool = true) {
|
5463
5672
|
let command = RubyCommand(commandID: "", methodName: "run_tests", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
5464
5673
|
RubyCommand.Argument(name: "project", value: project),
|
@@ -5468,6 +5677,7 @@ func runTests(workspace: String? = nil,
|
|
5468
5677
|
RubyCommand.Argument(name: "skip_detect_devices", value: skipDetectDevices),
|
5469
5678
|
RubyCommand.Argument(name: "force_quit_simulator", value: forceQuitSimulator),
|
5470
5679
|
RubyCommand.Argument(name: "reset_simulator", value: resetSimulator),
|
5680
|
+
RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
|
5471
5681
|
RubyCommand.Argument(name: "prelaunch_simulator", value: prelaunchSimulator),
|
5472
5682
|
RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
|
5473
5683
|
RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
|
@@ -5502,6 +5712,8 @@ func runTests(workspace: String? = nil,
|
|
5502
5712
|
RubyCommand.Argument(name: "configuration", value: configuration),
|
5503
5713
|
RubyCommand.Argument(name: "xcargs", value: xcargs),
|
5504
5714
|
RubyCommand.Argument(name: "xcconfig", value: xcconfig),
|
5715
|
+
RubyCommand.Argument(name: "app_name", value: appName),
|
5716
|
+
RubyCommand.Argument(name: "deployment_target_version", value: deploymentTargetVersion),
|
5505
5717
|
RubyCommand.Argument(name: "slack_url", value: slackUrl),
|
5506
5718
|
RubyCommand.Argument(name: "slack_channel", value: slackChannel),
|
5507
5719
|
RubyCommand.Argument(name: "slack_message", value: slackMessage),
|
@@ -5513,6 +5725,7 @@ func runTests(workspace: String? = nil,
|
|
5513
5725
|
RubyCommand.Argument(name: "destination", value: destination),
|
5514
5726
|
RubyCommand.Argument(name: "custom_report_file_name", value: customReportFileName),
|
5515
5727
|
RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand),
|
5728
|
+
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
|
5516
5729
|
RubyCommand.Argument(name: "fail_build", value: failBuild)])
|
5517
5730
|
_ = runner.executeCommand(command)
|
5518
5731
|
}
|
@@ -5603,6 +5816,7 @@ func say(text: Any,
|
|
5603
5816
|
- skipDetectDevices: Should skip auto detecting of devices if none were specified
|
5604
5817
|
- forceQuitSimulator: Enabling this option will automatically killall Simulator processes before the run
|
5605
5818
|
- resetSimulator: Enabling this option will automatically erase the simulator before running the application
|
5819
|
+
- disableSlideToType: Enabling this option will disable the simulator from showing the 'Slide to type' prompt
|
5606
5820
|
- prelaunchSimulator: Enabling this option will launch the first simulator prior to calling any xcodebuild command
|
5607
5821
|
- reinstallApp: Enabling this option will automatically uninstall the application before running it
|
5608
5822
|
- appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
|
@@ -5637,6 +5851,8 @@ func say(text: Any,
|
|
5637
5851
|
- configuration: The configuration to use when building the app. Defaults to 'Release'
|
5638
5852
|
- xcargs: Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
|
5639
5853
|
- xcconfig: Use an extra XCCONFIG file to build your app
|
5854
|
+
- appName: App name to use in slack message and logfile name
|
5855
|
+
- deploymentTargetVersion: Target version of the app being build or tested. Used to filter out simulator version
|
5640
5856
|
- slackUrl: Create an Incoming WebHook for your Slack group to post results there
|
5641
5857
|
- slackChannel: #channel or @username
|
5642
5858
|
- slackMessage: The message included with each message posted to slack
|
@@ -5648,6 +5864,7 @@ func say(text: Any,
|
|
5648
5864
|
- destination: Use only if you're a pro, use the other options instead
|
5649
5865
|
- customReportFileName: **DEPRECATED!** Use `--output_files` instead - Sets custom full report file name when generating a single report
|
5650
5866
|
- xcodebuildCommand: Allows for override of the default `xcodebuild` command
|
5867
|
+
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
5651
5868
|
- failBuild: Should this step stop the build if the tests fail? Set this to false if you're using trainer
|
5652
5869
|
|
5653
5870
|
More information: https://docs.fastlane.tools/actions/scan/
|
@@ -5660,6 +5877,7 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
5660
5877
|
skipDetectDevices: Bool = scanfile.skipDetectDevices,
|
5661
5878
|
forceQuitSimulator: Bool = scanfile.forceQuitSimulator,
|
5662
5879
|
resetSimulator: Bool = scanfile.resetSimulator,
|
5880
|
+
disableSlideToType: Bool = scanfile.disableSlideToType,
|
5663
5881
|
prelaunchSimulator: Bool? = scanfile.prelaunchSimulator,
|
5664
5882
|
reinstallApp: Bool = scanfile.reinstallApp,
|
5665
5883
|
appIdentifier: Any? = scanfile.appIdentifier,
|
@@ -5694,6 +5912,8 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
5694
5912
|
configuration: Any? = scanfile.configuration,
|
5695
5913
|
xcargs: Any? = scanfile.xcargs,
|
5696
5914
|
xcconfig: Any? = scanfile.xcconfig,
|
5915
|
+
appName: Any? = scanfile.appName,
|
5916
|
+
deploymentTargetVersion: Any? = scanfile.deploymentTargetVersion,
|
5697
5917
|
slackUrl: Any? = scanfile.slackUrl,
|
5698
5918
|
slackChannel: Any? = scanfile.slackChannel,
|
5699
5919
|
slackMessage: Any? = scanfile.slackMessage,
|
@@ -5705,6 +5925,7 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
5705
5925
|
destination: Any? = scanfile.destination,
|
5706
5926
|
customReportFileName: Any? = scanfile.customReportFileName,
|
5707
5927
|
xcodebuildCommand: Any = scanfile.xcodebuildCommand,
|
5928
|
+
clonedSourcePackagesPath: Any? = scanfile.clonedSourcePackagesPath,
|
5708
5929
|
failBuild: Bool = scanfile.failBuild) {
|
5709
5930
|
let command = RubyCommand(commandID: "", methodName: "scan", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
5710
5931
|
RubyCommand.Argument(name: "project", value: project),
|
@@ -5714,6 +5935,7 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
5714
5935
|
RubyCommand.Argument(name: "skip_detect_devices", value: skipDetectDevices),
|
5715
5936
|
RubyCommand.Argument(name: "force_quit_simulator", value: forceQuitSimulator),
|
5716
5937
|
RubyCommand.Argument(name: "reset_simulator", value: resetSimulator),
|
5938
|
+
RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
|
5717
5939
|
RubyCommand.Argument(name: "prelaunch_simulator", value: prelaunchSimulator),
|
5718
5940
|
RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
|
5719
5941
|
RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
|
@@ -5748,6 +5970,8 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
5748
5970
|
RubyCommand.Argument(name: "configuration", value: configuration),
|
5749
5971
|
RubyCommand.Argument(name: "xcargs", value: xcargs),
|
5750
5972
|
RubyCommand.Argument(name: "xcconfig", value: xcconfig),
|
5973
|
+
RubyCommand.Argument(name: "app_name", value: appName),
|
5974
|
+
RubyCommand.Argument(name: "deployment_target_version", value: deploymentTargetVersion),
|
5751
5975
|
RubyCommand.Argument(name: "slack_url", value: slackUrl),
|
5752
5976
|
RubyCommand.Argument(name: "slack_channel", value: slackChannel),
|
5753
5977
|
RubyCommand.Argument(name: "slack_message", value: slackMessage),
|
@@ -5759,6 +5983,7 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
5759
5983
|
RubyCommand.Argument(name: "destination", value: destination),
|
5760
5984
|
RubyCommand.Argument(name: "custom_report_file_name", value: customReportFileName),
|
5761
5985
|
RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand),
|
5986
|
+
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
|
5762
5987
|
RubyCommand.Argument(name: "fail_build", value: failBuild)])
|
5763
5988
|
_ = runner.executeCommand(command)
|
5764
5989
|
}
|
@@ -5815,8 +6040,6 @@ func scp(username: String,
|
|
5815
6040
|
- reinstallApp: Enabling this option will automatically uninstall the application before running it
|
5816
6041
|
- useTimestampSuffix: Add timestamp suffix to screenshot filename
|
5817
6042
|
- adbHost: Configure the host used by adb to connect, allows running on remote devices farm
|
5818
|
-
- cleanStatusBar: Enabling this option will clean the status bar
|
5819
|
-
- cleanStatusBarConfig: Specifies the configuration for the clean status bar
|
5820
6043
|
*/
|
5821
6044
|
func screengrab(androidHome: Any? = screengrabfile.androidHome,
|
5822
6045
|
buildToolsVersion: Any? = screengrabfile.buildToolsVersion,
|
@@ -5839,9 +6062,7 @@ func screengrab(androidHome: Any? = screengrabfile.androidHome,
|
|
5839
6062
|
exitOnTestFailure: Bool = screengrabfile.exitOnTestFailure,
|
5840
6063
|
reinstallApp: Bool = screengrabfile.reinstallApp,
|
5841
6064
|
useTimestampSuffix: Bool = screengrabfile.useTimestampSuffix,
|
5842
|
-
adbHost: Any? = screengrabfile.adbHost
|
5843
|
-
cleanStatusBar: Bool = screengrabfile.cleanStatusBar,
|
5844
|
-
cleanStatusBarConfig: [String : Any] = screengrabfile.cleanStatusBarConfig) {
|
6065
|
+
adbHost: Any? = screengrabfile.adbHost) {
|
5845
6066
|
let command = RubyCommand(commandID: "", methodName: "screengrab", className: nil, args: [RubyCommand.Argument(name: "android_home", value: androidHome),
|
5846
6067
|
RubyCommand.Argument(name: "build_tools_version", value: buildToolsVersion),
|
5847
6068
|
RubyCommand.Argument(name: "locales", value: locales),
|
@@ -5863,9 +6084,7 @@ func screengrab(androidHome: Any? = screengrabfile.androidHome,
|
|
5863
6084
|
RubyCommand.Argument(name: "exit_on_test_failure", value: exitOnTestFailure),
|
5864
6085
|
RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
|
5865
6086
|
RubyCommand.Argument(name: "use_timestamp_suffix", value: useTimestampSuffix),
|
5866
|
-
RubyCommand.Argument(name: "adb_host", value: adbHost)
|
5867
|
-
RubyCommand.Argument(name: "clean_status_bar", value: cleanStatusBar),
|
5868
|
-
RubyCommand.Argument(name: "clean_status_bar_config", value: cleanStatusBarConfig)])
|
6087
|
+
RubyCommand.Argument(name: "adb_host", value: adbHost)])
|
5869
6088
|
_ = runner.executeCommand(command)
|
5870
6089
|
}
|
5871
6090
|
|
@@ -5951,7 +6170,7 @@ Access things like 'html_url', 'tag_name', 'name', 'body'
|
|
5951
6170
|
description: String? = nil,
|
5952
6171
|
isDraft: Bool = false,
|
5953
6172
|
isPrerelease: Bool = false,
|
5954
|
-
uploadAssets: [String]? = nil) -> [String :
|
6173
|
+
uploadAssets: [String]? = nil) -> [String : Any] {
|
5955
6174
|
let command = RubyCommand(commandID: "", methodName: "set_github_release", className: nil, args: [RubyCommand.Argument(name: "repository_name", value: repositoryName),
|
5956
6175
|
RubyCommand.Argument(name: "server_url", value: serverUrl),
|
5957
6176
|
RubyCommand.Argument(name: "api_token", value: apiToken),
|
@@ -6015,7 +6234,7 @@ func setPodKey(useBundleExec: Bool = true,
|
|
6015
6234
|
|
6016
6235
|
- parameters:
|
6017
6236
|
- force: Force setup, even if not executed by CI
|
6018
|
-
- provider: CI provider
|
6237
|
+
- provider: CI provider. If none is set, the provider is detected automatically
|
6019
6238
|
|
6020
6239
|
- Creates a new temporary keychain for use with match|
|
6021
6240
|
- Switches match to `readonly` mode to not create new profiles/cert on CI|
|
@@ -6438,6 +6657,8 @@ func slather(buildDirectory: String? = nil,
|
|
6438
6657
|
- testTargetName: The name of the target you want to test (if you desire to override the Target Application from Xcode)
|
6439
6658
|
- namespaceLogFiles: Separate the log files per device and per language
|
6440
6659
|
- concurrentSimulators: Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9
|
6660
|
+
- disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
|
6661
|
+
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
6441
6662
|
*/
|
6442
6663
|
func snapshot(workspace: Any? = snapshotfile.workspace,
|
6443
6664
|
project: Any? = snapshotfile.project,
|
@@ -6472,7 +6693,9 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
|
|
6472
6693
|
resultBundle: Bool = snapshotfile.resultBundle,
|
6473
6694
|
testTargetName: Any? = snapshotfile.testTargetName,
|
6474
6695
|
namespaceLogFiles: Any? = snapshotfile.namespaceLogFiles,
|
6475
|
-
concurrentSimulators: Bool = snapshotfile.concurrentSimulators
|
6696
|
+
concurrentSimulators: Bool = snapshotfile.concurrentSimulators,
|
6697
|
+
disableSlideToType: Bool = snapshotfile.disableSlideToType,
|
6698
|
+
clonedSourcePackagesPath: Any? = snapshotfile.clonedSourcePackagesPath) {
|
6476
6699
|
let command = RubyCommand(commandID: "", methodName: "snapshot", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
6477
6700
|
RubyCommand.Argument(name: "project", value: project),
|
6478
6701
|
RubyCommand.Argument(name: "xcargs", value: xcargs),
|
@@ -6506,7 +6729,9 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
|
|
6506
6729
|
RubyCommand.Argument(name: "result_bundle", value: resultBundle),
|
6507
6730
|
RubyCommand.Argument(name: "test_target_name", value: testTargetName),
|
6508
6731
|
RubyCommand.Argument(name: "namespace_log_files", value: namespaceLogFiles),
|
6509
|
-
RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators)
|
6732
|
+
RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
|
6733
|
+
RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
|
6734
|
+
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
|
6510
6735
|
_ = runner.executeCommand(command)
|
6511
6736
|
}
|
6512
6737
|
|
@@ -6845,7 +7070,8 @@ func swiftlint(mode: Any = "lint",
|
|
6845
7070
|
Easily sync your certificates and profiles across your team (via _match_)
|
6846
7071
|
|
6847
7072
|
- parameters:
|
6848
|
-
- type: Define the profile type, can be appstore, adhoc, development, enterprise
|
7073
|
+
- type: Define the profile type, can be appstore, adhoc, development, enterprise, developer_id
|
7074
|
+
- additionalCertTypes: Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer)
|
6849
7075
|
- readonly: Only fetch existing certificates and profiles, don't generate new ones
|
6850
7076
|
- generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
|
6851
7077
|
- skipProvisioningProfiles: Skip syncing provisioning profiles
|
@@ -6861,6 +7087,7 @@ func swiftlint(mode: Any = "lint",
|
|
6861
7087
|
- shallowClone: Make a shallow clone of the repository (truncate the history to 1 revision)
|
6862
7088
|
- cloneBranchDirectly: Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail
|
6863
7089
|
- gitBasicAuthorization: Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64
|
7090
|
+
- gitBearerAuthorization: Use a bearer authorization header to access the git repo (e.g.: access to an Azure Devops repository), usually a string in Base64
|
6864
7091
|
- googleCloudBucketName: Name of the Google Cloud Storage bucket to use
|
6865
7092
|
- googleCloudKeysFile: Path to the gc_keys.json file
|
6866
7093
|
- googleCloudProjectId: ID of the Google Cloud project to use for authentication
|
@@ -6870,7 +7097,7 @@ func swiftlint(mode: Any = "lint",
|
|
6870
7097
|
- forceForNewDevices: Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile type 'appstore'
|
6871
7098
|
- skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
|
6872
7099
|
- skipDocs: Skip generation of a README.md for the created git repository
|
6873
|
-
- platform: Set the provisioning profile's platform to work with (i.e. ios, tvos)
|
7100
|
+
- platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos)
|
6874
7101
|
- templateName: The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
|
6875
7102
|
- outputPath: Path in which to export certificates, key and profile
|
6876
7103
|
- verbose: Print out extra information and all commands
|
@@ -6878,8 +7105,9 @@ func swiftlint(mode: Any = "lint",
|
|
6878
7105
|
More information: https://docs.fastlane.tools/actions/match/
|
6879
7106
|
*/
|
6880
7107
|
func syncCodeSigning(type: String = "development",
|
7108
|
+
additionalCertTypes: [String]? = nil,
|
6881
7109
|
readonly: Bool = false,
|
6882
|
-
generateAppleCerts: Bool =
|
7110
|
+
generateAppleCerts: Bool = true,
|
6883
7111
|
skipProvisioningProfiles: Bool = false,
|
6884
7112
|
appIdentifier: [String],
|
6885
7113
|
username: String,
|
@@ -6893,6 +7121,7 @@ func syncCodeSigning(type: String = "development",
|
|
6893
7121
|
shallowClone: Bool = false,
|
6894
7122
|
cloneBranchDirectly: Bool = false,
|
6895
7123
|
gitBasicAuthorization: String? = nil,
|
7124
|
+
gitBearerAuthorization: String? = nil,
|
6896
7125
|
googleCloudBucketName: String? = nil,
|
6897
7126
|
googleCloudKeysFile: String? = nil,
|
6898
7127
|
googleCloudProjectId: String? = nil,
|
@@ -6902,11 +7131,12 @@ func syncCodeSigning(type: String = "development",
|
|
6902
7131
|
forceForNewDevices: Bool = false,
|
6903
7132
|
skipConfirmation: Bool = false,
|
6904
7133
|
skipDocs: Bool = false,
|
6905
|
-
platform:
|
7134
|
+
platform: String = "ios",
|
6906
7135
|
templateName: String? = nil,
|
6907
7136
|
outputPath: String? = nil,
|
6908
7137
|
verbose: Bool = false) {
|
6909
7138
|
let command = RubyCommand(commandID: "", methodName: "sync_code_signing", className: nil, args: [RubyCommand.Argument(name: "type", value: type),
|
7139
|
+
RubyCommand.Argument(name: "additional_cert_types", value: additionalCertTypes),
|
6910
7140
|
RubyCommand.Argument(name: "readonly", value: readonly),
|
6911
7141
|
RubyCommand.Argument(name: "generate_apple_certs", value: generateAppleCerts),
|
6912
7142
|
RubyCommand.Argument(name: "skip_provisioning_profiles", value: skipProvisioningProfiles),
|
@@ -6922,6 +7152,7 @@ func syncCodeSigning(type: String = "development",
|
|
6922
7152
|
RubyCommand.Argument(name: "shallow_clone", value: shallowClone),
|
6923
7153
|
RubyCommand.Argument(name: "clone_branch_directly", value: cloneBranchDirectly),
|
6924
7154
|
RubyCommand.Argument(name: "git_basic_authorization", value: gitBasicAuthorization),
|
7155
|
+
RubyCommand.Argument(name: "git_bearer_authorization", value: gitBearerAuthorization),
|
6925
7156
|
RubyCommand.Argument(name: "google_cloud_bucket_name", value: googleCloudBucketName),
|
6926
7157
|
RubyCommand.Argument(name: "google_cloud_keys_file", value: googleCloudKeysFile),
|
6927
7158
|
RubyCommand.Argument(name: "google_cloud_project_id", value: googleCloudProjectId),
|
@@ -6969,6 +7200,7 @@ func teamName() {
|
|
6969
7200
|
- autoUpdate: Allows an easy upgrade of all users to the current version. To enable set to 'on'
|
6970
7201
|
- notify: Send email to testers
|
6971
7202
|
- options: Array of options (shake,video_only_wifi,anonymous)
|
7203
|
+
- custom: Array of custom options. Contact support@testfairy.com for more information
|
6972
7204
|
- timeout: Request timeout in seconds
|
6973
7205
|
|
6974
7206
|
You can retrieve your API key on [your settings page](https://free.testfairy.com/settings/)
|
@@ -6984,6 +7216,7 @@ func testfairy(apiKey: String,
|
|
6984
7216
|
autoUpdate: String = "off",
|
6985
7217
|
notify: String = "off",
|
6986
7218
|
options: [String] = [],
|
7219
|
+
custom: String = "",
|
6987
7220
|
timeout: Int? = nil) {
|
6988
7221
|
let command = RubyCommand(commandID: "", methodName: "testfairy", className: nil, args: [RubyCommand.Argument(name: "api_key", value: apiKey),
|
6989
7222
|
RubyCommand.Argument(name: "ipa", value: ipa),
|
@@ -6996,6 +7229,7 @@ func testfairy(apiKey: String,
|
|
6996
7229
|
RubyCommand.Argument(name: "auto_update", value: autoUpdate),
|
6997
7230
|
RubyCommand.Argument(name: "notify", value: notify),
|
6998
7231
|
RubyCommand.Argument(name: "options", value: options),
|
7232
|
+
RubyCommand.Argument(name: "custom", value: custom),
|
6999
7233
|
RubyCommand.Argument(name: "timeout", value: timeout)])
|
7000
7234
|
_ = runner.executeCommand(command)
|
7001
7235
|
}
|
@@ -7017,7 +7251,7 @@ func testfairy(apiKey: String,
|
|
7017
7251
|
- localizedBuildInfo: Localized beta app test info for what's new
|
7018
7252
|
- changelog: Provide the 'What to Test' text when uploading a new build. `skip_waiting_for_build_processing: false` is required to set the changelog
|
7019
7253
|
- skipSubmission: Skip the distributing action of pilot and only upload the ipa file
|
7020
|
-
- skipWaitingForBuildProcessing:
|
7254
|
+
- skipWaitingForBuildProcessing: If set to true, the `distribute_external` option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to `true` and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps
|
7021
7255
|
- updateBuildInfoOnUpload: **DEPRECATED!** Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default
|
7022
7256
|
- usesNonExemptEncryption: Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist
|
7023
7257
|
- distributeExternal: Should the build be distributed to external testers?
|
@@ -7319,7 +7553,7 @@ func updateKeychainAccessGroups(entitlementsFile: String,
|
|
7319
7553
|
- plistPath: Path to plist file
|
7320
7554
|
- block: A block to process plist with custom logic
|
7321
7555
|
|
7322
|
-
This action allows you to modify any `plist` file.
|
7556
|
+
This action allows you to modify any value inside any `plist` file.
|
7323
7557
|
*/
|
7324
7558
|
func updatePlist(plistPath: String? = nil,
|
7325
7559
|
block: Any) {
|
@@ -7535,8 +7769,8 @@ func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/api/0",
|
|
7535
7769
|
- overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
|
7536
7770
|
- submitForReview: Submit the new version for Review after uploading everything
|
7537
7771
|
- rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
|
7538
|
-
- automaticRelease: Should the app be automatically released once it's approved?
|
7539
|
-
- autoReleaseDate: Date in milliseconds for automatically releasing on pending approval
|
7772
|
+
- automaticRelease: Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
|
7773
|
+
- autoReleaseDate: Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)
|
7540
7774
|
- phasedRelease: Enable the phased release feature of iTC
|
7541
7775
|
- resetRatings: Reset the summary rating when you release a new version of the application
|
7542
7776
|
- priceTier: The price tier of this application
|
@@ -7819,6 +8053,45 @@ func uploadToPlayStore(packageName: String,
|
|
7819
8053
|
_ = runner.executeCommand(command)
|
7820
8054
|
}
|
7821
8055
|
|
8056
|
+
/**
|
8057
|
+
Upload binaries to Google Play Internal App Sharing (via _supply_)
|
8058
|
+
|
8059
|
+
- parameters:
|
8060
|
+
- packageName: The package name of the application to use
|
8061
|
+
- jsonKey: The path to a file containing service account JSON, used to authenticate with Google
|
8062
|
+
- jsonKeyData: The raw service account JSON data used to authenticate with Google
|
8063
|
+
- apk: Path to the APK file to upload
|
8064
|
+
- apkPaths: An array of paths to APK files to upload
|
8065
|
+
- aab: Path to the AAB file to upload
|
8066
|
+
- aabPaths: An array of paths to AAB files to upload
|
8067
|
+
- rootUrl: Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/
|
8068
|
+
- timeout: Timeout for read, open, and send (in seconds)
|
8069
|
+
|
8070
|
+
- returns: Returns a string containing the download URL for the uploaded APK/AAB (or array of strings if multiple were uploaded).
|
8071
|
+
|
8072
|
+
More information: https://docs.fastlane.tools/actions/upload_to_play_store_internal_app_sharing/
|
8073
|
+
*/
|
8074
|
+
func uploadToPlayStoreInternalAppSharing(packageName: String,
|
8075
|
+
jsonKey: String? = nil,
|
8076
|
+
jsonKeyData: String? = nil,
|
8077
|
+
apk: String? = nil,
|
8078
|
+
apkPaths: [String]? = nil,
|
8079
|
+
aab: String? = nil,
|
8080
|
+
aabPaths: [String]? = nil,
|
8081
|
+
rootUrl: String? = nil,
|
8082
|
+
timeout: Int = 300) {
|
8083
|
+
let command = RubyCommand(commandID: "", methodName: "upload_to_play_store_internal_app_sharing", className: nil, args: [RubyCommand.Argument(name: "package_name", value: packageName),
|
8084
|
+
RubyCommand.Argument(name: "json_key", value: jsonKey),
|
8085
|
+
RubyCommand.Argument(name: "json_key_data", value: jsonKeyData),
|
8086
|
+
RubyCommand.Argument(name: "apk", value: apk),
|
8087
|
+
RubyCommand.Argument(name: "apk_paths", value: apkPaths),
|
8088
|
+
RubyCommand.Argument(name: "aab", value: aab),
|
8089
|
+
RubyCommand.Argument(name: "aab_paths", value: aabPaths),
|
8090
|
+
RubyCommand.Argument(name: "root_url", value: rootUrl),
|
8091
|
+
RubyCommand.Argument(name: "timeout", value: timeout)])
|
8092
|
+
_ = runner.executeCommand(command)
|
8093
|
+
}
|
8094
|
+
|
7822
8095
|
/**
|
7823
8096
|
Upload new binary to App Store Connect for TestFlight beta testing (via _pilot_)
|
7824
8097
|
|
@@ -7836,7 +8109,7 @@ func uploadToPlayStore(packageName: String,
|
|
7836
8109
|
- localizedBuildInfo: Localized beta app test info for what's new
|
7837
8110
|
- changelog: Provide the 'What to Test' text when uploading a new build. `skip_waiting_for_build_processing: false` is required to set the changelog
|
7838
8111
|
- skipSubmission: Skip the distributing action of pilot and only upload the ipa file
|
7839
|
-
- skipWaitingForBuildProcessing:
|
8112
|
+
- skipWaitingForBuildProcessing: If set to true, the `distribute_external` option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to `true` and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps
|
7840
8113
|
- updateBuildInfoOnUpload: **DEPRECATED!** Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default
|
7841
8114
|
- usesNonExemptEncryption: Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist
|
7842
8115
|
- distributeExternal: Should the build be distributed to external testers?
|
@@ -8096,7 +8369,10 @@ func xcexport() {
|
|
8096
8369
|
/**
|
8097
8370
|
Change the xcode-path to use. Useful for beta versions of Xcode
|
8098
8371
|
|
8099
|
-
Select and build with the Xcode installed at the provided path.
|
8372
|
+
Select and build with the Xcode installed at the provided path.
|
8373
|
+
Use the `xcversion` action if you want to select an Xcode:
|
8374
|
+
- Based on a version specifier or
|
8375
|
+
- You don't have known, stable paths, as may happen in a CI environment.
|
8100
8376
|
*/
|
8101
8377
|
func xcodeSelect() {
|
8102
8378
|
let command = RubyCommand(commandID: "", methodName: "xcode_select", className: nil, args: [])
|
@@ -8211,7 +8487,7 @@ func xcov(workspace: String? = nil,
|
|
8211
8487
|
coverallsServiceJobId: String? = nil,
|
8212
8488
|
coverallsRepoToken: String? = nil,
|
8213
8489
|
xcconfig: String? = nil,
|
8214
|
-
ideFoundationPath: String = "/Applications/Xcode-
|
8490
|
+
ideFoundationPath: String = "/Applications/Xcode-11.3.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
|
8215
8491
|
legacySupport: Bool = false) {
|
8216
8492
|
let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
8217
8493
|
RubyCommand.Argument(name: "project", value: project),
|
@@ -8356,4 +8632,4 @@ let snapshotfile: Snapshotfile = Snapshotfile()
|
|
8356
8632
|
|
8357
8633
|
// Please don't remove the lines below
|
8358
8634
|
// They are used to detect outdated files
|
8359
|
-
// FastlaneRunnerAPIVersion [0.9.
|
8635
|
+
// FastlaneRunnerAPIVersion [0.9.69]
|