fastlane 2.168.0 → 2.169.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +84 -84
  3. data/cert/lib/cert/.options.rb.swp +0 -0
  4. data/cert/lib/cert/.runner.rb.swp +0 -0
  5. data/cert/lib/cert/options.rb +2 -2
  6. data/deliver/lib/deliver/loader.rb +136 -18
  7. data/deliver/lib/deliver/upload_metadata.rb +4 -10
  8. data/deliver/lib/deliver/upload_screenshots.rb +1 -64
  9. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +1 -1
  10. data/fastlane/lib/fastlane/actions/xcode_install.rb +8 -5
  11. data/fastlane/lib/fastlane/version.rb +1 -1
  12. data/fastlane/swift/Deliverfile.swift +1 -1
  13. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  14. data/fastlane/swift/Fastlane.swift +35 -14
  15. data/fastlane/swift/Gymfile.swift +1 -1
  16. data/fastlane/swift/GymfileProtocol.swift +5 -1
  17. data/fastlane/swift/Matchfile.swift +1 -1
  18. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  19. data/fastlane/swift/Precheckfile.swift +1 -1
  20. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  21. data/fastlane/swift/Scanfile.swift +1 -1
  22. data/fastlane/swift/ScanfileProtocol.swift +5 -1
  23. data/fastlane/swift/Screengrabfile.swift +1 -1
  24. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  25. data/fastlane/swift/Snapshotfile.swift +1 -1
  26. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  27. data/gym/lib/gym/generators/build_command_generator.rb +1 -0
  28. data/gym/lib/gym/options.rb +7 -1
  29. data/{spaceship/lib/spaceship/connect_api/models/.app_screenshot.rb.swp → match/lib/match/.options.rb.swp} +0 -0
  30. data/scan/lib/scan/options.rb +7 -1
  31. data/scan/lib/scan/test_command_generator.rb +1 -0
  32. data/{spaceship/lib/spaceship/connect_api/models/.build.rb.swp → sigh/lib/sigh/.options.rb.swp} +0 -0
  33. data/snapshot/lib/assets/SnapshotHelper.swift +5 -1
  34. data/spaceship/lib/spaceship/client.rb +14 -0
  35. data/spaceship/lib/spaceship/connect_api/models/app.rb +13 -4
  36. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +1 -0
  37. data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +2 -0
  38. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +1 -0
  39. data/spaceship/lib/spaceship/errors.rb +19 -0
  40. data/spaceship/lib/spaceship/two_step_or_factor_client.rb +18 -6
  41. metadata +22 -21
  42. data/spaceship/lib/spaceship/connect_api/models/.app.rb.swp +0 -0
@@ -251,70 +251,7 @@ module Deliver
251
251
 
252
252
  def collect_screenshots(options)
253
253
  return [] if options[:skip_screenshots]
