fastlane 2.146.0 → 2.149.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +86 -86
  3. data/cert/lib/cert/commands_generator.rb +1 -0
  4. data/credentials_manager/lib/credentials_manager/cli.rb +2 -0
  5. data/deliver/lib/deliver/app_screenshot.rb +3 -3
  6. data/deliver/lib/deliver/commands_generator.rb +1 -0
  7. data/deliver/lib/deliver/html_generator.rb +2 -2
  8. data/deliver/lib/deliver/submit_for_review.rb +5 -1
  9. data/fastlane/lib/{fastlane/actions/.update_code_signing_settings.rb.swp → assets/.s3_html_template.erb.swp} +0 -0
  10. data/fastlane/lib/assets/custom_action_template.rb +6 -6
  11. data/fastlane/lib/assets/s3_html_template.erb +1 -1
  12. data/fastlane/lib/fastlane/actions/.hipchat.rb.swp +0 -0
  13. data/fastlane/lib/fastlane/actions/.slack.rb.swp +0 -0
  14. data/fastlane/lib/fastlane/actions/cocoapods.rb +1 -1
  15. data/fastlane/lib/fastlane/actions/crashlytics.rb +0 -4
  16. data/fastlane/lib/fastlane/actions/docs/build_app.md +1 -1
  17. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +42 -2
  18. data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +3 -1
  19. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +1 -1
  20. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +2 -2
  21. data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +12 -0
  22. data/fastlane/lib/fastlane/actions/get_managed_play_store_publishing_rights.rb +1 -1
  23. data/fastlane/lib/fastlane/actions/git_branch.rb +1 -1
  24. data/fastlane/lib/fastlane/actions/hipchat.rb +1 -1
  25. data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +1 -1
  26. data/fastlane/lib/fastlane/actions/set_pod_key.rb +3 -3
  27. data/fastlane/lib/fastlane/actions/slack.rb +1 -1
  28. data/fastlane/lib/fastlane/actions/slather.rb +8 -1
  29. data/fastlane/lib/fastlane/actions/swiftlint.rb +14 -0
  30. data/fastlane/lib/fastlane/actions/sync_code_signing.rb +1 -1
  31. data/fastlane/lib/fastlane/actions/testfairy.rb +18 -3
  32. data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +7 -2
  33. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +2 -2
  34. data/fastlane/lib/fastlane/actions/verify_xcode.rb +7 -0
  35. data/fastlane/lib/fastlane/actions/xcodebuild.rb +4 -4
  36. data/fastlane/lib/fastlane/cli_tools_distributor.rb +28 -6
  37. data/fastlane/lib/fastlane/commands_generator.rb +5 -2
  38. data/fastlane/lib/fastlane/documentation/actions_list.rb +1 -1
  39. data/fastlane/lib/fastlane/helper/lane_helper.rb +13 -0
  40. data/fastlane/lib/fastlane/lane_manager.rb +0 -10
  41. data/fastlane/lib/fastlane/plugins/plugin_manager.rb +3 -3
  42. data/fastlane/lib/fastlane/plugins/template/.github/workflows/test.yml +29 -0
  43. data/fastlane/lib/fastlane/swift_fastlane_function.rb +15 -2
  44. data/fastlane/lib/fastlane/swift_lane_manager.rb +0 -8
  45. data/fastlane/lib/fastlane/version.rb +1 -1
  46. data/fastlane/swift/Deliverfile.swift +1 -1
  47. data/fastlane/swift/Fastlane.swift +130 -26
  48. data/fastlane/swift/Gymfile.swift +1 -1
  49. data/fastlane/swift/GymfileProtocol.swift +1 -1
  50. data/fastlane/swift/LaneFileProtocol.swift +5 -2
  51. data/fastlane/swift/Matchfile.swift +1 -1
  52. data/fastlane/swift/MatchfileProtocol.swift +9 -1
  53. data/fastlane/swift/Precheckfile.swift +1 -1
  54. data/fastlane/swift/Scanfile.swift +1 -1
  55. data/fastlane/swift/ScanfileProtocol.swift +15 -3
  56. data/fastlane/swift/Screengrabfile.swift +1 -1
  57. data/fastlane/swift/Snapshotfile.swift +1 -1
  58. data/fastlane/swift/SnapshotfileProtocol.swift +25 -1
  59. data/fastlane_core/lib/fastlane_core/helper.rb +17 -0
  60. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +46 -2
  61. data/fastlane_core/lib/fastlane_core/project.rb +1 -0
  62. data/frameit/lib/frameit/commands_generator.rb +1 -0
  63. data/frameit/lib/frameit/device_types.rb +10 -0
  64. data/frameit/lib/frameit/options.rb +5 -2
  65. data/frameit/lib/frameit/runner.rb +5 -0
  66. data/frameit/lib/frameit/screenshot.rb +1 -0
  67. data/gym/lib/gym/generators/package_command_generator.rb +4 -0
  68. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +4 -0
  69. data/gym/lib/gym/options.rb +1 -1
  70. data/gym/lib/gym/runner.rb +14 -0
  71. data/match/lib/match/change_password.rb +1 -18
  72. data/match/lib/match/commands_generator.rb +1 -0
  73. data/match/lib/match/encryption/openssl.rb +1 -1
  74. data/match/lib/match/generator.rb +7 -2
  75. data/match/lib/match/nuke.rb +21 -16
  76. data/match/lib/match/options.rb +23 -1
  77. data/match/lib/match/storage/git_storage.rb +4 -0
  78. data/match/lib/match/storage/google_cloud_storage.rb +4 -0
  79. data/match/lib/match/storage/interface.rb +4 -0
  80. data/match/lib/match/storage/s3_storage.rb +4 -0
  81. data/match/lib/match/utils.rb +1 -1
  82. data/pem/lib/pem/commands_generator.rb +1 -0
  83. data/pilot/lib/pilot/build_manager.rb +23 -7
  84. data/pilot/lib/pilot/options.rb +5 -0
  85. data/produce/lib/produce/commands_generator.rb +1 -0
  86. data/scan/lib/scan/.options.rb.swp +0 -0
  87. data/scan/lib/scan/detect_values.rb +3 -0
  88. data/scan/lib/scan/options.rb +26 -3
  89. data/scan/lib/scan/runner.rb +2 -0
  90. data/scan/lib/scan/test_command_generator.rb +7 -2
  91. data/scan/lib/scan/test_result_parser.rb +9 -2
  92. data/screengrab/lib/screengrab/runner.rb +10 -9
  93. data/sigh/lib/sigh/commands_generator.rb +1 -0
  94. data/sigh/lib/sigh/options.rb +7 -1
  95. data/sigh/lib/sigh/runner.rb +2 -1
  96. data/snapshot/lib/assets/SnapfileTemplate +3 -0
  97. data/snapshot/lib/assets/SnapshotHelper.swift +12 -33
  98. data/snapshot/lib/snapshot/detect_values.rb +15 -0
  99. data/snapshot/lib/snapshot/options.rb +42 -0
  100. data/snapshot/lib/snapshot/reports_generator.rb +1 -1
  101. data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +2 -0
  102. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +4 -0
  103. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +24 -1
  104. data/snapshot/lib/snapshot/test_command_generator.rb +8 -3
  105. data/snapshot/lib/snapshot/test_command_generator_base.rb +10 -1
  106. data/spaceship/lib/spaceship/base.rb +1 -1
  107. data/spaceship/lib/spaceship/client.rb +9 -1
  108. data/spaceship/lib/spaceship/commands_generator.rb +1 -0
  109. data/spaceship/lib/spaceship/connect_api/model.rb +6 -0
  110. data/spaceship/lib/spaceship/connect_api/models/build.rb +4 -0
  111. data/spaceship/lib/spaceship/errors.rb +3 -0
  112. data/spaceship/lib/spaceship/tunes/iap.rb +15 -0
  113. data/spaceship/lib/spaceship/tunes/tunes_client.rb +14 -0
  114. data/supply/lib/supply/commands_generator.rb +1 -0
  115. data/supply/lib/supply/options.rb +9 -0
  116. data/supply/lib/supply/uploader.rb +4 -0
  117. metadata +47 -30
@@ -93,13 +93,13 @@ module Fastlane
93
93
  FastlaneCore::Globals.verbose = true
94
94
  end
95
95
  global_option('--troubleshoot', 'Enables extended verbose mode. Use with caution, as this even includes ALL sensitive data. Cannot be used on CI.')
