fastlane 2.187.0 → 2.191.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +94 -94
  3. data/deliver/lib/deliver/app_screenshot.rb +2 -1
  4. data/deliver/lib/deliver/app_screenshot_iterator.rb +2 -2
  5. data/deliver/lib/deliver/loader.rb +1 -1
  6. data/deliver/lib/deliver/options.rb +6 -0
  7. data/deliver/lib/deliver/runner.rb +9 -1
  8. data/deliver/lib/deliver/screenshot_comparable.rb +62 -0
  9. data/deliver/lib/deliver/sync_screenshots.rb +200 -0
  10. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +1 -1
  11. data/fastlane/lib/fastlane/actions/appledoc.rb +45 -45
  12. data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +1 -2
  13. data/fastlane/lib/fastlane/actions/bundle_install.rb +13 -1
  14. data/fastlane/lib/fastlane/actions/clean_cocoapods_cache.rb +25 -1
  15. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +2 -2
  16. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +2 -2
  17. data/fastlane/lib/fastlane/actions/gradle.rb +1 -1
  18. data/fastlane/lib/fastlane/actions/update_icloud_container_identifiers.rb +1 -4
  19. data/fastlane/lib/fastlane/actions/update_info_plist.rb +1 -1
  20. data/fastlane/lib/fastlane/actions/update_keychain_access_groups.rb +1 -4
  21. data/fastlane/lib/fastlane/actions/update_plist.rb +1 -1
  22. data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +2 -2
  23. data/fastlane/lib/fastlane/actions/update_urban_airship_configuration.rb +0 -1
  24. data/fastlane/lib/fastlane/actions/update_url_schemes.rb +15 -26
  25. data/fastlane/lib/fastlane/actions/upload_app_privacy_details_to_app_store.rb +1 -2
  26. data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +3 -10
  27. data/fastlane/lib/fastlane/actions/validate_play_store_json_key.rb +40 -44
  28. data/fastlane/lib/fastlane/actions/version_get_podspec.rb +1 -2
  29. data/fastlane/lib/fastlane/actions/xcode_server_get_assets.rb +3 -3
  30. data/fastlane/lib/fastlane/actions/zip.rb +86 -21
  31. data/fastlane/lib/fastlane/documentation/markdown_docs_generator.rb +1 -1
  32. data/fastlane/lib/fastlane/features.rb +3 -0
  33. data/fastlane/lib/fastlane/plugins/template/.circleci/config.yml +1 -1
  34. data/fastlane/lib/fastlane/plugins/template/.github/workflows/test.yml +1 -1
  35. data/fastlane/lib/fastlane/version.rb +1 -1
  36. data/fastlane/swift/Deliverfile.swift +1 -1
  37. data/fastlane/swift/DeliverfileProtocol.swift +5 -1
  38. data/fastlane/swift/Fastlane.swift +108 -46
  39. data/fastlane/swift/Gymfile.swift +1 -1
  40. data/fastlane/swift/GymfileProtocol.swift +1 -1
  41. data/fastlane/swift/Matchfile.swift +1 -1
  42. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  43. data/fastlane/swift/Precheckfile.swift +1 -1
  44. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  45. data/fastlane/swift/Scanfile.swift +1 -1
  46. data/fastlane/swift/ScanfileProtocol.swift +5 -1
  47. data/fastlane/swift/Screengrabfile.swift +1 -1
  48. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  49. data/fastlane/swift/Snapshotfile.swift +1 -1
  50. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  51. data/fastlane/swift/formatting/Brewfile.lock.json +17 -9
  52. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +11 -4
  53. data/fastlane_core/lib/fastlane_core/ui/disable_colors.rb +1 -0
  54. data/pilot/lib/pilot.rb +0 -1
  55. data/precheck/lib/precheck/module.rb +2 -0
  56. data/precheck/lib/precheck/options.rb +3 -3
  57. data/produce/lib/produce/commands_generator.rb +28 -0
  58. data/produce/lib/produce/service.rb +15 -0
  59. data/scan/lib/scan/detect_values.rb +22 -13
  60. data/scan/lib/scan/module.rb +1 -0
  61. data/scan/lib/scan/options.rb +12 -1
  62. data/scan/lib/scan/test_command_generator.rb +29 -6
  63. data/scan/lib/scan/xcpretty_reporter_options_generator.rb +1 -1
  64. data/screengrab/lib/screengrab/runner.rb +2 -2
  65. data/sigh/lib/sigh/options.rb +2 -1
  66. data/spaceship/lib/spaceship/client.rb +19 -3
  67. data/spaceship/lib/spaceship/connect_api.rb +1 -0
  68. data/spaceship/lib/spaceship/connect_api/models/app.rb +7 -0
  69. data/spaceship/lib/spaceship/connect_api/models/capabilities.rb +27 -0
  70. data/spaceship/lib/spaceship/connect_api/models/user.rb +17 -3
  71. data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +26 -5
  72. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +5 -0
  73. data/spaceship/lib/spaceship/connect_api/testflight/client.rb +3 -0
  74. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +39 -0
  75. data/spaceship/lib/spaceship/connect_api/token.rb +2 -1
  76. data/spaceship/lib/spaceship/connect_api/tunes/client.rb +3 -0
  77. data/spaceship/lib/spaceship/connect_api/users/client.rb +3 -0
  78. data/spaceship/lib/spaceship/connect_api/users/users.rb +58 -3
  79. data/spaceship/lib/spaceship/tunes/tunes_client.rb +3 -0
  80. data/supply/lib/supply/client.rb +7 -1
  81. data/supply/lib/supply/options.rb +5 -0
  82. data/supply/lib/supply/uploader.rb +1 -1
  83. metadata +26 -28
  84. data/fastlane/lib/fastlane/.erb_template_helper.rb.swp +0 -0
  85. data/gym/lib/gym/generators/.package_command_generator_xcode7.rb.swp +0 -0
  86. data/pilot/lib/pilot/features.rb +0 -0
  87. data/spaceship/lib/spaceship/.DS_Store +0 -0
  88. data/spaceship/lib/spaceship/connect_api/models/.app_store_version_submission.rb.swp +0 -0
@@ -28,7 +28,6 @@ module Fastlane
28
28
  FastlaneCore::ConfigItem.new(key: :path,
29
29
  env_name: "FL_VERSION_PODSPEC_PATH",
30
30
  description: "You must specify the path to the podspec file",
31
- is_string: true,
32
31
  code_gen_sensitive: true,
33
32
  default_value: Dir["*.podspec"].last,
34
33
  default_value_dynamic: true,
@@ -38,7 +37,7 @@ module Fastlane
38
37
  FastlaneCore::ConfigItem.new(key: :require_variable_prefix,
39
38
  env_name: "FL_VERSION_BUMP_PODSPEC_VERSION_REQUIRE_VARIABLE_PREFIX",
40
39
  description: "true by default, this is used for non CocoaPods version bumps only",
41
- is_string: false,
40
+ type: Boolean,
42
41
  default_value: true)
43
42
  ]
44
43
  end
@@ -243,7 +243,7 @@ module Fastlane
243
243
  FastlaneCore::ConfigItem.new(key: :integration_number,
244
244
  env_name: "FL_XCODE_SERVER_GET_ASSETS_INTEGRATION_NUMBER",
245
245
  description: "Optionally you can override which integration's assets should be downloaded. If not provided, the latest integration is used",
246
- is_string: false,
246
+ type: Integer,
247
247
  optional: true),