254
- return collect_screenshots_for_languages(options[:screenshots_path], options[:ignore_language_directory_validation])
255
- end
256
-
257
- def collect_screenshots_for_languages(path, ignore_validation)
258
- screenshots = []
259
- extensions = '{png,jpg,jpeg}'
260
-
261
- available_languages = UploadScreenshots.available_languages.each_with_object({}) do |lang, lang_hash|
262
- lang_hash[lang.downcase] = lang
263
- end
264
-
265
- Loader.language_folders(path, ignore_validation).each do |lng_folder|
266
- language = File.basename(lng_folder)
267
-
268
- # Check to see if we need to traverse multiple platforms or just a single platform
269
- if language == Loader::APPLE_TV_DIR_NAME || language == Loader::IMESSAGE_DIR_NAME
270
- screenshots.concat(collect_screenshots_for_languages(File.join(path, language), ignore_validation))
271
- next
272
- end
273
-
274
- files = Dir.glob(File.join(lng_folder, "*.#{extensions}"), File::FNM_CASEFOLD).sort
275
- next if files.count == 0
276
-
277
- framed_screenshots_found = Dir.glob(File.join(lng_folder, "*_framed.#{extensions}"), File::FNM_CASEFOLD).count > 0
278
-
279
- UI.important("Framed screenshots are detected! 🖼 Non-framed screenshot files may be skipped. 🏃") if framed_screenshots_found
280
-
281
- language_dir_name = File.basename(lng_folder)
282
-
283
- if available_languages[language_dir_name.downcase].nil?
284
- UI.user_error!("#{language_dir_name} is not an available language. Please verify that your language codes are available in iTunesConnect. See https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/AppStoreTerritories.html for more information.")
285
- end
286
-
287
- language = available_languages[language_dir_name.downcase]
288
-
289
- files.each do |file_path|
290
- is_framed = file_path.downcase.include?("_framed.")
291
- is_watch = file_path.downcase.include?("watch")
292
-
293
- if framed_screenshots_found && !is_framed && !is_watch
294
- UI.important("🏃 Skipping screenshot file: #{file_path}")
295
- next
296
- end
297
-
298
- screenshots << AppScreenshot.new(file_path, language)
299
- end
300
- end
301
-
302
- # Checking if the device type exists in spaceship
303
- # Ex: iPhone 6.1 inch isn't supported in App Store Connect but need
304
- # to have it in there for frameit support
305
- unaccepted_device_shown = false
306
- screenshots.select! do |screenshot|
307
- exists = !screenshot.device_type.nil?
308
- unless exists
309
- UI.important("Unaccepted device screenshots are detected! 🚫 Screenshot file will be skipped. 🏃") unless unaccepted_device_shown
310
- unaccepted_device_shown = true
311
-
312
- UI.important("🏃 Skipping screenshot file: #{screenshot.path} - Not an accepted App Store Connect device...")
313
- end
314
- exists
315
- end
316
-
317
- return screenshots
254
+ return Loader.load_app_screenshots(options[:screenshots_path], options[:ignore_language_directory_validation])
318
255
  end
319
256
 
320
257
  # helper method so Spaceship::Tunes.client.available_languages is easier to test
@@ -237,7 +237,7 @@ The `keyword.strings` and `title.strings` are standard `.strings` file you alrea
237
237
  **Notes**
238
238
 
239
239
  - These `.strings` files **MUST** be utf-8 (UTF-8) or utf-16 encoded (UTF-16 BE with BOM). They also must begin with an empty line. If you are having trouble see [issue #1740](https://github.com/fastlane/fastlane/issues/1740)
240
- - You **MUST** provide a background if you want titles. _frameit_ will not add the tiles if a background is not specified.
240
+ - You **MUST** provide a background if you want titles. _frameit_ will not add the titles if a background is not specified.
241
241
 
242
242
  ### Screenshot orientation
243
243
 
@@ -17,7 +17,7 @@ module Fastlane
17
17
  if installer.installed?(params[:version])
18
18
  UI.success("Xcode #{params[:version]} is already installed ✨")
19
19
  else
20
- installer.install_version(params[:version], true, true, true, true)
20
+ installer.install_version(params[:version], true, true, true, true, nil, true, nil, params[:download_retry_attempts])
21
21
  end
22
22
 
23
23
  xcode = installer.installed_versions.find { |x| x.version == params[:version] }
@@ -49,9 +49,7 @@ module Fastlane
49
49
  [
50
50
  FastlaneCore::ConfigItem.new(key: :version,
51
51
  env_name: "FL_XCODE_VERSION",
52
- description: "The version number of the version of Xcode to install",
53
- verify_block: proc do |value|
54
- end),
52
+ description: "The version number of the version of Xcode to install"),
55
53
  FastlaneCore::ConfigItem.new(key: :username,
56
54
  short_option: "-u",
57
55
  env_name: "XCODE_INSTALL_USER",
@@ -65,7 +63,12 @@ module Fastlane
65
63
  optional: true,
66
64
  code_gen_sensitive: true,
67
65
  default_value: CredentialsManager::AppfileConfig.try_fetch_value(:team_id),
68
- default_value_dynamic: true)
66
+ default_value_dynamic: true),
67
+ FastlaneCore::ConfigItem.new(key: :download_retry_attempts,
68
+ env_name: "XCODE_INSTALL_DOWNLOAD_RETRY_ATTEMPTS",
69
+ description: "Number of times the download will be retried in case of failure",
70
+ type: Integer,
71
+ default_value: 3)
69
72
  ]
70
73
  end