96
+ global_option('--env STRING[,STRING2]', String, 'Add environment(s) to use with `dotenv`')
96
97
 
97
98
  always_trace!
98
99
 
99
100
  command :trigger do |c|
100
101
  c.syntax = 'fastlane [lane]'
101
102
  c.description = 'Run a specific lane. Pass the lane name and optionally the platform first.'
102
- c.option('--env STRING[,STRING2]', String, 'Add environment(s) to use with `dotenv`')
103
103
  c.option('--disable_runner_upgrades', 'Prevents fastlane from attempting to update FastlaneRunner swift project')
104
104
  c.option('--swift_server_port INT', 'Set specific port to communicate between fastlane and FastlaneRunner')
105
105
 
@@ -141,10 +141,12 @@ module Fastlane
141
141
  c.description = 'Starts local socket server and enables only a single local connection'
142
142
  c.option('-s', '--stay_alive', 'Keeps socket server up even after error or disconnects, requires CTRL-C to kill.')
143
143
  c.option('-c seconds', '--connection_timeout', 'Sets connection established timeout')
144
+ c.option('-p port', '--port', "Sets the port on localhost for the socket connection")
144
145
  c.action do |args, options|
145
146
  default_connection_timeout = 5
146
147
  stay_alive = options.stay_alive || false
147
148
  connection_timeout = options.connection_timeout || default_connection_timeout
149
+ port = options.port || 2000
148
150
 
149
151
  if stay_alive && options.connection_timeout.nil?
150
152
  UI.important("stay_alive is set, but the connection timeout is not, this will give you #{default_connection_timeout} seconds to (re)connect")
@@ -157,7 +159,8 @@ module Fastlane
157
159
  server = Fastlane::SocketServer.new(
158
160
  command_executor: command_executor,
159
161
  connection_timeout: connection_timeout,
160
- stay_alive: stay_alive
162
+ stay_alive: stay_alive,
163
+ port: port
161
164
  )
162
165
  result = server.start
163
166
  UI.success("Result: #{result}") if result
@@ -176,7 +176,7 @@ module Fastlane
176
176
  # them as broken actions in the table, regardless of platform specification
177
177
  next if platform && action.respond_to?(:is_supported?) && !action.is_supported?(platform.to_sym)
178
178
 
179
- name = symbol.to_s.gsub('Action', '').fastlane_underscore
179
+ name = symbol.to_s.gsub(/Action$/, '').fastlane_underscore
180
180
  yield(action, name)
181
181
  end
182
182
  end
@@ -0,0 +1,13 @@
1
+ module Fastlane
2
+ module Helper
3
+ class LaneHelper
4
+ def self.current_platform
5
+ return Fastlane::Actions.lane_context[Fastlane::Actions::SharedValues::PLATFORM_NAME]
6
+ end
7
+
8
+ def self.current_lane
9
+ return Fastlane::Actions.lane_context[Fastlane::Actions::SharedValues::LANE_NAME]
10
+ end
11
+ end
12
+ end
13
+ end
@@ -7,7 +7,6 @@ module Fastlane
7
7
  # @param parameters [Hash] The parameters passed from the command line to the lane
8
8
  # @param env Dot Env Information
9
9
  # @param A custom Fastfile path, this is used by fastlane.ci
10
- # rubocop:disable Metrics/PerceivedComplexity
11
10
  def self.cruise_lane(platform, lane, parameters = nil, env = nil, fastfile_path = nil)
12
11
  UI.user_error!("lane must be a string") unless lane.kind_of?(String) || lane.nil?
13
12
  UI.user_error!("platform must be a string") unless platform.kind_of?(String) || platform.nil?
@@ -42,14 +41,6 @@ module Fastlane
42
41
 
43
42
  platform, lane = choose_lane(ff, platform) unless lane
44
43
 
45
- # xcodeproj has a bug in certain versions that causes it to change directories
46
- # and not return to the original working directory
47
- # https://github.com/CocoaPods/Xcodeproj/issues/426
48
- # Setting this environment variable causes xcodeproj to work around the problem
49
- ENV["FORK_XCODE_WRITING"] = "true" unless platform == 'android'
50
-
51
- Fastlane::Helper::DotenvHelper.load_dot_env(env)
52
-
53
44
  started = Time.now
54
45
  e = nil
55
46
  begin
@@ -77,7 +68,6 @@ module Fastlane
77
68
 
78
69
  return ff
79
70
  end
80
- # rubocop:enable Metrics/PerceivedComplexity
81
71
 
82
72
  def self.skip_docs?
83
73
  Helper.test? || FastlaneCore::Env.truthy?("FASTLANE_SKIP_DOCS")
@@ -159,7 +159,7 @@ module Fastlane
159
159
  require 'json'
160
160
  url = "https://rubygems.org/api/v1/gems/#{gem_name}.json"
161
161
  begin
162
- JSON.parse(open(url).read)
162
+ JSON.parse(URI.open(url).read)
163
163
  rescue
164
164
  nil
165
165
  end
@@ -215,7 +215,7 @@ module Fastlane
215
215
  # Bundler.with_clean_env solves this problem by resetting Bundler state before the
216
216
  # exec'd call gets merged into this process.
217
217
 
218
- Bundler.with_clean_env do
218
+ Bundler.with_original_env do
219
219
  yield if block_given?
220
220
  end
221
221
  end
@@ -375,7 +375,7 @@ module Fastlane
375
375
  references = Fastlane.const_get(module_name).all_classes.collect do |path|
376
376
  next unless File.dirname(path).include?("/actions") # we only want to match actions
377
377
 
378
- File.basename(path).gsub("_action", "").gsub(".rb", "").to_sym # the _action is optional
378
+ File.basename(path).gsub(".rb", "").gsub(/_action$/, '').to_sym # the _action is optional
379
379
  end
380
380
  references.compact!
381
381
 
@@ -0,0 +1,29 @@
1
+ name: Test
2
+
3
+ on:
4
+ push:
5
+
6
+ jobs:
7
+ test:
8
+ runs-on: ubuntu-latest
9
+ steps:
10
+ - uses: actions/checkout@v2
11
+ - uses: actions/cache@v1
12
+ with:
13
+ path: vendor/bundle
14
+ key: ${{ runner.os }}-gem-${{ hashFiles('**/Gemfile') }}
15
+ restore-keys: |
16
+ ${{ runner.os }}-gem-
17
+ - name: Set up Ruby
18
+ uses: ruby/setup-ruby@v1
19
+ with:
20
+ ruby-version: 2.4
21
+ - name: Install dependencies
22
+ run: bundle check || bundle install --jobs=4 --retry=3 --path vendor/bundle
23
+ - name: Run tests
24
+ run: bundle exec rake
25
+ - name: Upload artifact
26
+ uses: actions/upload-artifact@v2
27
+ with:
28
+ name: test-results
29
+ path: test-results
@@ -95,6 +95,8 @@ module Fastlane
95
95
  return "Int"
96
96
  elsif type_override == Boolean
97
97
  return "Bool"
98
+ elsif type_override == Float
99
+ return "Float"
98
100
  elsif type_override == :string_callback
99
101
  return "((String) -> Void)"
100
102
  else
@@ -130,8 +132,19 @@ module Fastlane
130
132
  type = "[String]"
131
133
  elsif default_value.kind_of?(Hash)
132
134
  type = "[String : Any]"
135
+ # Altough we can have a default value of Integer type, if param_type_override overridden that value, respect it.
133
136
  elsif default_value.kind_of?(Integer)
134
- type = "Int"
137
+ if type == "Double" || type == "Float"
138
+ begin
139
+ # If we're not able to instantiate
140
+ _ = BigDecimal(default_value)
141
+ rescue
142
+ # We set it as a Int
143
+ type = "Int"
144
+ end
145
+ else
146
+ type = "Int"
147
+ end
135
148
  end
136
149
  return "#{type}#{optional_specifier}"
137
150
  end
@@ -149,7 +162,7 @@ module Fastlane
149
162
  # we can't handle default values for Hashes, yet
150
163
  # see method swift_default_implementations for similar behavior
151
164
  default_value = "[:]"
152
- elsif type != "Bool" && type != "[String]" && type != "Int" && type != "((String) -> Void)"
165
+ elsif type != "Bool" && type != "[String]" && type != "Int" && type != "((String) -> Void)" && type != "Float" && type != "Double"
153
166
  default_value = "\"#{default_value}\""