248
248
  FastlaneCore::ConfigItem.new(key: :username,
249
249
  env_name: "FL_XCODE_SERVER_GET_ASSETS_USERNAME",
@@ -265,13 +265,13 @@ module Fastlane
265
265
  env_name: "FL_XCODE_SERVER_GET_ASSETS_KEEP_ALL_ASSETS",
266
266
  description: "Whether to keep all assets or let the script delete everything except for the .xcarchive",
267
267
  optional: true,
268
- is_string: false,
268
+ type: Boolean,
269
269
  default_value: false),
270
270
  FastlaneCore::ConfigItem.new(key: :trust_self_signed_certs,
271
271
  env_name: "FL_XCODE_SERVER_GET_ASSETS_TRUST_SELF_SIGNED_CERTS",
272
272
  description: "Whether to trust self-signed certs on your Xcode Server",
273
273
  optional: true,
274
- is_string: false,
274
+ type: Boolean,
275
275
  default_value: true)
276
276
  ]
277
277
  end
@@ -1,35 +1,76 @@
1
1
  module Fastlane
2
2
  module Actions
3
3
  class ZipAction < Action
4
- def self.run(params)
5
- UI.message("Compressing #{params[:path]}...")
4
+ class Runner
5
+ attr_reader :output_path, :path, :verbose, :password, :symlinks, :include, :exclude
6
+
7
+ def initialize(params)
8
+ @output_path = File.expand_path(params[:output_path] || params[:path])
9
+ @path = params[:path]
10
+ @verbose = params[:verbose]
11
+ @password = params[:password]
12
+ @symlinks = params[:symlinks]
13
+ @include = params[:include]
14
+ @exclude = params[:exclude]
15
+
16
+ @output_path += ".zip" unless @output_path.end_with?(".zip")
17
+ end
18
+
19
+ def run
20
+ UI.message("Compressing #{path}...")
6
21
 
7
- params[:output_path] ||= params[:path]
22
+ create_output_dir
23
+ run_zip_command
8
24
 
9
- absolute_output_path = File.expand_path(params[:output_path])
25
+ UI.success("Successfully generated zip file at path '#{output_path}'")
26
+ output_path
27
+ end
10
28
 
11
- # Appends ".zip" if path does not end in ".zip"
12
- unless absolute_output_path.end_with?(".zip")
13
- absolute_output_path += ".zip"
29
+ def create_output_dir
30
+ output_dir = File.expand_path("..", output_path)
31
+ FileUtils.mkdir_p(output_dir)
14
32
  end
15
33
 
16
- absolute_output_dir = File.expand_path("..", absolute_output_path)
17
- FileUtils.mkdir_p(absolute_output_dir)
34
+ def run_zip_command
35
+ # The 'zip' command archives relative to the working directory, chdir to produce expected results relative to `path`
36
+ Dir.chdir(File.expand_path("..", path)) do
37
+ Actions.sh(zip_command)
38
+ end
39
+ end
40
+
41
+ def zip_command
42
+ zip_options = verbose ? "r" : "rq"
43
+ zip_options += "y" if symlinks
44
+
45
+ command = ["zip", "-#{zip_options}"]
46
+
47
+ if password
48
+ command << "-P"
49
+ command << password
50
+ end
51
+
52
+ # The zip command is executed from the paths **parent** directory, as a result we use just the basename, which is the file or folder within
53
+ basename = File.basename(path)
18
54
 
19
- Dir.chdir(File.expand_path("..", params[:path])) do # required to properly zip
20
- zip_options = params[:verbose] ? "r" : "rq"
21
- zip_options += "y" if params[:symlinks]
55
+ command << output_path.shellescape
56
+ command << basename.shellescape
22
57
 
23
- if params[:password]
24
- password_option = "-P '#{params[:password]}'"
25
- Actions.sh("zip -#{zip_options} #{password_option} #{absolute_output_path.shellescape} #{File.basename(params[:path]).shellescape}")
26
- else
27
- Actions.sh("zip -#{zip_options} #{absolute_output_path.shellescape} #{File.basename(params[:path]).shellescape}")
58
+ unless include.empty?
59
+ command << "-i"
60
+ command += include.map { |path| File.join(basename, path) }
28
61
  end
62
+
63
+ unless exclude.empty?
64
+ command << "-x"
65
+ command += exclude.map { |path| File.join(basename, path) }
66
+ end
67
+
68
+ command
29
69
  end
70
+ end
30
71
 
31
- UI.success("Successfully generated zip file at path '#{File.expand_path(absolute_output_path)}'")
32
- return File.expand_path(absolute_output_path)
72
+ def self.run(params)
73
+ Runner.new(params).run
33
74
  end
34
75
 
35
76
  #####################################################
@@ -46,7 +87,8 @@ module Fastlane
46
87
  env_name: "FL_ZIP_PATH",
47
88
  description: "Path to the directory or file to be zipped",
48
89
  verify_block: proc do |value|
49
- UI.user_error!("Couldn't find file/folder at path '#{File.expand_path(value)}'") unless File.exist?(value)
90
+ path = File.expand_path(value)
91
+ UI.user_error!("Couldn't find file/folder at path '#{path}'") unless File.exist?(path)
50
92
  end),
51
93
  FastlaneCore::ConfigItem.new(key: :output_path,
52
94
  env_name: "FL_ZIP_OUTPUT_NAME",
@@ -67,7 +109,19 @@ module Fastlane
67
109
  description: "Store symbolic links as such in the zip archive",
68
110
  optional: true,
69
111
  type: Boolean,
70
- default_value: false)
112
+ default_value: false),
113
+ FastlaneCore::ConfigItem.new(key: :include,
114
+ env_name: "FL_ZIP_INCLUDE",
115
+ description: "Array of paths or patterns to include",
116
+ optional: true,
117
+ type: Array,
118
+ default_value: []),
119
+ FastlaneCore::ConfigItem.new(key: :exclude,
120
+ env_name: "FL_ZIP_EXCLUDE",
121
+ description: "Array of paths or patterns to exclude",
122
+ optional: true,
123
+ type: Array,
124
+ default_value: [])
71
125
  ]
72
126
  end
73
127
 
@@ -88,6 +142,17 @@ module Fastlane
88
142
  output_path: "Latest.app.zip",
89
143
  verbose: false,
90
144
  symlinks: true
145
+ )',
146
+ 'zip(
147
+ path: "./",
148
+ output_path: "Source Code.zip",
149
+ exclude: [".git/*"]
150
+ )',
151
+ 'zip(
152
+ path: "./",
153
+ output_path: "Swift Code.zip",
154
+ include: ["**/*.swift"],
155
+ exclude: ["Package.swift", "vendor/*", "Pods/*"]
91
156
  )'
92
157
  ]
93
158
  end
@@ -175,7 +175,7 @@ module Fastlane
175
175
  mkdocs_yml_path = File.join(target_path, "mkdocs.yml")
176
176
  raise "Could not find mkdocs.yml in #{target_path}, make sure to point to the fastlane/docs repo" unless File.exist?(mkdocs_yml_path)
177
177
  mkdocs_yml = YAML.load_file(mkdocs_yml_path)
178
- hidden_actions_array = mkdocs_yml["pages"].find { |p| !p["_Actions"].nil? }
178
+ hidden_actions_array = mkdocs_yml["nav"].find { |p| !p["_Actions"].nil? }
179
179
  hidden_actions_array["_Actions"] = all_actions_ref_yml
180
180
  File.write(mkdocs_yml_path, mkdocs_yml.to_yaml)
181
181
 
@@ -2,3 +2,6 @@
2
2
 