71
74
 
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.168.0'.freeze
2
+ VERSION = '2.169.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
@@ -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.168.0
20
+ // Generated with fastlane 2.169.0
@@ -256,4 +256,4 @@ public extension DeliverfileProtocol {
256
256
 
257
257
  // Please don't remove the lines below
258
258
  // They are used to detect outdated files
259
- // FastlaneRunnerAPIVersion [0.9.51]
259
+ // FastlaneRunnerAPIVersion [0.9.52]
@@ -981,6 +981,7 @@ public func buildAndroidApp(task: String? = nil,
981
981
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
982
982
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
983
983
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
984
+ - useSystemScm: Lets xcodebuild use system's scm configuration
984
985
 
985
986
  - returns: The absolute path to the generated ipa file
986
987
 
@@ -1029,7 +1030,8 @@ public func buildApp(workspace: String? = nil,
1029
1030
  analyzeBuildTime: Bool? = nil,
1030
1031
  xcprettyUtf: Bool? = nil,
1031
1032
  skipProfileDetection: Bool = false,
1032
- clonedSourcePackagesPath: String? = nil)
1033
+ clonedSourcePackagesPath: String? = nil,
1034
+ useSystemScm: Bool = false)
1033
1035
  {
1034
1036
  let command = RubyCommand(commandID: "", methodName: "build_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1035
1037
  RubyCommand.Argument(name: "project", value: project),
@@ -1074,7 +1076,8 @@ public func buildApp(workspace: String? = nil,
1074
1076
  RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
1075
1077
  RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
1076
1078
  RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
1077
- RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
1079
+ RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
1080
+ RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
1078
1081
  _ = runner.executeCommand(command)
1079
1082
  }
1080
1083
 
@@ -1123,6 +1126,7 @@ public func buildApp(workspace: String? = nil,
1123
1126
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
1124
1127
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
1125
1128
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1129
+ - useSystemScm: Lets xcodebuild use system's scm configuration
1126
1130
 
1127
1131
  - returns: The absolute path to the generated ipa file
1128
1132
 
@@ -1168,7 +1172,8 @@ public func buildIosApp(workspace: String? = nil,
1168
1172
  analyzeBuildTime: Bool? = nil,
1169
1173
  xcprettyUtf: Bool? = nil,
1170
1174
  skipProfileDetection: Bool = false,
1171
- clonedSourcePackagesPath: String? = nil)
1175
+ clonedSourcePackagesPath: String? = nil,
1176
+ useSystemScm: Bool = false)
1172
1177
  {
1173
1178
  let command = RubyCommand(commandID: "", methodName: "build_ios_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1174
1179
  RubyCommand.Argument(name: "project", value: project),
@@ -1210,7 +1215,8 @@ public func buildIosApp(workspace: String? = nil,
1210
1215
  RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
1211
1216
  RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
1212
1217
  RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
1213
- RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
1218
+ RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
1219
+ RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
1214
1220
  _ = runner.executeCommand(command)
1215
1221
  }
1216
1222
 
@@ -1260,6 +1266,7 @@ public func buildIosApp(workspace: String? = nil,
1260
1266
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
1261
1267
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
1262
1268
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1269
+ - useSystemScm: Lets xcodebuild use system's scm configuration
1263
1270
 
1264
1271
  - returns: The absolute path to the generated ipa file
1265
1272
 
@@ -1306,7 +1313,8 @@ public func buildMacApp(workspace: String? = nil,
1306
1313
  analyzeBuildTime: Bool? = nil,
1307
1314
  xcprettyUtf: Bool? = nil,
1308
1315
  skipProfileDetection: Bool = false,
1309
- clonedSourcePackagesPath: String? = nil)
1316
+ clonedSourcePackagesPath: String? = nil,
1317
+ useSystemScm: Bool = false)
1310
1318
  {
1311
1319
  let command = RubyCommand(commandID: "", methodName: "build_mac_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1312
1320
  RubyCommand.Argument(name: "project", value: project),
@@ -1349,7 +1357,8 @@ public func buildMacApp(workspace: String? = nil,
1349
1357
  RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
1350
1358
  RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
1351
1359
  RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
1352
- RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
1360
+ RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
1361
+ RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
1353
1362
  _ = runner.executeCommand(command)
1354
1363
  }
1355
1364
 
@@ -1863,7 +1872,7 @@ public func carthage(command: String = "bootstrap",
1863
1872
  - keychainPath: Path to a custom keychain
1864
1873
  - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password
1865
1874
  - skipSetPartitionList: Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing
1866
- - platform: Set the provisioning profile's platform (ios, macos)
1875
+ - platform: Set the provisioning profile's platform (ios, macos, tvos)
1867
1876
 
1868
1877
  **Important**: It is recommended to use [match](https://docs.fastlane.tools/actions/match/) according to the [codesigning.guide](https://codesigning.guide) for generating and maintaining your certificates. Use _cert_ directly only if you want full control over what's going on and know more about codesigning.
1869
1878
  Use this action to download the latest code signing identity.
@@ -3351,7 +3360,7 @@ public func getBuildNumberRepository(useHgRevisionNumber: Bool = false) {
3351
3360
  - keychainPath: Path to a custom keychain
3352
3361
  - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password
3353
3362
  - skipSetPartitionList: Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing
3354
- - platform: Set the provisioning profile's platform (ios, macos)
3363
+ - platform: Set the provisioning profile's platform (ios, macos, tvos)
3355
3364
 
3356
3365
  **Important**: It is recommended to use [match](https://docs.fastlane.tools/actions/match/) according to the [codesigning.guide](https://codesigning.guide) for generating and maintaining your certificates. Use _cert_ directly only if you want full control over what's going on and know more about codesigning.
3357
3366
  Use this action to download the latest code signing identity.
@@ -3992,6 +4001,7 @@ public func gradle(task: String? = nil,
3992
4001
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
3993
4002
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
3994
4003
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
4004
+ - useSystemScm: Lets xcodebuild use system's scm configuration
3995
4005
 
3996
4006
  - returns: The absolute path to the generated ipa file
3997
4007
 
@@ -4040,7 +4050,8 @@ public func gym(workspace: Any? = gymfile.workspace,
4040
4050
  analyzeBuildTime: Bool? = gymfile.analyzeBuildTime,
4041
4051
  xcprettyUtf: Bool? = gymfile.xcprettyUtf,
4042
4052
  skipProfileDetection: Bool = gymfile.skipProfileDetection,
4043
- clonedSourcePackagesPath: Any? = gymfile.clonedSourcePackagesPath)
4053
+ clonedSourcePackagesPath: Any? = gymfile.clonedSourcePackagesPath,
4054
+ useSystemScm: Bool = gymfile.useSystemScm)
4044
4055
  {
4045
4056
  let command = RubyCommand(commandID: "", methodName: "gym", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
4046
4057
  RubyCommand.Argument(name: "project", value: project),
@@ -4085,7 +4096,8 @@ public func gym(workspace: Any? = gymfile.workspace,
4085
4096
  RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
4086
4097
  RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
4087
4098
  RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
4088
- RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
4099
+ RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
4100
+ RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
4089
4101
  _ = runner.executeCommand(command)
4090
4102
  }
4091
4103
 
@@ -6081,6 +6093,7 @@ public func rubyVersion() {
6081
6093
  - customReportFileName: **DEPRECATED!** Use `--output_files` instead - Sets custom full report file name when generating a single report
6082
6094
  - xcodebuildCommand: Allows for override of the default `xcodebuild` command
6083
6095
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
6096
+ - useSystemScm: Lets xcodebuild use system's scm configuration
6084
6097
  - failBuild: Should this step stop the build if the tests fail? Set this to false if you're using trainer
6085
6098
 
6086
6099
  More information: https://docs.fastlane.tools/actions/scan/
@@ -6148,6 +6161,7 @@ public func runTests(workspace: String? = nil,
6148
6161
  customReportFileName: String? = nil,
6149
6162
  xcodebuildCommand: String = "env NSUnbufferedIO=YES xcodebuild",
6150
6163
  clonedSourcePackagesPath: String? = nil,
6164
+ useSystemScm: Bool = false,
6151
6165
  failBuild: Bool = true)
6152
6166
  {
6153
6167
  let command = RubyCommand(commandID: "", methodName: "run_tests", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
@@ -6213,6 +6227,7 @@ public func runTests(workspace: String? = nil,
6213
6227
  RubyCommand.Argument(name: "custom_report_file_name", value: customReportFileName),
6214
6228
  RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand),
6215
6229
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
6230
+ RubyCommand.Argument(name: "use_system_scm", value: useSystemScm),
6216
6231
  RubyCommand.Argument(name: "fail_build", value: failBuild)])
6217
6232
  _ = runner.executeCommand(command)
6218
6233
  }
@@ -6360,6 +6375,7 @@ public func say(text: Any,
6360
6375
  - customReportFileName: **DEPRECATED!** Use `--output_files` instead - Sets custom full report file name when generating a single report
6361
6376
  - xcodebuildCommand: Allows for override of the default `xcodebuild` command
6362
6377
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
6378
+ - useSystemScm: Lets xcodebuild use system's scm configuration
6363
6379
  - failBuild: Should this step stop the build if the tests fail? Set this to false if you're using trainer
6364
6380
 
6365
6381
  More information: https://docs.fastlane.tools/actions/scan/
@@ -6427,6 +6443,7 @@ public func scan(workspace: Any? = scanfile.workspace,
6427
6443
  customReportFileName: Any? = scanfile.customReportFileName,
6428
6444
  xcodebuildCommand: Any = scanfile.xcodebuildCommand,
6429
6445
  clonedSourcePackagesPath: Any? = scanfile.clonedSourcePackagesPath,
6446
+ useSystemScm: Bool = scanfile.useSystemScm,
6430
6447
  failBuild: Bool = scanfile.failBuild)
6431
6448
  {
6432
6449
  let command = RubyCommand(commandID: "", methodName: "scan", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
@@ -6492,6 +6509,7 @@ public func scan(workspace: Any? = scanfile.workspace,
6492
6509
  RubyCommand.Argument(name: "custom_report_file_name", value: customReportFileName),
6493
6510
  RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand),
6494
6511
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
6512
+ RubyCommand.Argument(name: "use_system_scm", value: useSystemScm),
6495
6513
  RubyCommand.Argument(name: "fail_build", value: failBuild)])
6496
6514
  _ = runner.executeCommand(command)
6497
6515
  }
@@ -9125,6 +9143,7 @@ public func xcexport() {
9125
9143
  - version: The version number of the version of Xcode to install
9126
9144
  - username: Your Apple ID Username
9127
9145
  - teamId: The ID of your team if you're in multiple teams
9146
+ - downloadRetryAttempts: Number of times the download will be retried in case of failure
9128
9147
 
9129
9148
  - returns: The path to the newly installed Xcode version
9130
9149
 
@@ -9132,11 +9151,13 @@ public func xcexport() {
9132
9151
  */
9133
9152
  @discardableResult public func xcodeInstall(version: String,
9134
9153
  username: String,
9135
- teamId: String? = nil) -> String
9154
+ teamId: String? = nil,
9155
+ downloadRetryAttempts: Int = 3) -> String
9136
9156
  {
9137
9157
  let command = RubyCommand(commandID: "", methodName: "xcode_install", className: nil, args: [RubyCommand.Argument(name: "version", value: version),
9138
9158
  RubyCommand.Argument(name: "username", value: username),
9139
- RubyCommand.Argument(name: "team_id", value: teamId)])
9159
+ RubyCommand.Argument(name: "team_id", value: teamId),
9160
+ RubyCommand.Argument(name: "download_retry_attempts", value: downloadRetryAttempts)])
9140
9161
  return runner.executeCommand(command)
9141
9162
  }
9142
9163
 
@@ -9262,7 +9283,7 @@ public func xcov(workspace: String? = nil,
9262
9283
  coverallsServiceJobId: String? = nil,
9263
9284
  coverallsRepoToken: String? = nil,
9264
9285
  xcconfig: String? = nil,
9265
- ideFoundationPath: String = "/Applications/Xcode-11.7.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
9286
+ ideFoundationPath: String = "/Applications/Xcode-12.2.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
9266
9287
  legacySupport: Bool = false)
9267
9288
  {
9268
9289
  let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
@@ -9408,4 +9429,4 @@ public let snapshotfile = Snapshotfile()
9408
9429
 
9409
9430
  // Please don't remove the lines below
9410
9431
  // They are used to detect outdated files
9411
- // FastlaneRunnerAPIVersion [0.9.104]
9432
+ // FastlaneRunnerAPIVersion [0.9.105]
@@ -17,4 +17,4 @@ public class Gymfile: GymfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.168.0
20
+ // Generated with fastlane 2.169.0
@@ -133,6 +133,9 @@ public protocol GymfileProtocol: class {
133
133
 
134
134
  /// Sets a custom path for Swift Package Manager dependencies
135
135
  var clonedSourcePackagesPath: String? { get }
136
+
137
+ /// Lets xcodebuild use system's scm configuration
138
+ var useSystemScm: Bool { get }
136
139
  }
137
140
 
138
141
  public extension GymfileProtocol {
@@ -180,8 +183,9 @@ public extension GymfileProtocol {
180
183
  var xcprettyUtf: Bool? { return nil }
181
184
  var skipProfileDetection: Bool { return false }
182
185
  var clonedSourcePackagesPath: String? { return nil }
186
+ var useSystemScm: Bool { return false }
183
187
  }
184
188
 
185
189
  // Please don't remove the lines below
186
190
  // They are used to detect outdated files
187
- // FastlaneRunnerAPIVersion [0.9.54]
191
+ // FastlaneRunnerAPIVersion [0.9.55]
@@ -17,4 +17,4 @@ public class Matchfile: MatchfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.168.0
20
+ // Generated with fastlane 2.169.0
@@ -184,4 +184,4 @@ public extension MatchfileProtocol {
184
184
 
185
185
  // Please don't remove the lines below
186
186
  // They are used to detect outdated files
187
- // FastlaneRunnerAPIVersion [0.9.48]
187
+ // FastlaneRunnerAPIVersion [0.9.49]
@@ -17,4 +17,4 @@ public class Precheckfile: PrecheckfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.168.0
20
+ // Generated with fastlane 2.169.0
@@ -48,4 +48,4 @@ public extension PrecheckfileProtocol {
48
48
 
49
49
  // Please don't remove the lines below
50
50
  // They are used to detect outdated files
51
- // FastlaneRunnerAPIVersion [0.9.47]
51
+ // FastlaneRunnerAPIVersion [0.9.48]
@@ -17,4 +17,4 @@ public class Scanfile: ScanfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.168.0
20
+ // Generated with fastlane 2.169.0
@@ -191,6 +191,9 @@ public protocol ScanfileProtocol: class {
191
191
  /// Sets a custom path for Swift Package Manager dependencies
192
192
  var clonedSourcePackagesPath: String? { get }
193
193
 
194
+ /// Lets xcodebuild use system's scm configuration
195
+ var useSystemScm: Bool { get }
196
+
194
197
  /// Should this step stop the build if the tests fail? Set this to false if you're using trainer
195
198
  var failBuild: Bool { get }
196
199
  }
@@ -259,9 +262,10 @@ public extension ScanfileProtocol {
259
262
  var customReportFileName: String? { return nil }
260
263
  var xcodebuildCommand: String { return "env NSUnbufferedIO=YES xcodebuild" }
261
264
  var clonedSourcePackagesPath: String? { return nil }
265
+ var useSystemScm: Bool { return false }
262
266
  var failBuild: Bool { return true }
263
267
  }
264
268
 
265
269
  // Please don't remove the lines below
266
270
  // They are used to detect outdated files
267
- // FastlaneRunnerAPIVersion [0.9.59]
271
+ // FastlaneRunnerAPIVersion [0.9.60]
@@ -17,4 +17,4 @@ public class Screengrabfile: ScreengrabfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.168.0
20
+ // Generated with fastlane 2.169.0
@@ -96,4 +96,4 @@ public extension ScreengrabfileProtocol {
96
96
 
97
97
  // Please don't remove the lines below
98
98
  // They are used to detect outdated files
99
- // FastlaneRunnerAPIVersion [0.9.49]
99
+ // FastlaneRunnerAPIVersion [0.9.50]
@@ -17,4 +17,4 @@ public class Snapshotfile: SnapshotfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.168.0
20
+ // Generated with fastlane 2.169.0