154
167
  end
155
168
  end
@@ -14,14 +14,6 @@ module Fastlane
14
14
  ENV["FASTLANE_LANE_NAME"] = lane
15
15
  Actions.lane_context[Actions::SharedValues::LANE_NAME] = lane
16
16
 
17
- # xcodeproj has a bug in certain versions that causes it to change directories
18
- # and not return to the original working directory
19
- # https://github.com/CocoaPods/Xcodeproj/issues/426
20
- # Setting this environment variable causes xcodeproj to work around the problem
21
- ENV["FORK_XCODE_WRITING"] = "true"
22
-
23
- Fastlane::Helper::DotenvHelper.load_dot_env(env)
24
-
25
17
  started = Time.now
26
18
  e = nil
27
19
  begin
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.146.0'.freeze
2
+ VERSION = '2.149.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 = '0.49.1'.freeze
@@ -18,4 +18,4 @@ class Deliverfile: DeliverfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.146.0
21
+ // Generated with fastlane 2.149.0
@@ -894,7 +894,7 @@ func buildAndroidApp(task: String? = nil,
894
894
  - skipArchive: After building, don't archive, effectively not including -archivePath param
895
895
  - skipCodesigning: Build without codesigning
896
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)`
897
+ - installerCertName: Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: `3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ)`
898
898
  - buildPath: The directory in which the archive should be stored in
899
899
  - archivePath: The path to the created archive
900
900
  - derivedDataPath: The directory where built products and other derived data will go
@@ -1171,7 +1171,7 @@ func buildIosApp(workspace: String? = nil,
1171
1171
  - skipBuildArchive: Export ipa from previously built xcarchive. Uses archive_path as source
1172
1172
  - skipArchive: After building, don't archive, effectively not including -archivePath param
1173
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)`
1174
+ - installerCertName: Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: `3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ)`
1175
1175
  - buildPath: The directory in which the archive should be stored in
1176
1176
  - archivePath: The path to the created archive
1177
1177
  - derivedDataPath: The directory where built products and other derived data will go
@@ -1442,11 +1442,13 @@ func captureAndroidScreenshots(androidHome: String? = nil,
1442
1442
  - clearPreviousScreenshots: Enabling this option will automatically clear previously generated screenshots before running snapshot
1443
1443
  - reinstallApp: Enabling this option will automatically uninstall the application before running it
1444
1444
  - eraseSimulator: Enabling this option will automatically erase the simulator before running the application
1445
+ - overrideStatusBar: Enabling this option wil automatically override the status bar to show 9:41 AM, full battery, and full reception
1445
1446
  - localizeSimulator: Enabling this option will configure the Simulator's system language
1446
1447
  - darkMode: Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark)
1447
1448
  - appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
1448
1449
  - addPhotos: A list of photos that should be added to the simulator before running the application
1449
1450
  - addVideos: A list of videos that should be added to the simulator before running the application
1451
+ - htmlTemplate: A path to screenshots.html template
1450
1452
  - buildlogPath: The directory where to store the build log
1451
1453
  - clean: Should the project be cleaned before building it?
1452
1454
  - testWithoutBuilding: Test without building, requires a derived data path