3
3
  # FastlaneCore::Feature.register(env_var: 'YOUR_FEATURE_SWITCH_ENV_VAR',
4
4
  # description: 'Describe what this feature switch controls')
5
+
6
+ FastlaneCore::Feature.register(env_var: 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS',
7
+ description: 'Use a newly implemented screenshots synchronization logic')
@@ -7,7 +7,7 @@ jobs:
7
7
  build:
8
8
  docker:
9
9
  # specify the version you desire here
10
- - image: circleci/ruby:2.4.2
10
+ - image: circleci/ruby:2.5
11
11
 
12
12
  working_directory: ~/repo
13
13
 
@@ -17,7 +17,7 @@ jobs:
17
17
  - name: Set up Ruby
18
18
  uses: ruby/setup-ruby@v1
19
19
  with:
20
- ruby-version: 2.4
20
+ ruby-version: 2.5
21
21
  - name: Install dependencies
22
22
  run: bundle check || bundle install --jobs=4 --retry=3 --path vendor/bundle
23
23
  - name: Run tests
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.187.0'.freeze
2
+ VERSION = '2.191.0'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  MINIMUM_XCODE_RELEASE = "7.0".freeze
5
5
  RUBOCOP_REQUIREMENT = '1.12.1'.freeze
@@ -17,4 +17,4 @@ public class Deliverfile: DeliverfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.187.0
20
+ // Generated with fastlane 2.191.0
@@ -59,6 +59,9 @@ public protocol DeliverfileProtocol: class {
59
59
  /// Clear all previously uploaded screenshots before uploading the new ones
60
60
  var overwriteScreenshots: Bool { get }
61
61
 
62
+ /// Sync screenshots with local ones. This is currently beta optionso set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
63
+ var syncScreenshots: Bool { get }
64
+
62
65
  /// Submit the new version for Review after uploading everything
63
66
  var submitForReview: Bool { get }
64
67
 
@@ -209,6 +212,7 @@ public extension DeliverfileProtocol {
209
212
  var skipAppVersionUpdate: Bool { return false }
210
213
  var force: Bool { return false }
211
214
  var overwriteScreenshots: Bool { return false }
215
+ var syncScreenshots: Bool { return false }
212
216
  var submitForReview: Bool { return false }
213
217
  var rejectIfPossible: Bool { return false }
214
218
  var automaticRelease: Bool? { return nil }
@@ -256,4 +260,4 @@ public extension DeliverfileProtocol {
256
260
 
257
261
  // Please don't remove the lines below
258
262
  // They are used to detect outdated files
259
- // FastlaneRunnerAPIVersion [0.9.75]
263
+ // FastlaneRunnerAPIVersion [0.9.79]
@@ -204,7 +204,7 @@ public func appStoreConnectApiKey(keyId: String,
204
204
  keyFilepath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
205
205
  keyContent: OptionalConfigValue<String?> = .fastlaneDefault(nil),
206
206
  isKeyContentBase64: OptionalConfigValue<Bool> = .fastlaneDefault(false),
207
- duration: Int = 1200,
207
+ duration: Int = 500,
208
208
  inHouse: OptionalConfigValue<Bool> = .fastlaneDefault(false),
209
209
  setSpaceshipToken: OptionalConfigValue<Bool> = .fastlaneDefault(true))
210
210
  {
@@ -495,13 +495,13 @@ public func appium(platform: String,
495
495
 
496
496
  Runs `appledoc [OPTIONS] <paths to source dirs or files>` for the project
497
497
  */
498
- public func appledoc(input: Any,
498
+ public func appledoc(input: [String],
499
499
  output: OptionalConfigValue<String?> = .fastlaneDefault(nil),
500
500
  templates: OptionalConfigValue<String?> = .fastlaneDefault(nil),
501
501
  docsetInstallPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
502
502
  include: OptionalConfigValue<String?> = .fastlaneDefault(nil),
503
- ignore: Any? = nil,
504
- excludeOutput: Any? = nil,
503
+ ignore: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
504
+ excludeOutput: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
505
505
  indexDesc: OptionalConfigValue<String?> = .fastlaneDefault(nil),
506
506
  projectName: String,
507
507
  projectVersion: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -538,16 +538,16 @@ public func appledoc(input: Any,
538
538
  exitThreshold: Int = 2,
539
539
  docsSectionTitle: OptionalConfigValue<String?> = .fastlaneDefault(nil),
540
540
  warnings: OptionalConfigValue<String?> = .fastlaneDefault(nil),
541
- logformat: Any? = nil,
542
- verbose: Any? = nil)
541
+ logformat: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
542
+ verbose: OptionalConfigValue<String?> = .fastlaneDefault(nil))
543
543
  {
544
544
  let inputArg = RubyCommand.Argument(name: "input", value: input, type: nil)
545
545
  let outputArg = output.asRubyArgument(name: "output", type: nil)
546
546
  let templatesArg = templates.asRubyArgument(name: "templates", type: nil)
547
547
  let docsetInstallPathArg = docsetInstallPath.asRubyArgument(name: "docset_install_path", type: nil)
548
548
  let includeArg = include.asRubyArgument(name: "include", type: nil)
549
- let ignoreArg = RubyCommand.Argument(name: "ignore", value: ignore, type: nil)
550
- let excludeOutputArg = RubyCommand.Argument(name: "exclude_output", value: excludeOutput, type: nil)
549
+ let ignoreArg = ignore.asRubyArgument(name: "ignore", type: nil)
550
+ let excludeOutputArg = excludeOutput.asRubyArgument(name: "exclude_output", type: nil)
551
551
  let indexDescArg = indexDesc.asRubyArgument(name: "index_desc", type: nil)
552
552
  let projectNameArg = RubyCommand.Argument(name: "project_name", value: projectName, type: nil)
553
553
  let projectVersionArg = projectVersion.asRubyArgument(name: "project_version", type: nil)
@@ -584,8 +584,8 @@ public func appledoc(input: Any,
584
584
  let exitThresholdArg = RubyCommand.Argument(name: "exit_threshold", value: exitThreshold, type: nil)
585
585
  let docsSectionTitleArg = docsSectionTitle.asRubyArgument(name: "docs_section_title", type: nil)
586
586
  let warningsArg = warnings.asRubyArgument(name: "warnings", type: nil)
587
- let logformatArg = RubyCommand.Argument(name: "logformat", value: logformat, type: nil)
588
- let verboseArg = RubyCommand.Argument(name: "verbose", value: verbose, type: nil)
587
+ let logformatArg = logformat.asRubyArgument(name: "logformat", type: nil)
588
+ let verboseArg = verbose.asRubyArgument(name: "verbose", type: nil)
589
589
  let array: [RubyCommand.Argument?] = [inputArg,
590
590
  outputArg,
591
591
  templatesArg,
@@ -661,6 +661,7 @@ public func appledoc(input: Any,
661
661
  - skipAppVersionUpdate: Don’t create or update the app version that is being prepared for submission
662
662
  - force: Skip verification of HTML preview file
663
663
  - overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
664
+ - syncScreenshots: Sync screenshots with local ones. This is currently beta optionso set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
664
665
  - submitForReview: Submit the new version for Review after uploading everything
665
666
  - rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
666
667
  - automaticRelease: Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
@@ -731,6 +732,7 @@ public func appstore(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault
731
732
  skipAppVersionUpdate: OptionalConfigValue<Bool> = .fastlaneDefault(false),
732
733
  force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
733
734
  overwriteScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
735
+ syncScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
734
736
  submitForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
735
737
  rejectIfPossible: OptionalConfigValue<Bool> = .fastlaneDefault(false),
736
738
  automaticRelease: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
@@ -794,6 +796,7 @@ public func appstore(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault
794
796
  let skipAppVersionUpdateArg = skipAppVersionUpdate.asRubyArgument(name: "skip_app_version_update", type: nil)
795
797
  let forceArg = force.asRubyArgument(name: "force", type: nil)
796
798
  let overwriteScreenshotsArg = overwriteScreenshots.asRubyArgument(name: "overwrite_screenshots", type: nil)
799
+ let syncScreenshotsArg = syncScreenshots.asRubyArgument(name: "sync_screenshots", type: nil)
797
800
  let submitForReviewArg = submitForReview.asRubyArgument(name: "submit_for_review", type: nil)
798
801
  let rejectIfPossibleArg = rejectIfPossible.asRubyArgument(name: "reject_if_possible", type: nil)
799
802
  let automaticReleaseArg = automaticRelease.asRubyArgument(name: "automatic_release", type: nil)
@@ -856,6 +859,7 @@ public func appstore(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault
856
859
  skipAppVersionUpdateArg,
857
860
  forceArg,
858
861
  overwriteScreenshotsArg,
862
+ syncScreenshotsArg,
859
863
  submitForReviewArg,
860
864
  rejectIfPossibleArg,
861
865
  automaticReleaseArg,
@@ -1888,6 +1892,8 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1888
1892
  - trustPolicy: Sets level of security when dealing with signed gems. Accepts `LowSecurity`, `MediumSecurity` and `HighSecurity` as values
1889
1893
  - without: Exclude gems that are part of the specified named group
1890
1894
  - with: Include gems that are part of the specified named group
1895
+ - frozen: Don't allow the Gemfile.lock to be updated after install
1896
+ - redownload: Force download every gem, even if the required versions are already available locally
1891
1897
  */
1892
1898
  public func bundleInstall(binstubs: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1893
1899
  clean: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -1906,7 +1912,9 @@ public func bundleInstall(binstubs: OptionalConfigValue<String?> = .fastlaneDefa
1906
1912
  standalone: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1907
1913
  trustPolicy: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1908
1914
  without: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1909
- with: OptionalConfigValue<String?> = .fastlaneDefault(nil))
1915
+ with: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1916
+ frozen: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1917
+ redownload: OptionalConfigValue<Bool> = .fastlaneDefault(false))
1910
1918
  {
1911
1919
  let binstubsArg = binstubs.asRubyArgument(name: "binstubs", type: nil)
1912
1920
  let cleanArg = clean.asRubyArgument(name: "clean", type: nil)
@@ -1926,6 +1934,8 @@ public func bundleInstall(binstubs: OptionalConfigValue<String?> = .fastlaneDefa
1926
1934
  let trustPolicyArg = trustPolicy.asRubyArgument(name: "trust_policy", type: nil)
1927
1935
  let withoutArg = without.asRubyArgument(name: "without", type: nil)
1928
1936
  let withArg = with.asRubyArgument(name: "with", type: nil)
1937
+ let frozenArg = frozen.asRubyArgument(name: "frozen", type: nil)
1938
+ let redownloadArg = redownload.asRubyArgument(name: "redownload", type: nil)
1929
1939
  let array: [RubyCommand.Argument?] = [binstubsArg,
1930
1940
  cleanArg,
1931
1941
  fullIndexArg,
@@ -1943,7 +1953,9 @@ public func bundleInstall(binstubs: OptionalConfigValue<String?> = .fastlaneDefa
1943
1953
  standaloneArg,
1944
1954
  trustPolicyArg,
1945
1955
  withoutArg,
1946
- withArg]
1956
+ withArg,
1957
+ frozenArg,
1958
+ redownloadArg]
1947
1959
  let args: [RubyCommand.Argument] = array
1948
1960
  .filter { $0?.value != nil }
1949
1961
  .compactMap { $0 }
@@ -2771,7 +2783,7 @@ public func chatwork(apiToken: String,
2771
2783
  teamId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2772
2784
  teamName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2773
2785
  platform: String = "ios",
2774
- defaultRuleLevel: Any = "error",
2786
+ defaultRuleLevel: String = "error",
2775
2787
  includeInAppPurchases: OptionalConfigValue<Bool> = .fastlaneDefault(true),
2776
2788
  useLive: OptionalConfigValue<Bool> = .fastlaneDefault(false),
2777
2789
  negativeAppleSentiment: Any? = nil,
@@ -2854,11 +2866,29 @@ public func cleanBuildArtifacts(excludePattern: OptionalConfigValue<String?> = .
2854
2866
  /**
2855
2867
  Remove the cache for pods
2856
2868
 
2857
- - parameter name: Pod name to be removed from cache
2869
+ - parameters:
2870
+ - name: Pod name to be removed from cache
2871
+ - noAnsi: Show output without ANSI codes
2872
+ - verbose: Show more debugging information
2873
+ - silent: Show nothing
2874
+ - allowRoot: Allows CocoaPods to run as root
2858
2875
  */
2859
- public func cleanCocoapodsCache(name: OptionalConfigValue<String?> = .fastlaneDefault(nil)) {
2876
+ public func cleanCocoapodsCache(name: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2877
+ noAnsi: OptionalConfigValue<Bool> = .fastlaneDefault(false),
2878
+ verbose: OptionalConfigValue<Bool> = .fastlaneDefault(false),
2879
+ silent: OptionalConfigValue<Bool> = .fastlaneDefault(false),
2880
+ allowRoot: OptionalConfigValue<Bool> = .fastlaneDefault(false))
2881
+ {
2860
2882
  let nameArg = name.asRubyArgument(name: "name", type: nil)
2861
- let array: [RubyCommand.Argument?] = [nameArg]
2883
+ let noAnsiArg = noAnsi.asRubyArgument(name: "no_ansi", type: nil)
2884
+ let verboseArg = verbose.asRubyArgument(name: "verbose", type: nil)
2885
+ let silentArg = silent.asRubyArgument(name: "silent", type: nil)
2886
+ let allowRootArg = allowRoot.asRubyArgument(name: "allow_root", type: nil)
2887
+ let array: [RubyCommand.Argument?] = [nameArg,
2888
+ noAnsiArg,
2889
+ verboseArg,
2890
+ silentArg,
2891
+ allowRootArg]
2862
2892
  let args: [RubyCommand.Argument] = array
2863
2893
  .filter { $0?.value != nil }
2864
2894
  .compactMap { $0 }
@@ -3642,6 +3672,7 @@ public func deleteKeychain(name: OptionalConfigValue<String?> = .fastlaneDefault
3642
3672
  - skipAppVersionUpdate: Don’t create or update the app version that is being prepared for submission
3643
3673
  - force: Skip verification of HTML preview file
3644
3674
  - overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
3675
+ - syncScreenshots: Sync screenshots with local ones. This is currently beta optionso set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
3645
3676
  - submitForReview: Submit the new version for Review after uploading everything
3646
3677
  - rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
3647
3678
  - automaticRelease: Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
@@ -3712,6 +3743,7 @@ public func deliver(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(
3712
3743
  skipAppVersionUpdate: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.skipAppVersionUpdate),
3713
3744
  force: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.force),
3714
3745
  overwriteScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.overwriteScreenshots),
3746
+ syncScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.syncScreenshots),
3715
3747
  submitForReview: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.submitForReview),
3716
3748
  rejectIfPossible: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.rejectIfPossible),
3717
3749
  automaticRelease: OptionalConfigValue<Bool?> = .fastlaneDefault(deliverfile.automaticRelease),
@@ -3775,6 +3807,7 @@ public func deliver(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(
3775
3807
  let skipAppVersionUpdateArg = skipAppVersionUpdate.asRubyArgument(name: "skip_app_version_update", type: nil)
3776
3808
  let forceArg = force.asRubyArgument(name: "force", type: nil)
3777
3809
  let overwriteScreenshotsArg = overwriteScreenshots.asRubyArgument(name: "overwrite_screenshots", type: nil)
3810
+ let syncScreenshotsArg = syncScreenshots.asRubyArgument(name: "sync_screenshots", type: nil)
3778
3811
  let submitForReviewArg = submitForReview.asRubyArgument(name: "submit_for_review", type: nil)
3779
3812
  let rejectIfPossibleArg = rejectIfPossible.asRubyArgument(name: "reject_if_possible", type: nil)
3780
3813
  let automaticReleaseArg = automaticRelease.asRubyArgument(name: "automatic_release", type: nil)
@@ -3837,6 +3870,7 @@ public func deliver(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(
3837
3870
  skipAppVersionUpdateArg,
3838
3871
  forceArg,
3839
3872
  overwriteScreenshotsArg,
3873
+ syncScreenshotsArg,
3840
3874
  submitForReviewArg,
3841
3875
  rejectIfPossibleArg,
3842
3876
  automaticReleaseArg,
@@ -4102,7 +4136,7 @@ public func downloadDsyms(username: String,
4102
4136
  public func downloadFromPlayStore(packageName: String,
4103
4137
  versionName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
4104
4138
  track: String = "production",
4105
- metadataPath: String = "./metadata",
4139
+ metadataPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
4106
4140
  key: OptionalConfigValue<String?> = .fastlaneDefault(nil),
4107
4141
  issuer: OptionalConfigValue<String?> = .fastlaneDefault(nil),
4108
4142
  jsonKey: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -4113,7 +4147,7 @@ public func downloadFromPlayStore(packageName: String,
4113
4147
  let packageNameArg = RubyCommand.Argument(name: "package_name", value: packageName, type: nil)
4114
4148
  let versionNameArg = versionName.asRubyArgument(name: "version_name", type: nil)
4115
4149
  let trackArg = RubyCommand.Argument(name: "track", value: track, type: nil)
4116
- let metadataPathArg = RubyCommand.Argument(name: "metadata_path", value: metadataPath, type: nil)
4150
+ let metadataPathArg = metadataPath.asRubyArgument(name: "metadata_path", type: nil)
4117
4151
  let keyArg = key.asRubyArgument(name: "key", type: nil)
4118
4152
  let issuerArg = issuer.asRubyArgument(name: "issuer", type: nil)
4119
4153
  let jsonKeyArg = jsonKey.asRubyArgument(name: "json_key", type: nil)
@@ -8467,6 +8501,7 @@ public func rubyVersion() {
8467
8501
  - parameters:
8468
8502
  - workspace: Path to the workspace file
8469
8503
  - project: Path to the project file
8504
+ - packagePath: Path to the Swift Package
8470
8505
  - scheme: The project's scheme. Make sure it's marked as `Shared`
8471
8506
  - device: The name of the simulator type you want to run tests on (e.g. 'iPhone 6')
8472
8507
  - devices: Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air'])
@@ -8541,6 +8576,7 @@ public func rubyVersion() {
8541
8576
  */
8542
8577
  public func runTests(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8543
8578
  project: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8579
+ packagePath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8544
8580
  scheme: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8545
8581
  device: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8546
8582
  devices: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
@@ -8613,6 +8649,7 @@ public func runTests(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
8613
8649
  {
8614
8650
  let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
8615
8651
  let projectArg = project.asRubyArgument(name: "project", type: nil)
8652
+ let packagePathArg = packagePath.asRubyArgument(name: "package_path", type: nil)
8616
8653
  let schemeArg = scheme.asRubyArgument(name: "scheme", type: nil)
8617
8654
  let deviceArg = device.asRubyArgument(name: "device", type: nil)
8618
8655
  let devicesArg = devices.asRubyArgument(name: "devices", type: nil)
@@ -8684,6 +8721,7 @@ public func runTests(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
8684
8721
  let failBuildArg = failBuild.asRubyArgument(name: "fail_build", type: nil)
8685
8722
  let array: [RubyCommand.Argument?] = [workspaceArg,
8686
8723
  projectArg,
8724
+ packagePathArg,
8687
8725
  schemeArg,
8688
8726
  deviceArg,
8689
8727
  devicesArg,
@@ -8868,6 +8906,7 @@ public func say(text: [String],
8868
8906
  - parameters:
8869
8907
  - workspace: Path to the workspace file
8870
8908
  - project: Path to the project file
8909
+ - packagePath: Path to the Swift Package
8871
8910
  - scheme: The project's scheme. Make sure it's marked as `Shared`
8872
8911
  - device: The name of the simulator type you want to run tests on (e.g. 'iPhone 6')
8873
8912
  - devices: Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air'])
@@ -8942,6 +8981,7 @@ public func say(text: [String],
8942
8981
  */
8943
8982
  public func scan(workspace: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.workspace),
8944
8983
  project: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.project),
8984
+ packagePath: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.packagePath),
8945
8985
  scheme: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.scheme),
8946
8986
  device: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.device),
8947
8987
  devices: OptionalConfigValue<[String]?> = .fastlaneDefault(scanfile.devices),
@@ -9014,6 +9054,7 @@ public func scan(workspace: OptionalConfigValue<String?> = .fastlaneDefault(scan
9014
9054
  {
9015
9055
  let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
9016
9056
  let projectArg = project.asRubyArgument(name: "project", type: nil)
9057
+ let packagePathArg = packagePath.asRubyArgument(name: "package_path", type: nil)
9017
9058
  let schemeArg = scheme.asRubyArgument(name: "scheme", type: nil)
9018
9059
  let deviceArg = device.asRubyArgument(name: "device", type: nil)
9019
9060
  let devicesArg = devices.asRubyArgument(name: "devices", type: nil)
@@ -9085,6 +9126,7 @@ public func scan(workspace: OptionalConfigValue<String?> = .fastlaneDefault(scan
9085
9126
  let failBuildArg = failBuild.asRubyArgument(name: "fail_build", type: nil)
9086
9127
  let array: [RubyCommand.Argument?] = [workspaceArg,
9087
9128
  projectArg,
9129
+ packagePathArg,
9088
9130
  schemeArg,
9089
9131
  deviceArg,
9090
9132
  devicesArg,
@@ -10629,6 +10671,7 @@ public func ssh(username: String,
10629
10671
  - timeout: Timeout for read, open, and send (in seconds)
10630
10672
  - deactivateOnPromote: **DEPRECATED!** Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track
10631
10673
  - versionCodesToRetain: An array of version codes to retain when publishing a new APK
10674
+ - changesNotSentForReview: Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI
10632
10675
  - inAppUpdatePriority: In-app update priority for all the newly added apks in the release. Can take values between [0,5]
10633
10676
  - obbMainReferencesVersion: References version of 'main' expansion file
10634
10677
  - obbMainFileSize: Size of 'main' expansion file in bytes
@@ -10644,7 +10687,7 @@ public func supply(packageName: String,
10644
10687
  releaseStatus: String = "completed",
10645
10688
  track: String = "production",
10646
10689
  rollout: OptionalConfigValue<String?> = .fastlaneDefault(nil),
10647
- metadataPath: String = "./metadata",
10690
+ metadataPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
10648
10691
  key: OptionalConfigValue<String?> = .fastlaneDefault(nil),
10649
10692
  issuer: OptionalConfigValue<String?> = .fastlaneDefault(nil),
10650
10693
  jsonKey: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -10668,6 +10711,7 @@ public func supply(packageName: String,
10668
10711
  timeout: Int = 300,
10669
10712
  deactivateOnPromote: OptionalConfigValue<Bool> = .fastlaneDefault(true),
10670
10713
  versionCodesToRetain: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
10714
+ changesNotSentForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
10671
10715
  inAppUpdatePriority: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
10672
10716
  obbMainReferencesVersion: OptionalConfigValue<String?> = .fastlaneDefault(nil),
10673
10717
  obbMainFileSize: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -10681,7 +10725,7 @@ public func supply(packageName: String,
10681
10725
  let releaseStatusArg = RubyCommand.Argument(name: "release_status", value: releaseStatus, type: nil)
10682
10726
  let trackArg = RubyCommand.Argument(name: "track", value: track, type: nil)
10683
10727
  let rolloutArg = rollout.asRubyArgument(name: "rollout", type: nil)
10684
- let metadataPathArg = RubyCommand.Argument(name: "metadata_path", value: metadataPath, type: nil)
10728
+ let metadataPathArg = metadataPath.asRubyArgument(name: "metadata_path", type: nil)
10685
10729
  let keyArg = key.asRubyArgument(name: "key", type: nil)
10686
10730
  let issuerArg = issuer.asRubyArgument(name: "issuer", type: nil)
10687
10731
  let jsonKeyArg = jsonKey.asRubyArgument(name: "json_key", type: nil)
@@ -10705,6 +10749,7 @@ public func supply(packageName: String,
10705
10749
  let timeoutArg = RubyCommand.Argument(name: "timeout", value: timeout, type: nil)
10706
10750
  let deactivateOnPromoteArg = deactivateOnPromote.asRubyArgument(name: "deactivate_on_promote", type: nil)
10707
10751
  let versionCodesToRetainArg = versionCodesToRetain.asRubyArgument(name: "version_codes_to_retain", type: nil)
10752
+ let changesNotSentForReviewArg = changesNotSentForReview.asRubyArgument(name: "changes_not_sent_for_review", type: nil)
10708
10753
  let inAppUpdatePriorityArg = inAppUpdatePriority.asRubyArgument(name: "in_app_update_priority", type: nil)
10709
10754
  let obbMainReferencesVersionArg = obbMainReferencesVersion.asRubyArgument(name: "obb_main_references_version", type: nil)
10710
10755
  let obbMainFileSizeArg = obbMainFileSize.asRubyArgument(name: "obb_main_file_size", type: nil)
@@ -10741,6 +10786,7 @@ public func supply(packageName: String,
10741
10786
  timeoutArg,
10742
10787
  deactivateOnPromoteArg,
10743
10788
  versionCodesToRetainArg,
10789
+ changesNotSentForReviewArg,
10744
10790
  inAppUpdatePriorityArg,
10745
10791
  obbMainReferencesVersionArg,
10746
10792
  obbMainFileSizeArg,
@@ -11531,7 +11577,7 @@ public func updateFastlane(noUpdate: OptionalConfigValue<Bool> = .fastlaneDefaul
11531
11577
  Updates the iCloud Container Identifiers in the given Entitlements file, so you can use different iCloud containers for different builds like Adhoc, App Store, etc.
11532
11578
  */
11533
11579
  public func updateIcloudContainerIdentifiers(entitlementsFile: String,
11534
- icloudContainerIdentifiers: Any)
11580
+ icloudContainerIdentifiers: [String])
11535
11581
  {
11536
11582
  let entitlementsFileArg = RubyCommand.Argument(name: "entitlements_file", value: entitlementsFile, type: nil)
11537
11583
  let icloudContainerIdentifiersArg = RubyCommand.Argument(name: "icloud_container_identifiers", value: icloudContainerIdentifiers, type: nil)
@@ -11562,14 +11608,14 @@ public func updateInfoPlist(xcodeproj: OptionalConfigValue<String?> = .fastlaneD
11562
11608
  scheme: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11563
11609
  appIdentifier: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11564
11610
  displayName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11565
- block: Any? = nil)
11611
+ block: ((String) -> Void)? = nil)
11566
11612
  {
11567
11613
  let xcodeprojArg = xcodeproj.asRubyArgument(name: "xcodeproj", type: nil)
11568
11614
  let plistPathArg = plistPath.asRubyArgument(name: "plist_path", type: nil)
11569
11615
  let schemeArg = scheme.asRubyArgument(name: "scheme", type: nil)
11570
11616
  let appIdentifierArg = appIdentifier.asRubyArgument(name: "app_identifier", type: nil)
11571
11617
  let displayNameArg = displayName.asRubyArgument(name: "display_name", type: nil)
11572
- let blockArg = RubyCommand.Argument(name: "block", value: block, type: nil)
11618
+ let blockArg = RubyCommand.Argument(name: "block", value: block, type: .stringClosure)
11573
11619
  let array: [RubyCommand.Argument?] = [xcodeprojArg,
11574
11620
  plistPathArg,
11575
11621
  schemeArg,
@@ -11593,7 +11639,7 @@ public func updateInfoPlist(xcodeproj: OptionalConfigValue<String?> = .fastlaneD
11593
11639
  Updates the Keychain Group Access Groups in the given Entitlements file, so you can have keychain access groups for the app store build and keychain access groups for an enterprise build.
11594
11640
  */
11595
11641
  public func updateKeychainAccessGroups(entitlementsFile: String,
11596
- identifiers: Any)
11642
+ identifiers: [String])
11597
11643
  {
11598
11644
  let entitlementsFileArg = RubyCommand.Argument(name: "entitlements_file", value: entitlementsFile, type: nil)
11599
11645
  let identifiersArg = RubyCommand.Argument(name: "identifiers", value: identifiers, type: nil)
@@ -11616,10 +11662,10 @@ public func updateKeychainAccessGroups(entitlementsFile: String,
11616
11662
  This action allows you to modify any value inside any `plist` file.
11617
11663
  */
11618
11664
  public func updatePlist(plistPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11619
- block: Any)
11665
+ block: ((String) -> Void)? = nil)
11620
11666
  {
11621
11667
  let plistPathArg = plistPath.asRubyArgument(name: "plist_path", type: nil)
11622
- let blockArg = RubyCommand.Argument(name: "block", value: block, type: nil)
11668
+ let blockArg = RubyCommand.Argument(name: "block", value: block, type: .stringClosure)
11623
11669
  let array: [RubyCommand.Argument?] = [plistPathArg,
11624
11670
  blockArg]
11625
11671
  let args: [RubyCommand.Argument] = array
@@ -11675,17 +11721,17 @@ public func updateProjectCodeSigning(path: String,
11675
11721
  */
11676
11722
  public func updateProjectProvisioning(xcodeproj: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11677
11723
  profile: String,
11678
- targetFilter: Any? = nil,
11724
+ targetFilter: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11679
11725
  buildConfigurationFilter: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11680
- buildConfiguration: Any? = nil,
11726
+ buildConfiguration: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11681
11727
  certificate: String = "/tmp/AppleIncRootCertificate.cer",
11682
11728
  codeSigningIdentity: OptionalConfigValue<String?> = .fastlaneDefault(nil))
11683
11729
  {
11684
11730
  let xcodeprojArg = xcodeproj.asRubyArgument(name: "xcodeproj", type: nil)
11685
11731
  let profileArg = RubyCommand.Argument(name: "profile", value: profile, type: nil)
11686
- let targetFilterArg = RubyCommand.Argument(name: "target_filter", value: targetFilter, type: nil)
11732
+ let targetFilterArg = targetFilter.asRubyArgument(name: "target_filter", type: nil)
11687
11733
  let buildConfigurationFilterArg = buildConfigurationFilter.asRubyArgument(name: "build_configuration_filter", type: nil)
11688
- let buildConfigurationArg = RubyCommand.Argument(name: "build_configuration", value: buildConfiguration, type: nil)
11734
+ let buildConfigurationArg = buildConfiguration.asRubyArgument(name: "build_configuration", type: nil)
11689
11735
  let certificateArg = RubyCommand.Argument(name: "certificate", value: certificate, type: nil)
11690
11736
  let codeSigningIdentityArg = codeSigningIdentity.asRubyArgument(name: "code_signing_identity", type: nil)
11691
11737
  let array: [RubyCommand.Argument?] = [xcodeprojArg,
@@ -11780,12 +11826,12 @@ public func updateUrbanAirshipConfiguration(plistPath: String,
11780
11826
  For example, you can use this to set a different URL scheme for the alpha or beta version of the app.
11781
11827
  */
11782
11828
  public func updateUrlSchemes(path: String,
11783
- urlSchemes: Any? = nil,
11784
- updateUrlSchemes: Any? = nil)
11829
+ urlSchemes: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
11830
+ updateUrlSchemes: ((String) -> Void)? = nil)
11785
11831
  {
11786
11832
  let pathArg = RubyCommand.Argument(name: "path", value: path, type: nil)
11787
- let urlSchemesArg = RubyCommand.Argument(name: "url_schemes", value: urlSchemes, type: nil)
11788
- let updateUrlSchemesArg = RubyCommand.Argument(name: "update_url_schemes", value: updateUrlSchemes, type: nil)
11833
+ let urlSchemesArg = urlSchemes.asRubyArgument(name: "url_schemes", type: nil)
11834
+ let updateUrlSchemesArg = RubyCommand.Argument(name: "update_url_schemes", value: updateUrlSchemes, type: .stringClosure)
11789
11835
  let array: [RubyCommand.Argument?] = [pathArg,
11790
11836
  urlSchemesArg,
11791
11837
  updateUrlSchemesArg]
@@ -11814,7 +11860,7 @@ public func updateUrlSchemes(path: String,
11814
11860
  */
11815
11861
  public func uploadAppPrivacyDetailsToAppStore(username: String,
11816
11862
  appIdentifier: String,
11817
- teamId: Any? = nil,
11863
+ teamId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11818
11864
  teamName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11819
11865
  jsonPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11820
11866
  outputJsonPath: String = "./fastlane/app_privacy_details.json",
@@ -11824,7 +11870,7 @@ public func uploadAppPrivacyDetailsToAppStore(username: String,
11824
11870
  {
11825
11871
  let usernameArg = RubyCommand.Argument(name: "username", value: username, type: nil)
11826
11872
  let appIdentifierArg = RubyCommand.Argument(name: "app_identifier", value: appIdentifier, type: nil)
11827
- let teamIdArg = RubyCommand.Argument(name: "team_id", value: teamId, type: nil)
11873
+ let teamIdArg = teamId.asRubyArgument(name: "team_id", type: nil)
11828
11874
  let teamNameArg = teamName.asRubyArgument(name: "team_name", type: nil)
11829
11875
  let jsonPathArg = jsonPath.asRubyArgument(name: "json_path", type: nil)
11830
11876
  let outputJsonPathArg = RubyCommand.Argument(name: "output_json_path", value: outputJsonPath, type: nil)
@@ -11920,7 +11966,7 @@ public func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/a
11920
11966
  orgSlug: String,
11921
11967
  projectSlug: String,
11922
11968
  dsymPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11923
- dsymPaths: Any? = nil)
11969
+ dsymPaths: OptionalConfigValue<[String]?> = .fastlaneDefault(nil))
11924
11970
  {
11925
11971
  let apiHostArg = RubyCommand.Argument(name: "api_host", value: apiHost, type: nil)
11926
11972
  let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
@@ -11928,7 +11974,7 @@ public func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/a
11928
11974
  let orgSlugArg = RubyCommand.Argument(name: "org_slug", value: orgSlug, type: nil)
11929
11975
  let projectSlugArg = RubyCommand.Argument(name: "project_slug", value: projectSlug, type: nil)
11930
11976
  let dsymPathArg = dsymPath.asRubyArgument(name: "dsym_path", type: nil)
11931
- let dsymPathsArg = RubyCommand.Argument(name: "dsym_paths", value: dsymPaths, type: nil)
11977
+ let dsymPathsArg = dsymPaths.asRubyArgument(name: "dsym_paths", type: nil)
11932
11978
  let array: [RubyCommand.Argument?] = [apiHostArg,
11933
11979
  apiKeyArg,
11934
11980
  authTokenArg,
@@ -11966,6 +12012,7 @@ public func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/a
11966
12012
  - skipAppVersionUpdate: Don’t create or update the app version that is being prepared for submission
11967
12013
  - force: Skip verification of HTML preview file
11968
12014
  - overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
12015
+ - syncScreenshots: Sync screenshots with local ones. This is currently beta optionso set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
11969
12016
  - submitForReview: Submit the new version for Review after uploading everything
11970
12017
  - rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
11971
12018
  - automaticRelease: Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
@@ -12036,6 +12083,7 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
12036
12083
  skipAppVersionUpdate: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12037
12084
  force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12038
12085
  overwriteScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12086
+ syncScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12039
12087
  submitForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12040
12088
  rejectIfPossible: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12041
12089
  automaticRelease: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
@@ -12099,6 +12147,7 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
12099
12147
  let skipAppVersionUpdateArg = skipAppVersionUpdate.asRubyArgument(name: "skip_app_version_update", type: nil)
12100
12148
  let forceArg = force.asRubyArgument(name: "force", type: nil)
12101
12149
  let overwriteScreenshotsArg = overwriteScreenshots.asRubyArgument(name: "overwrite_screenshots", type: nil)
12150
+ let syncScreenshotsArg = syncScreenshots.asRubyArgument(name: "sync_screenshots", type: nil)
12102
12151
  let submitForReviewArg = submitForReview.asRubyArgument(name: "submit_for_review", type: nil)
12103
12152
  let rejectIfPossibleArg = rejectIfPossible.asRubyArgument(name: "reject_if_possible", type: nil)
12104
12153
  let automaticReleaseArg = automaticRelease.asRubyArgument(name: "automatic_release", type: nil)
@@ -12161,6 +12210,7 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
12161
12210
  skipAppVersionUpdateArg,
12162
12211
  forceArg,
12163
12212
  overwriteScreenshotsArg,
12213
+ syncScreenshotsArg,
12164
12214
  submitForReviewArg,
12165
12215
  rejectIfPossibleArg,
12166
12216
  automaticReleaseArg,
@@ -12245,6 +12295,7 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
12245
12295
  - timeout: Timeout for read, open, and send (in seconds)
12246
12296
  - deactivateOnPromote: **DEPRECATED!** Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track
12247
12297
  - versionCodesToRetain: An array of version codes to retain when publishing a new APK
12298
+ - changesNotSentForReview: Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI
12248
12299
  - inAppUpdatePriority: In-app update priority for all the newly added apks in the release. Can take values between [0,5]
12249
12300
  - obbMainReferencesVersion: References version of 'main' expansion file
12250
12301
  - obbMainFileSize: Size of 'main' expansion file in bytes
@@ -12260,7 +12311,7 @@ public func uploadToPlayStore(packageName: String,
12260
12311
  releaseStatus: String = "completed",
12261
12312
  track: String = "production",
12262
12313
  rollout: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12263
- metadataPath: String = "./metadata",
12314
+ metadataPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12264
12315
  key: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12265
12316
  issuer: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12266
12317
  jsonKey: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -12284,6 +12335,7 @@ public func uploadToPlayStore(packageName: String,
12284
12335
  timeout: Int = 300,
12285
12336
  deactivateOnPromote: OptionalConfigValue<Bool> = .fastlaneDefault(true),
12286
12337
  versionCodesToRetain: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
12338
+ changesNotSentForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12287
12339
  inAppUpdatePriority: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
12288
12340
  obbMainReferencesVersion: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12289
12341
  obbMainFileSize: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -12297,7 +12349,7 @@ public func uploadToPlayStore(packageName: String,
12297
12349
  let releaseStatusArg = RubyCommand.Argument(name: "release_status", value: releaseStatus, type: nil)
12298
12350
  let trackArg = RubyCommand.Argument(name: "track", value: track, type: nil)
12299
12351
  let rolloutArg = rollout.asRubyArgument(name: "rollout", type: nil)
12300
- let metadataPathArg = RubyCommand.Argument(name: "metadata_path", value: metadataPath, type: nil)
12352
+ let metadataPathArg = metadataPath.asRubyArgument(name: "metadata_path", type: nil)
12301
12353
  let keyArg = key.asRubyArgument(name: "key", type: nil)
12302
12354
  let issuerArg = issuer.asRubyArgument(name: "issuer", type: nil)
12303
12355
  let jsonKeyArg = jsonKey.asRubyArgument(name: "json_key", type: nil)
@@ -12321,6 +12373,7 @@ public func uploadToPlayStore(packageName: String,
12321
12373
  let timeoutArg = RubyCommand.Argument(name: "timeout", value: timeout, type: nil)
12322
12374
  let deactivateOnPromoteArg = deactivateOnPromote.asRubyArgument(name: "deactivate_on_promote", type: nil)
12323
12375
  let versionCodesToRetainArg = versionCodesToRetain.asRubyArgument(name: "version_codes_to_retain", type: nil)
12376
+ let changesNotSentForReviewArg = changesNotSentForReview.asRubyArgument(name: "changes_not_sent_for_review", type: nil)
12324
12377
  let inAppUpdatePriorityArg = inAppUpdatePriority.asRubyArgument(name: "in_app_update_priority", type: nil)
12325
12378
  let obbMainReferencesVersionArg = obbMainReferencesVersion.asRubyArgument(name: "obb_main_references_version", type: nil)
12326
12379
  let obbMainFileSizeArg = obbMainFileSize.asRubyArgument(name: "obb_main_file_size", type: nil)
@@ -12357,6 +12410,7 @@ public func uploadToPlayStore(packageName: String,
12357
12410
  timeoutArg,
12358
12411
  deactivateOnPromoteArg,
12359
12412
  versionCodesToRetainArg,
12413
+ changesNotSentForReviewArg,
12360
12414
  inAppUpdatePriorityArg,
12361
12415
  obbMainReferencesVersionArg,
12362
12416
  obbMainFileSizeArg,
@@ -12854,7 +12908,7 @@ public func xcodeSelect() {
12854
12908
  */
12855
12909
  @discardableResult public func xcodeServerGetAssets(host: String,
12856
12910
  botName: String,
12857
- integrationNumber: Any? = nil,
12911
+ integrationNumber: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
12858
12912
  username: String = "",
12859
12913
  password: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12860
12914
  targetFolder: String = "./xcs_assets",
@@ -12863,7 +12917,7 @@ public func xcodeSelect() {
12863
12917
  {
12864
12918
  let hostArg = RubyCommand.Argument(name: "host", value: host, type: nil)
12865
12919
  let botNameArg = RubyCommand.Argument(name: "bot_name", value: botName, type: nil)
12866
- let integrationNumberArg = RubyCommand.Argument(name: "integration_number", value: integrationNumber, type: nil)
12920
+ let integrationNumberArg = integrationNumber.asRubyArgument(name: "integration_number", type: nil)
12867
12921
  let usernameArg = RubyCommand.Argument(name: "username", value: username, type: nil)
12868
12922
  let passwordArg = password.asRubyArgument(name: "password", type: nil)
12869
12923
  let targetFolderArg = RubyCommand.Argument(name: "target_folder", value: targetFolder, type: nil)
@@ -12957,7 +13011,7 @@ public func xcov(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil)
12957
13011
  coverallsServiceJobId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12958
13012
  coverallsRepoToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12959
13013
  xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12960
- ideFoundationPath: String = "/Applications/Xcode-12.4.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13014
+ ideFoundationPath: String = "/Applications/Xcode-13.beta.4.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
12961
13015
  legacySupport: OptionalConfigValue<Bool> = .fastlaneDefault(false))
12962
13016
  {
12963
13017
  let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
@@ -13071,6 +13125,8 @@ public func xcversion(version: String) {
13071
13125
  - verbose: Enable verbose output of zipped file
13072
13126
  - password: Encrypt the contents of the zip archive using a password
13073
13127
  - symlinks: Store symbolic links as such in the zip archive
13128
+ - include: Array of paths or patterns to include
13129
+ - exclude: Array of paths or patterns to exclude
13074
13130
 
13075
13131
  - returns: The path to the output zip file
13076
13132
  */
@@ -13078,18 +13134,24 @@ public func xcversion(version: String) {
13078
13134
  outputPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13079
13135
  verbose: OptionalConfigValue<Bool> = .fastlaneDefault(true),
13080
13136
  password: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13081
- symlinks: OptionalConfigValue<Bool> = .fastlaneDefault(false)) -> String
13137
+ symlinks: OptionalConfigValue<Bool> = .fastlaneDefault(false),
13138
+ include: [String] = [],
13139
+ exclude: [String] = []) -> String
13082
13140
  {
13083
13141
  let pathArg = RubyCommand.Argument(name: "path", value: path, type: nil)
13084
13142
  let outputPathArg = outputPath.asRubyArgument(name: "output_path", type: nil)
13085
13143
  let verboseArg = verbose.asRubyArgument(name: "verbose", type: nil)
13086
13144
  let passwordArg = password.asRubyArgument(name: "password", type: nil)
13087
13145
  let symlinksArg = symlinks.asRubyArgument(name: "symlinks", type: nil)
13146
+ let includeArg = RubyCommand.Argument(name: "include", value: include, type: nil)
13147
+ let excludeArg = RubyCommand.Argument(name: "exclude", value: exclude, type: nil)
13088
13148
  let array: [RubyCommand.Argument?] = [pathArg,
13089
13149
  outputPathArg,
13090
13150
  verboseArg,
13091
13151
  passwordArg,
13092
- symlinksArg]
13152
+ symlinksArg,
13153
+ includeArg,
13154
+ excludeArg]
13093
13155
  let args: [RubyCommand.Argument] = array
13094
13156
  .filter { $0?.value != nil }
13095
13157
  .compactMap { $0 }
@@ -13151,4 +13213,4 @@ public let snapshotfile = Snapshotfile()
13151
13213
 
13152
13214
  // Please don't remove the lines below
13153
13215
  // They are used to detect outdated files
13154
- // FastlaneRunnerAPIVersion [0.9.128]
13216
+ // FastlaneRunnerAPIVersion [0.9.132]