@@ -1463,6 +1465,10 @@ func captureAndroidScreenshots(androidHome: String? = nil,
1463
1465
  - concurrentSimulators: Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9
1464
1466
  - disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
1465
1467
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1468
+ - testplan: The testplan associated with the scheme that should be used for testing
1469
+ - onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
1470
+ - skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
1471
+ - disableXcpretty: Disable xcpretty formatting of build
1466
1472
  */
1467
1473
  func captureIosScreenshots(workspace: String? = nil,
1468
1474
  project: String? = nil,
@@ -1479,11 +1485,13 @@ func captureIosScreenshots(workspace: String? = nil,
1479
1485
  clearPreviousScreenshots: Bool = false,
1480
1486
  reinstallApp: Bool = false,
1481
1487
  eraseSimulator: Bool = false,
1488
+ overrideStatusBar: Bool = false,
1482
1489
  localizeSimulator: Bool = false,
1483
1490
  darkMode: Bool? = nil,
1484
1491
  appIdentifier: String? = nil,
1485
1492
  addPhotos: [String]? = nil,
1486
1493
  addVideos: [String]? = nil,
1494
+ htmlTemplate: String = "/Users/josh/Projects/fastlane/fastlane/snapshot/lib/snapshot/page.html.erb",
1487
1495
  buildlogPath: String = "~/Library/Logs/snapshot",
1488
1496
  clean: Bool = false,
1489
1497
  testWithoutBuilding: Bool? = nil,
@@ -1499,7 +1507,11 @@ func captureIosScreenshots(workspace: String? = nil,
1499
1507
  namespaceLogFiles: Any? = nil,
1500
1508
  concurrentSimulators: Bool = true,
1501
1509
  disableSlideToType: Bool = false,
1502
- clonedSourcePackagesPath: String? = nil) {
1510
+ clonedSourcePackagesPath: String? = nil,
1511
+ testplan: String? = nil,
1512
+ onlyTesting: Any? = nil,
1513
+ skipTesting: Any? = nil,
1514
+ disableXcpretty: Bool? = nil) {
1503
1515
  let command = RubyCommand(commandID: "", methodName: "capture_ios_screenshots", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1504
1516
  RubyCommand.Argument(name: "project", value: project),
1505
1517
  RubyCommand.Argument(name: "xcargs", value: xcargs),
@@ -1515,11 +1527,13 @@ func captureIosScreenshots(workspace: String? = nil,
1515
1527
  RubyCommand.Argument(name: "clear_previous_screenshots", value: clearPreviousScreenshots),
1516
1528
  RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
1517
1529
  RubyCommand.Argument(name: "erase_simulator", value: eraseSimulator),
1530
+ RubyCommand.Argument(name: "override_status_bar", value: overrideStatusBar),
1518
1531
  RubyCommand.Argument(name: "localize_simulator", value: localizeSimulator),
1519
1532
  RubyCommand.Argument(name: "dark_mode", value: darkMode),
1520
1533
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
1521
1534
  RubyCommand.Argument(name: "add_photos", value: addPhotos),
1522
1535
  RubyCommand.Argument(name: "add_videos", value: addVideos),
1536
+ RubyCommand.Argument(name: "html_template", value: htmlTemplate),
1523
1537
  RubyCommand.Argument(name: "buildlog_path", value: buildlogPath),
1524
1538
  RubyCommand.Argument(name: "clean", value: clean),
1525
1539
  RubyCommand.Argument(name: "test_without_building", value: testWithoutBuilding),
@@ -1535,7 +1549,11 @@ func captureIosScreenshots(workspace: String? = nil,
1535
1549
  RubyCommand.Argument(name: "namespace_log_files", value: namespaceLogFiles),
1536
1550
  RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
1537
1551
  RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
1538
- RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
1552
+ RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
1553
+ RubyCommand.Argument(name: "testplan", value: testplan),
1554
+ RubyCommand.Argument(name: "only_testing", value: onlyTesting),
1555
+ RubyCommand.Argument(name: "skip_testing", value: skipTesting),
1556
+ RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty)])
1539
1557
  _ = runner.executeCommand(command)
1540
1558
  }
1541
1559
 
@@ -1558,11 +1576,13 @@ func captureIosScreenshots(workspace: String? = nil,
1558
1576
  - clearPreviousScreenshots: Enabling this option will automatically clear previously generated screenshots before running snapshot
1559
1577
  - reinstallApp: Enabling this option will automatically uninstall the application before running it
1560
1578
  - eraseSimulator: Enabling this option will automatically erase the simulator before running the application
1579
+ - overrideStatusBar: Enabling this option wil automatically override the status bar to show 9:41 AM, full battery, and full reception
1561
1580
  - localizeSimulator: Enabling this option will configure the Simulator's system language
1562
1581
  - darkMode: Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark)
1563
1582
  - appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
1564
1583
  - addPhotos: A list of photos that should be added to the simulator before running the application
1565
1584
  - addVideos: A list of videos that should be added to the simulator before running the application
1585
+ - htmlTemplate: A path to screenshots.html template
1566
1586
  - buildlogPath: The directory where to store the build log
1567
1587
  - clean: Should the project be cleaned before building it?
1568
1588
  - testWithoutBuilding: Test without building, requires a derived data path
@@ -1579,6 +1599,10 @@ func captureIosScreenshots(workspace: String? = nil,
1579
1599
  - concurrentSimulators: Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9
1580
1600
  - disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
1581
1601
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1602
+ - testplan: The testplan associated with the scheme that should be used for testing
1603
+ - onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
1604
+ - skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
1605
+ - disableXcpretty: Disable xcpretty formatting of build
1582
1606
  */
1583
1607
  func captureScreenshots(workspace: String? = nil,
1584
1608
  project: String? = nil,
@@ -1595,11 +1619,13 @@ func captureScreenshots(workspace: String? = nil,
1595
1619
  clearPreviousScreenshots: Bool = false,
1596
1620
  reinstallApp: Bool = false,
1597
1621
  eraseSimulator: Bool = false,
1622
+ overrideStatusBar: Bool = false,
1598
1623
  localizeSimulator: Bool = false,
1599
1624
  darkMode: Bool? = nil,
1600
1625
  appIdentifier: String? = nil,
1601
1626
  addPhotos: [String]? = nil,
1602
1627
  addVideos: [String]? = nil,
1628
+ htmlTemplate: String = "/Users/josh/Projects/fastlane/fastlane/snapshot/lib/snapshot/page.html.erb",
1603
1629
  buildlogPath: String = "~/Library/Logs/snapshot",
1604
1630
  clean: Bool = false,
1605
1631
  testWithoutBuilding: Bool? = nil,
@@ -1615,7 +1641,11 @@ func captureScreenshots(workspace: String? = nil,
1615
1641
  namespaceLogFiles: Any? = nil,
1616
1642
  concurrentSimulators: Bool = true,
1617
1643
  disableSlideToType: Bool = false,
1618
- clonedSourcePackagesPath: String? = nil) {
1644
+ clonedSourcePackagesPath: String? = nil,
1645
+ testplan: String? = nil,
1646
+ onlyTesting: Any? = nil,
1647
+ skipTesting: Any? = nil,
1648
+ disableXcpretty: Bool? = nil) {
1619
1649
  let command = RubyCommand(commandID: "", methodName: "capture_screenshots", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1620
1650
  RubyCommand.Argument(name: "project", value: project),
1621
1651
  RubyCommand.Argument(name: "xcargs", value: xcargs),
@@ -1631,11 +1661,13 @@ func captureScreenshots(workspace: String? = nil,
1631
1661
  RubyCommand.Argument(name: "clear_previous_screenshots", value: clearPreviousScreenshots),
1632
1662
  RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
1633
1663
  RubyCommand.Argument(name: "erase_simulator", value: eraseSimulator),
1664
+ RubyCommand.Argument(name: "override_status_bar", value: overrideStatusBar),
1634
1665
  RubyCommand.Argument(name: "localize_simulator", value: localizeSimulator),
1635
1666
  RubyCommand.Argument(name: "dark_mode", value: darkMode),
1636
1667
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
1637
1668
  RubyCommand.Argument(name: "add_photos", value: addPhotos),
1638
1669
  RubyCommand.Argument(name: "add_videos", value: addVideos),
1670
+ RubyCommand.Argument(name: "html_template", value: htmlTemplate),
1639
1671
  RubyCommand.Argument(name: "buildlog_path", value: buildlogPath),
1640
1672
  RubyCommand.Argument(name: "clean", value: clean),
1641
1673
  RubyCommand.Argument(name: "test_without_building", value: testWithoutBuilding),
@@ -1651,7 +1683,11 @@ func captureScreenshots(workspace: String? = nil,
1651
1683
  RubyCommand.Argument(name: "namespace_log_files", value: namespaceLogFiles),
1652
1684
  RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
1653
1685
  RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
1654
- RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
1686
+ RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
1687
+ RubyCommand.Argument(name: "testplan", value: testplan),
1688
+ RubyCommand.Argument(name: "only_testing", value: onlyTesting),
1689
+ RubyCommand.Argument(name: "skip_testing", value: skipTesting),
1690
+ RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty)])
1655
1691
  _ = runner.executeCommand(command)
1656
1692
  }
1657
1693
 
@@ -2137,10 +2173,6 @@ func copyArtifacts(keepOriginal: Bool = true,
2137
2173
  - notifications: Crashlytics notification option (true/false)
2138
2174
  - debug: Crashlytics debug option (true/false)
2139
2175
 
2140
- Crashlytics Beta has been deprecated and replaced with Firebase App Distribution.
2141
- Beta will continue working until May 4, 2020.
2142
- Check out the [Firebase App Distribution docs](https://github.com/fastlane/fastlane-plugin-firebase_app_distribution) to get started.
2143
-
2144
2176
  Additionally, you can specify `notes`, `emails`, `groups` and `notifications`.
2145
2177
  Distributing to Groups: When using the `groups` parameter, it's important to use the group **alias** names for each group you'd like to distribute to. A group's alias can be found in the web UI. If you're viewing the Beta page, you can open the groups dialog by clicking the 'Manage Groups' button.
2146
2178
  This action uses the `submit` binary provided by the Crashlytics framework. If the binary is not found in its usual path, you'll need to specify the path manually by using the `crashlytics_path` option.
@@ -3004,7 +3036,7 @@ func flock(message: String,
3004
3036
  - forceOrientationBlock: [Advanced] A block to customize your screenshots' device orientation
3005
3037
  - debugMode: Output debug information in framed screenshots
3006
3038
  - resume: Resume frameit instead of reprocessing all screenshots
3007
- - usePlatform: Choose a platform, the valid options are IOS, ANDROID and ANY (IOS is default to ensure backward compatibility)
3039
+ - usePlatform: Choose a platform, the valid options are IOS, ANDROID and ANY (default is either general platform defined in the fastfile or IOS to ensure backward compatibility)
3008
3040
  - path: The path to the directory containing the screenshots
3009
3041
 
3010
3042
  Uses [frameit](https://docs.fastlane.tools/actions/frameit/) to prepare perfect screenshots for the App Store, your website, QA or emails.
@@ -3066,7 +3098,7 @@ func frameScreenshots(white: Bool? = nil,
3066
3098
  - forceOrientationBlock: [Advanced] A block to customize your screenshots' device orientation
3067
3099
  - debugMode: Output debug information in framed screenshots
3068
3100
  - resume: Resume frameit instead of reprocessing all screenshots
3069
- - usePlatform: Choose a platform, the valid options are IOS, ANDROID and ANY (IOS is default to ensure backward compatibility)
3101
+ - usePlatform: Choose a platform, the valid options are IOS, ANDROID and ANY (default is either general platform defined in the fastfile or IOS to ensure backward compatibility)
3070
3102
  - path: The path to the directory containing the screenshots
3071
3103
 
3072
3104
  Uses [frameit](https://docs.fastlane.tools/actions/frameit/) to prepare perfect screenshots for the App Store, your website, QA or emails.
@@ -3341,6 +3373,7 @@ func getManagedPlayStorePublishingRights(jsonKey: String? = nil,
3341
3373
  - platform: Set the provisioning profile's platform (i.e. ios, tvos)
3342
3374
  - readonly: Only fetch existing profile, don't generate new ones
3343
3375
  - 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")
3376
+ - failOnNameTaken: Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first
3344
3377
 
3345
3378
  - returns: The UUID of the profile sigh just fetched/generated
3346
3379
 
@@ -3365,7 +3398,8 @@ func getProvisioningProfile(adhoc: Bool = false,
3365
3398
  skipCertificateVerification: Bool = false,
3366
3399
  platform: Any = "ios",
3367
3400
  readonly: Bool = false,
3368
- templateName: String? = nil) {
3401
+ templateName: String? = nil,
3402
+ failOnNameTaken: Bool = false) {
3369
3403
  let command = RubyCommand(commandID: "", methodName: "get_provisioning_profile", className: nil, args: [RubyCommand.Argument(name: "adhoc", value: adhoc),
3370
3404
  RubyCommand.Argument(name: "developer_id", value: developerId),
3371
3405
  RubyCommand.Argument(name: "development", value: development),
@@ -3385,7 +3419,8 @@ func getProvisioningProfile(adhoc: Bool = false,
3385
3419
  RubyCommand.Argument(name: "skip_certificate_verification", value: skipCertificateVerification),
3386
3420
  RubyCommand.Argument(name: "platform", value: platform),
3387
3421
  RubyCommand.Argument(name: "readonly", value: readonly),
3388
- RubyCommand.Argument(name: "template_name", value: templateName)])
3422
+ RubyCommand.Argument(name: "template_name", value: templateName),
3423
+ RubyCommand.Argument(name: "fail_on_name_taken", value: failOnNameTaken)])
3389
3424
  _ = runner.executeCommand(command)
3390
3425
  }
3391
3426
 
@@ -3712,7 +3747,7 @@ func gradle(task: String? = nil,
3712
3747
  - skipArchive: After building, don't archive, effectively not including -archivePath param
3713
3748
  - skipCodesigning: Build without codesigning
3714
3749
  - catalystPlatform: Platform to build when using a Catalyst enabled app. Valid values are: ios, macos
3715
- - installerCertName: Full name of 3rd Party Mac Developer Installer or Deveoper ID Installer certificate. Example: `3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ)`
3750
+ - installerCertName: Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: `3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ)`
3716
3751
  - buildPath: The directory in which the archive should be stored in
3717
3752
  - archivePath: The path to the created archive
3718
3753
  - derivedDataPath: The directory where built products and other derived data will go
@@ -4496,6 +4531,8 @@ func makeChangelogFromJenkins(fallbackChangelog: String = "",
4496
4531
  - skipDocs: Skip generation of a README.md for the created git repository
4497
4532
  - platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos)
4498
4533
  - 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")
4534
+ - profileName: A custom name for the provisioning profile. This will replace the default provisioning profile name if specified
4535
+ - failOnNameTaken: Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first
4499
4536
  - outputPath: Path in which to export certificates, key and profile
4500
4537
  - verbose: Print out extra information and all commands
4501
4538
 
@@ -4534,6 +4571,8 @@ func match(type: Any = matchfile.type,
4534
4571
  skipDocs: Bool = matchfile.skipDocs,
4535
4572
  platform: Any = matchfile.platform,
4536
4573
  templateName: Any? = matchfile.templateName,
4574
+ profileName: Any? = matchfile.profileName,
4575
+ failOnNameTaken: Bool = matchfile.failOnNameTaken,
4537
4576
  outputPath: Any? = matchfile.outputPath,
4538
4577
  verbose: Bool = matchfile.verbose) {
4539
4578
  let command = RubyCommand(commandID: "", methodName: "match", className: nil, args: [RubyCommand.Argument(name: "type", value: type),
@@ -4569,6 +4608,8 @@ func match(type: Any = matchfile.type,
4569
4608
  RubyCommand.Argument(name: "skip_docs", value: skipDocs),
4570
4609
  RubyCommand.Argument(name: "platform", value: platform),
4571
4610
  RubyCommand.Argument(name: "template_name", value: templateName),
4611
+ RubyCommand.Argument(name: "profile_name", value: profileName),
4612
+ RubyCommand.Argument(name: "fail_on_name_taken", value: failOnNameTaken),
4572
4613
  RubyCommand.Argument(name: "output_path", value: outputPath),
4573
4614
  RubyCommand.Argument(name: "verbose", value: verbose)])
4574
4615
  _ = runner.executeCommand(command)
@@ -4964,6 +5005,7 @@ func pem(development: Bool = false,
4964
5005
  - notifyExternalTesters: Should notify external testers?
4965
5006
  - appVersion: The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed
4966
5007
  - buildNumber: The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed
5008
+ - expirePreviousBuilds: Should expire previous builds?
4967
5009
  - firstName: The tester's first name
4968
5010
  - lastName: The tester's last name
4969
5011
  - email: The tester's email
@@ -5000,6 +5042,7 @@ func pilot(username: String,
5000
5042
  notifyExternalTesters: Bool = true,
5001
5043
  appVersion: String? = nil,
5002
5044
  buildNumber: String? = nil,
5045
+ expirePreviousBuilds: Bool = false,
5003
5046
  firstName: String? = nil,
5004
5047
  lastName: String? = nil,
5005
5048
  email: String? = nil,
@@ -5032,6 +5075,7 @@ func pilot(username: String,
5032
5075
  RubyCommand.Argument(name: "notify_external_testers", value: notifyExternalTesters),
5033
5076
  RubyCommand.Argument(name: "app_version", value: appVersion),
5034
5077
  RubyCommand.Argument(name: "build_number", value: buildNumber),
5078
+ RubyCommand.Argument(name: "expire_previous_builds", value: expirePreviousBuilds),
5035
5079
  RubyCommand.Argument(name: "first_name", value: firstName),
5036
5080
  RubyCommand.Argument(name: "last_name", value: lastName),
5037
5081
  RubyCommand.Argument(name: "email", value: email),
@@ -5663,6 +5707,8 @@ func rubyVersion() {
5663
5707
  - onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
5664
5708
  - skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
5665
5709
  - testplan: The testplan associated with the scheme that should be used for testing
5710
+ - onlyTestConfigurations: Array of strings matching test plan configurations to run
5711
+ - skipTestConfigurations: Array of strings matching test plan configurations to skip
5666
5712
  - xctestrun: Run tests using the provided `.xctestrun` file
5667
5713
  - toolchain: The toolchain that should be used for building the application (e.g. `com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a`)
5668
5714
  - clean: Should the project be cleaned before building it?
@@ -5670,8 +5716,9 @@ func rubyVersion() {
5670
5716
  - addressSanitizer: Should the address sanitizer be turned on?
5671
5717
  - threadSanitizer: Should the thread sanitizer be turned on?
5672
5718
  - openReport: Should the HTML report be opened when tests are completed?
5719
+ - disableXcpretty: Disable xcpretty formatting of build, similar to `output_style='raw'` but this will also skip the test results table
5673
5720
  - outputDirectory: The directory in which all reports will be stored
5674
- - outputStyle: Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty)
5721
+ - outputStyle: Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild)
5675
5722
  - outputTypes: Comma separated list of the output types (e.g. html, junit, json-compilation-database)
5676
5723
  - outputFiles: Comma separated list of the output files, corresponding to the types provided by :output_types (order should match). If specifying an output type of json-compilation-database with :use_clang_report_name enabled, that option will take precedence
5677
5724
  - buildlogPath: The directory where to store the raw log
@@ -5726,6 +5773,8 @@ func runTests(workspace: String? = nil,
5726
5773
  onlyTesting: Any? = nil,
5727
5774
  skipTesting: Any? = nil,
5728
5775
  testplan: String? = nil,
5776
+ onlyTestConfigurations: Any? = nil,
5777
+ skipTestConfigurations: Any? = nil,
5729
5778
  xctestrun: String? = nil,
5730
5779
  toolchain: Any? = nil,
5731
5780
  clean: Bool = false,
@@ -5733,6 +5782,7 @@ func runTests(workspace: String? = nil,
5733
5782
  addressSanitizer: Bool? = nil,
5734
5783
  threadSanitizer: Bool? = nil,
5735
5784
  openReport: Bool = false,
5785
+ disableXcpretty: Bool? = nil,
5736
5786
  outputDirectory: String = "./test_output",
5737
5787
  outputStyle: String? = nil,
5738
5788
  outputTypes: String = "html,junit",
@@ -5763,7 +5813,7 @@ func runTests(workspace: String? = nil,
5763
5813
  slackMessage: String? = nil,
5764
5814
  slackUseWebhookConfiguredUsernameAndIcon: Bool = false,
5765
5815
  slackUsername: String = "fastlane",
5766
- slackIconUrl: String = "https://s3-eu-west-1.amazonaws.com/fastlane.tools/fastlane.png",
5816
+ slackIconUrl: String = "https://fastlane.tools/assets/img/fastlane_icon.png",
5767
5817
  skipSlack: Bool = false,
5768
5818
  slackOnlyOnFailure: Bool = false,
5769
5819
  destination: Any? = nil,
@@ -5786,6 +5836,8 @@ func runTests(workspace: String? = nil,
5786
5836
  RubyCommand.Argument(name: "only_testing", value: onlyTesting),
5787
5837
  RubyCommand.Argument(name: "skip_testing", value: skipTesting),
5788
5838
  RubyCommand.Argument(name: "testplan", value: testplan),
5839
+ RubyCommand.Argument(name: "only_test_configurations", value: onlyTestConfigurations),
5840
+ RubyCommand.Argument(name: "skip_test_configurations", value: skipTestConfigurations),
5789
5841
  RubyCommand.Argument(name: "xctestrun", value: xctestrun),
5790
5842
  RubyCommand.Argument(name: "toolchain", value: toolchain),
5791
5843
  RubyCommand.Argument(name: "clean", value: clean),
@@ -5793,6 +5845,7 @@ func runTests(workspace: String? = nil,
5793
5845
  RubyCommand.Argument(name: "address_sanitizer", value: addressSanitizer),
5794
5846
  RubyCommand.Argument(name: "thread_sanitizer", value: threadSanitizer),
5795
5847
  RubyCommand.Argument(name: "open_report", value: openReport),
5848
+ RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty),
5796
5849
  RubyCommand.Argument(name: "output_directory", value: outputDirectory),
5797
5850
  RubyCommand.Argument(name: "output_style", value: outputStyle),
5798
5851
  RubyCommand.Argument(name: "output_types", value: outputTypes),
@@ -5927,6 +5980,8 @@ func say(text: Any,
5927
5980
  - onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
5928
5981
  - skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
5929
5982
  - testplan: The testplan associated with the scheme that should be used for testing
5983
+ - onlyTestConfigurations: Array of strings matching test plan configurations to run
5984
+ - skipTestConfigurations: Array of strings matching test plan configurations to skip
5930
5985
  - xctestrun: Run tests using the provided `.xctestrun` file
5931
5986
  - toolchain: The toolchain that should be used for building the application (e.g. `com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a`)
5932
5987
  - clean: Should the project be cleaned before building it?
@@ -5934,8 +5989,9 @@ func say(text: Any,
5934
5989
  - addressSanitizer: Should the address sanitizer be turned on?
5935
5990
  - threadSanitizer: Should the thread sanitizer be turned on?
5936
5991
  - openReport: Should the HTML report be opened when tests are completed?
5992
+ - disableXcpretty: Disable xcpretty formatting of build, similar to `output_style='raw'` but this will also skip the test results table
5937
5993
  - outputDirectory: The directory in which all reports will be stored
5938
- - outputStyle: Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty)
5994
+ - outputStyle: Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild)
5939
5995
  - outputTypes: Comma separated list of the output types (e.g. html, junit, json-compilation-database)
5940
5996
  - outputFiles: Comma separated list of the output files, corresponding to the types provided by :output_types (order should match). If specifying an output type of json-compilation-database with :use_clang_report_name enabled, that option will take precedence
5941
5997
  - buildlogPath: The directory where to store the raw log
@@ -5990,6 +6046,8 @@ func scan(workspace: Any? = scanfile.workspace,
5990
6046
  onlyTesting: Any? = scanfile.onlyTesting,
5991
6047
  skipTesting: Any? = scanfile.skipTesting,
5992
6048
  testplan: Any? = scanfile.testplan,
6049
+ onlyTestConfigurations: Any? = scanfile.onlyTestConfigurations,
6050
+ skipTestConfigurations: Any? = scanfile.skipTestConfigurations,
5993
6051
  xctestrun: Any? = scanfile.xctestrun,
5994
6052
  toolchain: Any? = scanfile.toolchain,
5995
6053
  clean: Bool = scanfile.clean,
@@ -5997,6 +6055,7 @@ func scan(workspace: Any? = scanfile.workspace,
5997
6055
  addressSanitizer: Bool? = scanfile.addressSanitizer,
5998
6056
  threadSanitizer: Bool? = scanfile.threadSanitizer,
5999
6057
  openReport: Bool = scanfile.openReport,
6058
+ disableXcpretty: Bool? = scanfile.disableXcpretty,
6000
6059
  outputDirectory: Any = scanfile.outputDirectory,
6001
6060
  outputStyle: Any? = scanfile.outputStyle,
6002
6061
  outputTypes: Any = scanfile.outputTypes,
@@ -6050,6 +6109,8 @@ func scan(workspace: Any? = scanfile.workspace,
6050
6109
  RubyCommand.Argument(name: "only_testing", value: onlyTesting),
6051
6110
  RubyCommand.Argument(name: "skip_testing", value: skipTesting),
6052
6111
  RubyCommand.Argument(name: "testplan", value: testplan),
6112
+ RubyCommand.Argument(name: "only_test_configurations", value: onlyTestConfigurations),
6113
+ RubyCommand.Argument(name: "skip_test_configurations", value: skipTestConfigurations),
6053
6114
  RubyCommand.Argument(name: "xctestrun", value: xctestrun),
6054
6115
  RubyCommand.Argument(name: "toolchain", value: toolchain),
6055
6116
  RubyCommand.Argument(name: "clean", value: clean),
@@ -6057,6 +6118,7 @@ func scan(workspace: Any? = scanfile.workspace,
6057
6118
  RubyCommand.Argument(name: "address_sanitizer", value: addressSanitizer),
6058
6119
  RubyCommand.Argument(name: "thread_sanitizer", value: threadSanitizer),
6059
6120
  RubyCommand.Argument(name: "open_report", value: openReport),
6121
+ RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty),
6060
6122
  RubyCommand.Argument(name: "output_directory", value: outputDirectory),
6061
6123
  RubyCommand.Argument(name: "output_style", value: outputStyle),
6062
6124
  RubyCommand.Argument(name: "output_types", value: outputTypes),
@@ -6489,6 +6551,7 @@ func setupTravis(force: Bool = false) {
6489
6551
  - platform: Set the provisioning profile's platform (i.e. ios, tvos)
6490
6552
  - readonly: Only fetch existing profile, don't generate new ones
6491
6553
  - 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")
6554
+ - failOnNameTaken: Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first
6492
6555
 
6493
6556
  - returns: The UUID of the profile sigh just fetched/generated
6494
6557
 
@@ -6513,7 +6576,8 @@ func sigh(adhoc: Bool = false,
6513
6576
  skipCertificateVerification: Bool = false,
6514
6577
  platform: Any = "ios",
6515
6578
  readonly: Bool = false,
6516
- templateName: String? = nil) {
6579
+ templateName: String? = nil,
6580
+ failOnNameTaken: Bool = false) {
6517
6581
  let command = RubyCommand(commandID: "", methodName: "sigh", className: nil, args: [RubyCommand.Argument(name: "adhoc", value: adhoc),
6518
6582
  RubyCommand.Argument(name: "developer_id", value: developerId),
6519
6583
  RubyCommand.Argument(name: "development", value: development),
@@ -6533,7 +6597,8 @@ func sigh(adhoc: Bool = false,
6533
6597
  RubyCommand.Argument(name: "skip_certificate_verification", value: skipCertificateVerification),
6534
6598
  RubyCommand.Argument(name: "platform", value: platform),
6535
6599
  RubyCommand.Argument(name: "readonly", value: readonly),
6536
- RubyCommand.Argument(name: "template_name", value: templateName)])
6600
+ RubyCommand.Argument(name: "template_name", value: templateName),
6601
+ RubyCommand.Argument(name: "fail_on_name_taken", value: failOnNameTaken)])
6537
6602
  _ = runner.executeCommand(command)
6538
6603
  }
6539
6604
 
@@ -6573,7 +6638,7 @@ func slack(message: String? = nil,
6573
6638
  useWebhookConfiguredUsernameAndIcon: Bool = false,
6574
6639
  slackUrl: String,
6575
6640
  username: String = "fastlane",
6576
- iconUrl: String = "https://s3-eu-west-1.amazonaws.com/fastlane.tools/fastlane.png",
6641
+ iconUrl: String = "https://fastlane.tools/assets/img/fastlane_icon.png",
6577
6642
  payload: [String : Any] = [:],
6578
6643
  defaultPayloads: [String]? = nil,
6579
6644
  attachmentProperties: [String : Any] = [:],
@@ -6654,6 +6719,7 @@ func slackTrainStart(distance: Int = 5,
6654
6719
  - simpleOutput: Tell slather that it should output results to the terminal
6655
6720
  - gutterJson: Tell slather that it should output results as Gutter JSON format
6656
6721
  - coberturaXml: Tell slather that it should output results as Cobertura XML format
6722
+ - sonarqubeXml: Tell slather that it should output results as SonarQube Generic XML format
6657
6723
  - llvmCov: Tell slather that it should output results as llvm-cov show format
6658
6724
  - html: Tell slather that it should output results as static HTML pages
6659
6725
  - show: Tell slather that it should open static html pages automatically
@@ -6687,6 +6753,7 @@ func slather(buildDirectory: String? = nil,
6687
6753
  simpleOutput: Bool? = nil,
6688
6754
  gutterJson: Bool? = nil,
6689
6755
  coberturaXml: Bool? = nil,
6756
+ sonarqubeXml: Bool? = nil,
6690
6757
  llvmCov: Any? = nil,
6691
6758
  html: Bool? = nil,
6692
6759
  show: Bool = false,
@@ -6716,6 +6783,7 @@ func slather(buildDirectory: String? = nil,
6716
6783
  RubyCommand.Argument(name: "simple_output", value: simpleOutput),
6717
6784
  RubyCommand.Argument(name: "gutter_json", value: gutterJson),
6718
6785
  RubyCommand.Argument(name: "cobertura_xml", value: coberturaXml),
6786
+ RubyCommand.Argument(name: "sonarqube_xml", value: sonarqubeXml),
6719
6787
  RubyCommand.Argument(name: "llvm_cov", value: llvmCov),
6720
6788
  RubyCommand.Argument(name: "html", value: html),
6721
6789
  RubyCommand.Argument(name: "show", value: show),
@@ -6751,11 +6819,13 @@ func slather(buildDirectory: String? = nil,
6751
6819
  - clearPreviousScreenshots: Enabling this option will automatically clear previously generated screenshots before running snapshot
6752
6820
  - reinstallApp: Enabling this option will automatically uninstall the application before running it
6753
6821
  - eraseSimulator: Enabling this option will automatically erase the simulator before running the application
6822
+ - overrideStatusBar: Enabling this option wil automatically override the status bar to show 9:41 AM, full battery, and full reception
6754
6823
  - localizeSimulator: Enabling this option will configure the Simulator's system language
6755
6824
  - darkMode: Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark)
6756
6825
  - appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
6757
6826
  - addPhotos: A list of photos that should be added to the simulator before running the application
6758
6827
  - addVideos: A list of videos that should be added to the simulator before running the application
6828
+ - htmlTemplate: A path to screenshots.html template
6759
6829
  - buildlogPath: The directory where to store the build log
6760
6830
  - clean: Should the project be cleaned before building it?
6761
6831
  - testWithoutBuilding: Test without building, requires a derived data path
@@ -6772,6 +6842,10 @@ func slather(buildDirectory: String? = nil,
6772
6842
  - concurrentSimulators: Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9
6773
6843
  - disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
6774
6844
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
6845
+ - testplan: The testplan associated with the scheme that should be used for testing
6846
+ - onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
6847
+ - skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
6848
+ - disableXcpretty: Disable xcpretty formatting of build
6775
6849
  */
6776
6850
  func snapshot(workspace: Any? = snapshotfile.workspace,
6777
6851
  project: Any? = snapshotfile.project,
@@ -6788,11 +6862,13 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
6788
6862
  clearPreviousScreenshots: Bool = snapshotfile.clearPreviousScreenshots,
6789
6863
  reinstallApp: Bool = snapshotfile.reinstallApp,
6790
6864
  eraseSimulator: Bool = snapshotfile.eraseSimulator,
6865
+ overrideStatusBar: Bool = snapshotfile.overrideStatusBar,
6791
6866
  localizeSimulator: Bool = snapshotfile.localizeSimulator,
6792
6867
  darkMode: Bool? = snapshotfile.darkMode,
6793
6868
  appIdentifier: Any? = snapshotfile.appIdentifier,
6794
6869
  addPhotos: [String]? = snapshotfile.addPhotos,
6795
6870
  addVideos: [String]? = snapshotfile.addVideos,
6871
+ htmlTemplate: Any = snapshotfile.htmlTemplate,
6796
6872
  buildlogPath: Any = snapshotfile.buildlogPath,
6797
6873
  clean: Bool = snapshotfile.clean,
6798
6874
  testWithoutBuilding: Bool? = snapshotfile.testWithoutBuilding,
@@ -6808,7 +6884,11 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
6808
6884
  namespaceLogFiles: Any? = snapshotfile.namespaceLogFiles,
6809
6885
  concurrentSimulators: Bool = snapshotfile.concurrentSimulators,
6810
6886
  disableSlideToType: Bool = snapshotfile.disableSlideToType,
6811
- clonedSourcePackagesPath: Any? = snapshotfile.clonedSourcePackagesPath) {
6887
+ clonedSourcePackagesPath: Any? = snapshotfile.clonedSourcePackagesPath,
6888
+ testplan: Any? = snapshotfile.testplan,
6889
+ onlyTesting: Any? = snapshotfile.onlyTesting,
6890
+ skipTesting: Any? = snapshotfile.skipTesting,
6891
+ disableXcpretty: Bool? = snapshotfile.disableXcpretty) {
6812
6892
  let command = RubyCommand(commandID: "", methodName: "snapshot", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
6813
6893
  RubyCommand.Argument(name: "project", value: project),
6814
6894
  RubyCommand.Argument(name: "xcargs", value: xcargs),
@@ -6824,11 +6904,13 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
6824
6904
  RubyCommand.Argument(name: "clear_previous_screenshots", value: clearPreviousScreenshots),
6825
6905
  RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
6826
6906
  RubyCommand.Argument(name: "erase_simulator", value: eraseSimulator),
6907
+ RubyCommand.Argument(name: "override_status_bar", value: overrideStatusBar),
6827
6908
  RubyCommand.Argument(name: "localize_simulator", value: localizeSimulator),
6828
6909
  RubyCommand.Argument(name: "dark_mode", value: darkMode),
6829
6910
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
6830
6911
  RubyCommand.Argument(name: "add_photos", value: addPhotos),
6831
6912
  RubyCommand.Argument(name: "add_videos", value: addVideos),
6913
+ RubyCommand.Argument(name: "html_template", value: htmlTemplate),
6832
6914
  RubyCommand.Argument(name: "buildlog_path", value: buildlogPath),
6833
6915
  RubyCommand.Argument(name: "clean", value: clean),
6834
6916
  RubyCommand.Argument(name: "test_without_building", value: testWithoutBuilding),
@@ -6844,7 +6926,11 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
6844
6926
  RubyCommand.Argument(name: "namespace_log_files", value: namespaceLogFiles),
6845
6927
  RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
6846
6928
  RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
6847
- RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
6929
+ RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
6930
+ RubyCommand.Argument(name: "testplan", value: testplan),
6931
+ RubyCommand.Argument(name: "only_testing", value: onlyTesting),
6932
+ RubyCommand.Argument(name: "skip_testing", value: skipTesting),
6933
+ RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty)])
6848
6934
  _ = runner.executeCommand(command)
6849
6935
  }
6850
6936
 
@@ -7060,6 +7146,7 @@ func ssh(username: String,
7060
7146
  - timeout: Timeout for read, open, and send (in seconds)
7061
7147
  - deactivateOnPromote: **DEPRECATED!** Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track
7062
7148
  - versionCodesToRetain: An array of version codes to retain when publishing a new APK
7149
+ - inAppUpdatePriority: In-app update priority for all the newly added apks in the release. Can take values between [0,5]
7063
7150
  - obbMainReferencesVersion: References version of 'main' expansion file
7064
7151
  - obbMainFileSize: Size of 'main' expansion file in bytes
7065
7152
  - obbPatchReferencesVersion: References version of 'patch' expansion file
@@ -7097,6 +7184,7 @@ func supply(packageName: String,
7097
7184
  timeout: Int = 300,
7098
7185
  deactivateOnPromote: Bool = true,
7099
7186
  versionCodesToRetain: [String]? = nil,
7187
+ inAppUpdatePriority: Int? = nil,
7100
7188
  obbMainReferencesVersion: String? = nil,
7101
7189
  obbMainFileSize: String? = nil,
7102
7190
  obbPatchReferencesVersion: String? = nil,
@@ -7131,6 +7219,7 @@ func supply(packageName: String,
7131
7219
  RubyCommand.Argument(name: "timeout", value: timeout),
7132
7220
  RubyCommand.Argument(name: "deactivate_on_promote", value: deactivateOnPromote),
7133
7221
  RubyCommand.Argument(name: "version_codes_to_retain", value: versionCodesToRetain),
7222
+ RubyCommand.Argument(name: "in_app_update_priority", value: inAppUpdatePriority),
7134
7223
  RubyCommand.Argument(name: "obb_main_references_version", value: obbMainReferencesVersion),
7135
7224
  RubyCommand.Argument(name: "obb_main_file_size", value: obbMainFileSize),
7136
7225
  RubyCommand.Argument(name: "obb_patch_references_version", value: obbPatchReferencesVersion),
@@ -7225,6 +7314,8 @@ func swiftlint(mode: Any = "lint",
7225
7314
  - skipDocs: Skip generation of a README.md for the created git repository
7226
7315
  - platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos)
7227
7316
  - 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")
7317
+ - profileName: A custom name for the provisioning profile. This will replace the default provisioning profile name if specified
7318
+ - failOnNameTaken: Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first
7228
7319
  - outputPath: Path in which to export certificates, key and profile
7229
7320
  - verbose: Print out extra information and all commands
7230
7321
 
@@ -7263,6 +7354,8 @@ func syncCodeSigning(type: String = "development",
7263
7354
  skipDocs: Bool = false,
7264
7355
  platform: String = "ios",
7265
7356
  templateName: String? = nil,
7357
+ profileName: String? = nil,
7358
+ failOnNameTaken: Bool = false,
7266
7359
  outputPath: String? = nil,
7267
7360
  verbose: Bool = false) {
7268
7361
  let command = RubyCommand(commandID: "", methodName: "sync_code_signing", className: nil, args: [RubyCommand.Argument(name: "type", value: type),
@@ -7298,6 +7391,8 @@ func syncCodeSigning(type: String = "development",
7298
7391
  RubyCommand.Argument(name: "skip_docs", value: skipDocs),
7299
7392
  RubyCommand.Argument(name: "platform", value: platform),
7300
7393
  RubyCommand.Argument(name: "template_name", value: templateName),
7394
+ RubyCommand.Argument(name: "profile_name", value: profileName),
7395
+ RubyCommand.Argument(name: "fail_on_name_taken", value: failOnNameTaken),
7301
7396
  RubyCommand.Argument(name: "output_path", value: outputPath),
7302
7397
  RubyCommand.Argument(name: "verbose", value: verbose)])
7303
7398
  _ = runner.executeCommand(command)
@@ -7392,6 +7487,7 @@ func testfairy(apiKey: String,
7392
7487
  - notifyExternalTesters: Should notify external testers?
7393
7488
  - appVersion: The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed
7394
7489
  - buildNumber: The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed
7490
+ - expirePreviousBuilds: Should expire previous builds?
7395
7491
  - firstName: The tester's first name
7396
7492
  - lastName: The tester's last name
7397
7493
  - email: The tester's email
@@ -7428,6 +7524,7 @@ func testflight(username: String,
7428
7524
  notifyExternalTesters: Bool = true,
7429
7525
  appVersion: String? = nil,
7430
7526
  buildNumber: String? = nil,
7527
+ expirePreviousBuilds: Bool = false,
7431
7528
  firstName: String? = nil,
7432
7529
  lastName: String? = nil,
7433
7530
  email: String? = nil,
@@ -7460,6 +7557,7 @@ func testflight(username: String,
7460
7557
  RubyCommand.Argument(name: "notify_external_testers", value: notifyExternalTesters),
7461
7558
  RubyCommand.Argument(name: "app_version", value: appVersion),
7462
7559
  RubyCommand.Argument(name: "build_number", value: buildNumber),
7560
+ RubyCommand.Argument(name: "expire_previous_builds", value: expirePreviousBuilds),
7463
7561
  RubyCommand.Argument(name: "first_name", value: firstName),
7464
7562
  RubyCommand.Argument(name: "last_name", value: lastName),
7465
7563
  RubyCommand.Argument(name: "email", value: email),
@@ -8157,6 +8255,7 @@ func uploadToAppStore(username: String,
8157
8255
  - timeout: Timeout for read, open, and send (in seconds)
8158
8256
  - deactivateOnPromote: **DEPRECATED!** Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track
8159
8257
  - versionCodesToRetain: An array of version codes to retain when publishing a new APK
8258
+ - inAppUpdatePriority: In-app update priority for all the newly added apks in the release. Can take values between [0,5]
8160
8259
  - obbMainReferencesVersion: References version of 'main' expansion file
8161
8260
  - obbMainFileSize: Size of 'main' expansion file in bytes
8162
8261
  - obbPatchReferencesVersion: References version of 'patch' expansion file
@@ -8194,6 +8293,7 @@ func uploadToPlayStore(packageName: String,
8194
8293
  timeout: Int = 300,
8195
8294
  deactivateOnPromote: Bool = true,
8196
8295
  versionCodesToRetain: [String]? = nil,
8296
+ inAppUpdatePriority: Int? = nil,
8197
8297
  obbMainReferencesVersion: String? = nil,
8198
8298
  obbMainFileSize: String? = nil,
8199
8299
  obbPatchReferencesVersion: String? = nil,
@@ -8228,6 +8328,7 @@ func uploadToPlayStore(packageName: String,
8228
8328
  RubyCommand.Argument(name: "timeout", value: timeout),
8229
8329
  RubyCommand.Argument(name: "deactivate_on_promote", value: deactivateOnPromote),
8230
8330
  RubyCommand.Argument(name: "version_codes_to_retain", value: versionCodesToRetain),
8331
+ RubyCommand.Argument(name: "in_app_update_priority", value: inAppUpdatePriority),
8231
8332
  RubyCommand.Argument(name: "obb_main_references_version", value: obbMainReferencesVersion),
8232
8333
  RubyCommand.Argument(name: "obb_main_file_size", value: obbMainFileSize),
8233
8334
  RubyCommand.Argument(name: "obb_patch_references_version", value: obbPatchReferencesVersion),
@@ -8298,6 +8399,7 @@ func uploadToPlayStoreInternalAppSharing(packageName: String,
8298
8399
  - notifyExternalTesters: Should notify external testers?
8299
8400
  - appVersion: The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed
8300
8401
  - buildNumber: The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed
8402
+ - expirePreviousBuilds: Should expire previous builds?
8301
8403
  - firstName: The tester's first name
8302
8404
  - lastName: The tester's last name
8303
8405
  - email: The tester's email
@@ -8334,6 +8436,7 @@ func uploadToTestflight(username: String,
8334
8436
  notifyExternalTesters: Bool = true,
8335
8437
  appVersion: String? = nil,
8336
8438
  buildNumber: String? = nil,
8439
+ expirePreviousBuilds: Bool = false,
8337
8440
  firstName: String? = nil,
8338
8441
  lastName: String? = nil,
8339
8442
  email: String? = nil,
@@ -8366,6 +8469,7 @@ func uploadToTestflight(username: String,
8366
8469
  RubyCommand.Argument(name: "notify_external_testers", value: notifyExternalTesters),
8367
8470
  RubyCommand.Argument(name: "app_version", value: appVersion),
8368
8471
  RubyCommand.Argument(name: "build_number", value: buildNumber),
8472
+ RubyCommand.Argument(name: "expire_previous_builds", value: expirePreviousBuilds),
8369
8473
  RubyCommand.Argument(name: "first_name", value: firstName),
8370
8474
  RubyCommand.Argument(name: "last_name", value: lastName),
8371
8475
  RubyCommand.Argument(name: "email", value: email),
@@ -8659,7 +8763,7 @@ func xcov(workspace: String? = nil,
8659
8763
  htmlReport: Bool = true,
8660
8764
  markdownReport: Bool = false,
8661
8765
  jsonReport: Bool = false,
8662
- minimumCoveragePercentage: Int = 0,
8766
+ minimumCoveragePercentage: Float = 0,
8663
8767
  slackUrl: String? = nil,
8664
8768
  slackChannel: String? = nil,
8665
8769
  skipSlack: Bool = false,
@@ -8675,7 +8779,7 @@ func xcov(workspace: String? = nil,
8675
8779
  coverallsServiceJobId: String? = nil,
8676
8780
  coverallsRepoToken: String? = nil,
8677
8781
  xcconfig: String? = nil,
8678
- ideFoundationPath: String = "/Applications/Xcode-11.4.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
8782
+ ideFoundationPath: String = "/Applications/Xcode-11.5.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
8679
8783
  legacySupport: Bool = false) {
8680
8784
  let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
8681
8785
  RubyCommand.Argument(name: "project", value: project),
@@ -8820,4 +8924,4 @@ let snapshotfile: Snapshotfile = Snapshotfile()
8820
8924
 
8821
8925
  // Please don't remove the lines below
8822
8926
  // They are used to detect outdated files
8823
- // FastlaneRunnerAPIVersion [0.9.74]
8927
+ // FastlaneRunnerAPIVersion [0.9.77]