fastlane 2.198.0 → 2.201.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +88 -88
  4. data/deliver/lib/deliver/app_screenshot.rb +8 -0
  5. data/deliver/lib/deliver/app_screenshot_iterator.rb +1 -1
  6. data/fastlane/lib/.DS_Store +0 -0
  7. data/fastlane/lib/fastlane/.DS_Store +0 -0
  8. data/fastlane/lib/fastlane/actions/.DS_Store +0 -0
  9. data/fastlane/lib/fastlane/actions/download_dsyms.rb +26 -27
  10. data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +1 -1
  11. data/fastlane/lib/fastlane/actions/get_version_number.rb +1 -0
  12. data/fastlane/lib/fastlane/actions/trainer.rb +49 -0
  13. data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +18 -1
  14. data/fastlane/lib/fastlane/actions/xcversion.rb +18 -3
  15. data/fastlane/lib/fastlane/documentation/docs_generator.rb +17 -12
  16. data/fastlane/lib/fastlane/helper/xcodebuild_formatter_helper.rb +9 -0
  17. data/fastlane/lib/fastlane/tools.rb +2 -1
  18. data/fastlane/lib/fastlane/version.rb +1 -1
  19. data/fastlane/swift/Actions.swift +1 -1
  20. data/fastlane/swift/Appfile.swift +1 -1
  21. data/fastlane/swift/ArgumentProcessor.swift +1 -1
  22. data/fastlane/swift/ControlCommand.swift +1 -1
  23. data/fastlane/swift/Deliverfile.swift +2 -2
  24. data/fastlane/swift/DeliverfileProtocol.swift +2 -2
  25. data/fastlane/swift/Fastlane.swift +44 -15
  26. data/fastlane/swift/Gymfile.swift +2 -2
  27. data/fastlane/swift/GymfileProtocol.swift +6 -2
  28. data/fastlane/swift/LaneFileProtocol.swift +1 -1
  29. data/fastlane/swift/MainProcess.swift +1 -1
  30. data/fastlane/swift/Matchfile.swift +2 -2
  31. data/fastlane/swift/MatchfileProtocol.swift +2 -2
  32. data/fastlane/swift/OptionalConfigValue.swift +1 -1
  33. data/fastlane/swift/Plugins.swift +1 -1
  34. data/fastlane/swift/Precheckfile.swift +2 -2
  35. data/fastlane/swift/PrecheckfileProtocol.swift +2 -2
  36. data/fastlane/swift/RubyCommand.swift +1 -1
  37. data/fastlane/swift/RubyCommandable.swift +1 -1
  38. data/fastlane/swift/Runner.swift +4 -8
  39. data/fastlane/swift/RunnerArgument.swift +1 -1
  40. data/fastlane/swift/Scanfile.swift +2 -2
  41. data/fastlane/swift/ScanfileProtocol.swift +4 -4
  42. data/fastlane/swift/Screengrabfile.swift +2 -2
  43. data/fastlane/swift/ScreengrabfileProtocol.swift +2 -2
  44. data/fastlane/swift/Snapshotfile.swift +2 -2
  45. data/fastlane/swift/SnapshotfileProtocol.swift +2 -2
  46. data/fastlane/swift/SocketClient.swift +1 -1
  47. data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
  48. data/fastlane/swift/SocketResponse.swift +1 -1
  49. data/fastlane/swift/formatting/Brewfile.lock.json +14 -14
  50. data/fastlane/swift/main.swift +1 -1
  51. data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +10 -5
  52. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +15 -5
  53. data/gym/lib/gym/generators/build_command_generator.rb +69 -23
  54. data/gym/lib/gym/options.rb +23 -5
  55. data/scan/lib/scan/options.rb +27 -7
  56. data/scan/lib/scan/runner.rb +58 -15
  57. data/scan/lib/scan/test_command_generator.rb +54 -5
  58. data/snapshot/lib/snapshot/options.rb +23 -7
  59. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +1 -1
  60. data/snapshot/lib/snapshot/test_command_generator.rb +37 -2
  61. data/spaceship/lib/spaceship/client.rb +35 -15
  62. data/spaceship/lib/spaceship/commands_generator.rb +1 -1
  63. data/spaceship/lib/spaceship/connect_api/models/app.rb +43 -0
  64. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +1 -0
  65. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +2 -0
  66. data/spaceship/lib/spaceship/connect_api/models/review_submission.rb +73 -0
  67. data/spaceship/lib/spaceship/connect_api/models/review_submission_item.rb +40 -0
  68. data/spaceship/lib/spaceship/connect_api/response.rb +13 -0
  69. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +83 -0
  70. data/spaceship/lib/spaceship/connect_api.rb +2 -0
  71. data/spaceship/lib/spaceship/globals.rb +9 -0
  72. data/spaceship/lib/spaceship/spaceauth_runner.rb +1 -1
  73. data/supply/lib/supply/options.rb +8 -0
  74. data/supply/lib/supply/uploader.rb +6 -2
  75. data/trainer/lib/.DS_Store +0 -0
  76. data/trainer/lib/assets/junit.xml.erb +20 -0
  77. data/trainer/lib/trainer/commands_generator.rb +51 -0
  78. data/trainer/lib/trainer/junit_generator.rb +31 -0
  79. data/trainer/lib/trainer/module.rb +10 -0
  80. data/trainer/lib/trainer/options.rb +55 -0
  81. data/trainer/lib/trainer/test_parser.rb +335 -0
  82. data/trainer/lib/trainer/xcresult.rb +403 -0
  83. data/trainer/lib/trainer.rb +7 -0
  84. metadata +38 -21
@@ -4,21 +4,18 @@ module Fastlane
4
4
  output_path ||= File.join(FastlaneCore::FastlaneFolder.path || '.', 'README.md')
5
5
 
6
6
  output = ["fastlane documentation"]
7
- output << "================"
7
+ output << "----"
8
+ output << ""
8
9
 
9
10
  output << "# Installation"
10
11
  output << ""
11
12
  output << "Make sure you have the latest version of the Xcode command line tools installed:"
12
13
  output << ""
13
- output << "```"
14
+ output << "```sh"
14
15
  output << "xcode-select --install"
15
16
  output << "```"
16
17
  output << ""
17
- output << "Install _fastlane_ using"
18
- output << "```"
19
- output << "[sudo] gem install fastlane -NV"
20
- output << "```"
21
- output << "or alternatively using `brew install fastlane`"
18
+ output << "For _fastlane_ installation instructions, see [Installing _fastlane_](https://docs.fastlane.tools/#installing-fastlane)"
22
19
  output << ""
23
20
  output << "# Available Actions"
24
21
 
@@ -32,7 +29,10 @@ module Fastlane
32
29
  next
33
30
  end
34
31
 
35
- output << "## #{formatted_platform(platform)}" if platform
32
+ if platform
33
+ output << ""
34
+ output << "## #{formatted_platform(platform)}"
35
+ end
36
36
 
37
37
  lanes.each do |lane_name, lane|
38
38
  next if lane.is_private
@@ -45,8 +45,10 @@ module Fastlane
45
45
  end
46
46
 
47
47
  output << "This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run."
48
- output << "More information about fastlane can be found on [fastlane.tools](https://fastlane.tools)."
49
- output << "The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools)."
48
+ output << ""
49
+ output << "More information about _fastlane_ can be found on [fastlane.tools](https://fastlane.tools)."
50
+ output << ""
51
+ output << "The documentation of _fastlane_ can be found on [docs.fastlane.tools](https://docs.fastlane.tools)."
50
52
  output << ""
51
53
 
52
54
  begin
@@ -78,10 +80,13 @@ module Fastlane
78
80
  full_name = [platform, lane].reject(&:nil?).join(' ')
79
81
 
80
82
  output = []
83
+ output << ""
81
84
  output << "### #{full_name}"
85
+ output << ""
86
+ output << "```sh"
87
+ output << "[bundle exec] fastlane #{full_name}"
82
88
  output << "```"
83
- output << "fastlane #{full_name}"
84
- output << "```"
89
+ output << ""
85
90
  output << description
86
91
  output
87
92
  end
@@ -0,0 +1,9 @@
1
+ module Fastlane
2
+ module Helper
3
+ class XcodebuildFormatterHelper
4
+ def self.xcbeautify_installed?
5
+ return `which xcbeautify`.include?("xcbeautify")
6
+ end
7
+ end
8
+ end
9
+ end
@@ -15,7 +15,8 @@ module Fastlane
15
15
  :match,
16
16
  :scan,
17
17
  :gym,
18
- :precheck
18
+ :precheck,
19
+ :trainer
19
20
  ]
20
21
 
21
22
  # a list of all the config files we currently expect
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.198.0'.freeze
2
+ VERSION = '2.201.0.rc1'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  MINIMUM_XCODE_RELEASE = "7.0".freeze
5
5
  RUBOCOP_REQUIREMENT = '1.12.1'.freeze
@@ -1,5 +1,5 @@
1
1
  // Actions.swift
2
- // Copyright (c) 2021 FastlaneTools
2
+ // Copyright (c) 2022 FastlaneTools
3
3
 
4
4
  // This autogenerated file will be overwritten or replaced when running "fastlane generate_swift"
5
5
  //
@@ -1,5 +1,5 @@
1
1
  // Appfile.swift
2
- // Copyright (c) 2021 FastlaneTools
2
+ // Copyright (c) 2022 FastlaneTools
3
3
 
4
4
  var appIdentifier: String { return "" } // The bundle identifier of your app
5
5
  var appleID: String { return "" } // Your Apple email address
@@ -1,5 +1,5 @@
1
1
  // ArgumentProcessor.swift
2
- // Copyright (c) 2021 FastlaneTools
2
+ // Copyright (c) 2022 FastlaneTools
3
3
 
4
4
  //
5
5
  // ** NOTE **
@@ -1,5 +1,5 @@
1
1
  // ControlCommand.swift
2
- // Copyright (c) 2021 FastlaneTools
2
+ // Copyright (c) 2022 FastlaneTools
3
3
 
4
4
  //
5
5
  // ** NOTE **
@@ -1,5 +1,5 @@
1
1
  // Deliverfile.swift
2
- // Copyright (c) 2021 FastlaneTools
2
+ // Copyright (c) 2022 FastlaneTools
3
3
 
4
4
  // This class is automatically included in FastlaneRunner during build
5
5
 
@@ -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.198.0
20
+ // Generated with fastlane 2.200.0
@@ -1,5 +1,5 @@
1
1
  // DeliverfileProtocol.swift
2
- // Copyright (c) 2021 FastlaneTools
2
+ // Copyright (c) 2022 FastlaneTools
3
3
 
4
4
  public protocol DeliverfileProtocol: class {
5
5
  /// Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
@@ -260,4 +260,4 @@ public extension DeliverfileProtocol {
260
260
 
261
261
  // Please don't remove the lines below
262
262
  // They are used to detect outdated files
263
- // FastlaneRunnerAPIVersion [0.9.87]
263
+ // FastlaneRunnerAPIVersion [0.9.90]
@@ -1,5 +1,5 @@
1
1
  // Fastlane.swift
2
- // Copyright (c) 2021 FastlaneTools
2
+ // Copyright (c) 2022 FastlaneTools
3
3
 
4
4
  import Foundation
5
5
  /**
@@ -1322,6 +1322,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1322
1322
  - analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
1323
1323
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
1324
1324
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
1325
+ - xcodebuildCommand: Allows for override of the default `xcodebuild` command
1325
1326
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1326
1327
  - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
1327
1328
  - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
@@ -1374,6 +1375,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1374
1375
  analyzeBuildTime: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1375
1376
  xcprettyUtf: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1376
1377
  skipProfileDetection: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1378
+ xcodebuildCommand: String = "xcodebuild",
1377
1379
  clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1378
1380
  skipPackageDependenciesResolution: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1379
1381
  disablePackageAutomaticUpdates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -1422,6 +1424,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1422
1424
  let analyzeBuildTimeArg = analyzeBuildTime.asRubyArgument(name: "analyze_build_time", type: nil)
1423
1425
  let xcprettyUtfArg = xcprettyUtf.asRubyArgument(name: "xcpretty_utf", type: nil)
1424
1426
  let skipProfileDetectionArg = skipProfileDetection.asRubyArgument(name: "skip_profile_detection", type: nil)
1427
+ let xcodebuildCommandArg = RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand, type: nil)
1425
1428
  let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil)
1426
1429
  let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil)
1427
1430
  let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil)
@@ -1469,6 +1472,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1469
1472
  analyzeBuildTimeArg,
1470
1473
  xcprettyUtfArg,
1471
1474
  skipProfileDetectionArg,
1475
+ xcodebuildCommandArg,
1472
1476
  clonedSourcePackagesPathArg,
1473
1477
  skipPackageDependenciesResolutionArg,
1474
1478
  disablePackageAutomaticUpdatesArg,
@@ -1524,6 +1528,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1524
1528
  - analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
1525
1529
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
1526
1530
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
1531
+ - xcodebuildCommand: Allows for override of the default `xcodebuild` command
1527
1532
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1528
1533
  - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
1529
1534
  - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
@@ -1573,6 +1578,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1573
1578
  analyzeBuildTime: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1574
1579
  xcprettyUtf: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1575
1580
  skipProfileDetection: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1581
+ xcodebuildCommand: String = "xcodebuild",
1576
1582
  clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1577
1583
  skipPackageDependenciesResolution: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1578
1584
  disablePackageAutomaticUpdates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -1618,6 +1624,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1618
1624
  let analyzeBuildTimeArg = analyzeBuildTime.asRubyArgument(name: "analyze_build_time", type: nil)
1619
1625
  let xcprettyUtfArg = xcprettyUtf.asRubyArgument(name: "xcpretty_utf", type: nil)
1620
1626
  let skipProfileDetectionArg = skipProfileDetection.asRubyArgument(name: "skip_profile_detection", type: nil)
1627
+ let xcodebuildCommandArg = RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand, type: nil)
1621
1628
  let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil)
1622
1629
  let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil)
1623
1630
  let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil)
@@ -1662,6 +1669,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1662
1669
  analyzeBuildTimeArg,
1663
1670
  xcprettyUtfArg,
1664
1671
  skipProfileDetectionArg,
1672
+ xcodebuildCommandArg,
1665
1673
  clonedSourcePackagesPathArg,
1666
1674
  skipPackageDependenciesResolutionArg,
1667
1675
  disablePackageAutomaticUpdatesArg,
@@ -1718,6 +1726,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1718
1726
  - analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
1719
1727
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
1720
1728
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
1729
+ - xcodebuildCommand: Allows for override of the default `xcodebuild` command
1721
1730
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1722
1731
  - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
1723
1732
  - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
@@ -1768,6 +1777,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1768
1777
  analyzeBuildTime: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1769
1778
  xcprettyUtf: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1770
1779
  skipProfileDetection: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1780
+ xcodebuildCommand: String = "xcodebuild",
1771
1781
  clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1772
1782
  skipPackageDependenciesResolution: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1773
1783
  disablePackageAutomaticUpdates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -1814,6 +1824,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1814
1824
  let analyzeBuildTimeArg = analyzeBuildTime.asRubyArgument(name: "analyze_build_time", type: nil)
1815
1825
  let xcprettyUtfArg = xcprettyUtf.asRubyArgument(name: "xcpretty_utf", type: nil)
1816
1826
  let skipProfileDetectionArg = skipProfileDetection.asRubyArgument(name: "skip_profile_detection", type: nil)
1827
+ let xcodebuildCommandArg = RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand, type: nil)
1817
1828
  let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil)
1818
1829
  let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil)
1819
1830
  let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil)
@@ -1859,6 +1870,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1859
1870
  analyzeBuildTimeArg,
1860
1871
  xcprettyUtfArg,
1861
1872
  skipProfileDetectionArg,
1873
+ xcodebuildCommandArg,
1862
1874
  clonedSourcePackagesPathArg,
1863
1875
  skipPackageDependenciesResolutionArg,
1864
1876
  disablePackageAutomaticUpdatesArg,
@@ -4311,7 +4323,7 @@ public func ensureNoDebugCode(text: String,
4311
4323
 
4312
4324
  If building your app requires a specific version of Xcode, you can invoke this command before using gym.
4313
4325
  For example, to ensure that a beta version of Xcode is not accidentally selected to build, which would make uploading to TestFlight fail.
4314
- You can either manually provide a specific version using `version: ` or you make use of the `.xcode-version` file.
4326
+ You can either manually provide a specific version using `version:` or you make use of the `.xcode-version` file.
4315
4327
  Using the `strict` parameter, you can either verify the full set of version numbers strictly (i.e. `11.3.1`) or only a subset of them (i.e. `11.3` or `11`).
4316
4328
  */
4317
4329
  public func ensureXcodeVersion(version: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -5525,6 +5537,7 @@ public func gradle(task: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5525
5537
  - analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
5526
5538
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
5527
5539
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
5540
+ - xcodebuildCommand: Allows for override of the default `xcodebuild` command
5528
5541
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
5529
5542
  - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
5530
5543
  - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
@@ -5577,6 +5590,7 @@ public func gradle(task: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5577
5590
  analyzeBuildTime: OptionalConfigValue<Bool?> = .fastlaneDefault(gymfile.analyzeBuildTime),
5578
5591
  xcprettyUtf: OptionalConfigValue<Bool?> = .fastlaneDefault(gymfile.xcprettyUtf),
5579
5592
  skipProfileDetection: OptionalConfigValue<Bool> = .fastlaneDefault(gymfile.skipProfileDetection),
5593
+ xcodebuildCommand: String = gymfile.xcodebuildCommand,
5580
5594
  clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(gymfile.clonedSourcePackagesPath),
5581
5595
  skipPackageDependenciesResolution: OptionalConfigValue<Bool> = .fastlaneDefault(gymfile.skipPackageDependenciesResolution),
5582
5596
  disablePackageAutomaticUpdates: OptionalConfigValue<Bool> = .fastlaneDefault(gymfile.disablePackageAutomaticUpdates),
@@ -5625,6 +5639,7 @@ public func gradle(task: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5625
5639
  let analyzeBuildTimeArg = analyzeBuildTime.asRubyArgument(name: "analyze_build_time", type: nil)
5626
5640
  let xcprettyUtfArg = xcprettyUtf.asRubyArgument(name: "xcpretty_utf", type: nil)
5627
5641
  let skipProfileDetectionArg = skipProfileDetection.asRubyArgument(name: "skip_profile_detection", type: nil)
5642
+ let xcodebuildCommandArg = RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand, type: nil)
5628
5643
  let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil)
5629
5644
  let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil)
5630
5645
  let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil)
@@ -5672,6 +5687,7 @@ public func gradle(task: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5672
5687
  analyzeBuildTimeArg,
5673
5688
  xcprettyUtfArg,
5674
5689
  skipProfileDetectionArg,
5690
+ xcodebuildCommandArg,
5675
5691
  clonedSourcePackagesPathArg,
5676
5692
  skipPackageDependenciesResolutionArg,
5677
5693
  disablePackageAutomaticUpdatesArg,
@@ -8520,8 +8536,8 @@ public func rubyVersion() {
8520
8536
  - project: Path to the project file
8521
8537
  - packagePath: Path to the Swift Package
8522
8538
  - scheme: The project's scheme. Make sure it's marked as `Shared`
8523
- - device: The name of the simulator type you want to run tests on (e.g. 'iPhone 6')
8524
- - devices: Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air'])
8539
+ - device: The name of the simulator type you want to run tests on (e.g. 'iPhone 6' or 'iPhone SE (2nd generation) (14.5)')
8540
+ - devices: Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air', 'iPhone SE (2nd generation) (14.5)'])
8525
8541
  - skipDetectDevices: Should skip auto detecting of devices if none were specified
8526
8542
  - ensureDevicesFound: Should fail if devices not found
8527
8543
  - forceQuitSimulator: Enabling this option will automatically killall Simulator processes before the run
@@ -8925,8 +8941,8 @@ public func say(text: [String],
8925
8941
  - project: Path to the project file
8926
8942
  - packagePath: Path to the Swift Package
8927
8943
  - scheme: The project's scheme. Make sure it's marked as `Shared`
8928
- - device: The name of the simulator type you want to run tests on (e.g. 'iPhone 6')
8929
- - devices: Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air'])
8944
+ - device: The name of the simulator type you want to run tests on (e.g. 'iPhone 6' or 'iPhone SE (2nd generation) (14.5)')
8945
+ - devices: Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air', 'iPhone SE (2nd generation) (14.5)'])
8930
8946
  - skipDetectDevices: Should skip auto detecting of devices if none were specified
8931
8947
  - ensureDevicesFound: Should fail if devices not found
8932
8948
  - forceQuitSimulator: Enabling this option will automatically killall Simulator processes before the run
@@ -10692,6 +10708,7 @@ public func ssh(username: String,
10692
10708
  - skipUploadImages: Whether to skip uploading images, screenshots not included
10693
10709
  - skipUploadScreenshots: Whether to skip uploading SCREENSHOTS
10694
10710
  - trackPromoteTo: The track to promote to. The default available tracks are: production, beta, alpha, internal
10711
+ - trackPromoteReleaseStatus: Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress
10695
10712
  - validateOnly: Only validate changes with Google Play rather than actually publish
10696
10713
  - mapping: Path to the mapping file to upload (mapping.txt or native-debug-symbols.zip alike)
10697
10714
  - mappingPaths: An array of paths to mapping files to upload (mapping.txt or native-debug-symbols.zip alike)
@@ -10733,6 +10750,7 @@ public func supply(packageName: String,
10733
10750
  skipUploadImages: OptionalConfigValue<Bool> = .fastlaneDefault(false),
10734
10751
  skipUploadScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
10735
10752
  trackPromoteTo: OptionalConfigValue<String?> = .fastlaneDefault(nil),
10753
+ trackPromoteReleaseStatus: String = "completed",
10736
10754
  validateOnly: OptionalConfigValue<Bool> = .fastlaneDefault(false),
10737
10755
  mapping: OptionalConfigValue<String?> = .fastlaneDefault(nil),
10738
10756
  mappingPaths: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
@@ -10772,6 +10790,7 @@ public func supply(packageName: String,
10772
10790
  let skipUploadImagesArg = skipUploadImages.asRubyArgument(name: "skip_upload_images", type: nil)
10773
10791
  let skipUploadScreenshotsArg = skipUploadScreenshots.asRubyArgument(name: "skip_upload_screenshots", type: nil)
10774
10792
  let trackPromoteToArg = trackPromoteTo.asRubyArgument(name: "track_promote_to", type: nil)
10793
+ let trackPromoteReleaseStatusArg = RubyCommand.Argument(name: "track_promote_release_status", value: trackPromoteReleaseStatus, type: nil)
10775
10794
  let validateOnlyArg = validateOnly.asRubyArgument(name: "validate_only", type: nil)
10776
10795
  let mappingArg = mapping.asRubyArgument(name: "mapping", type: nil)
10777
10796
  let mappingPathsArg = mappingPaths.asRubyArgument(name: "mapping_paths", type: nil)
@@ -10810,6 +10829,7 @@ public func supply(packageName: String,
10810
10829
  skipUploadImagesArg,
10811
10830
  skipUploadScreenshotsArg,
10812
10831
  trackPromoteToArg,
10832
+ trackPromoteReleaseStatusArg,
10813
10833
  validateOnlyArg,
10814
10834
  mappingArg,
10815
10835
  mappingPathsArg,
@@ -11533,6 +11553,7 @@ public func updateAppIdentifier(xcodeproj: String,
11533
11553
  - targets: Specify targets you want to toggle the signing mech. (default to all targets)
11534
11554
  - buildConfigurations: Specify build_configurations you want to toggle the signing mech. (default to all configurations)
11535
11555
  - codeSignIdentity: Code signing identity type (iPhone Developer, iPhone Distribution)
11556
+ - entitlementsFilePath: Path to your entitlements file
11536
11557
  - profileName: Provisioning profile name to use for code signing
11537
11558
  - profileUuid: Provisioning profile UUID to use for code signing
11538
11559
  - bundleIdentifier: Application Product Bundle Identifier
@@ -11547,6 +11568,7 @@ public func updateCodeSigningSettings(path: String,
11547
11568
  targets: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
11548
11569
  buildConfigurations: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
11549
11570
  codeSignIdentity: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11571
+ entitlementsFilePath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11550
11572
  profileName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11551
11573
  profileUuid: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11552
11574
  bundleIdentifier: OptionalConfigValue<String?> = .fastlaneDefault(nil))
@@ -11557,6 +11579,7 @@ public func updateCodeSigningSettings(path: String,
11557
11579
  let targetsArg = targets.asRubyArgument(name: "targets", type: nil)
11558
11580
  let buildConfigurationsArg = buildConfigurations.asRubyArgument(name: "build_configurations", type: nil)
11559
11581
  let codeSignIdentityArg = codeSignIdentity.asRubyArgument(name: "code_sign_identity", type: nil)
11582
+ let entitlementsFilePathArg = entitlementsFilePath.asRubyArgument(name: "entitlements_file_path", type: nil)
11560
11583
  let profileNameArg = profileName.asRubyArgument(name: "profile_name", type: nil)
11561
11584
  let profileUuidArg = profileUuid.asRubyArgument(name: "profile_uuid", type: nil)
11562
11585
  let bundleIdentifierArg = bundleIdentifier.asRubyArgument(name: "bundle_identifier", type: nil)
@@ -11566,6 +11589,7 @@ public func updateCodeSigningSettings(path: String,
11566
11589
  targetsArg,
11567
11590
  buildConfigurationsArg,
11568
11591
  codeSignIdentityArg,
11592
+ entitlementsFilePathArg,
11569
11593
  profileNameArg,
11570
11594
  profileUuidArg,
11571
11595
  bundleIdentifierArg]
@@ -12332,6 +12356,7 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
12332
12356
  - skipUploadImages: Whether to skip uploading images, screenshots not included
12333
12357
  - skipUploadScreenshots: Whether to skip uploading SCREENSHOTS
12334
12358
  - trackPromoteTo: The track to promote to. The default available tracks are: production, beta, alpha, internal
12359
+ - trackPromoteReleaseStatus: Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress
12335
12360
  - validateOnly: Only validate changes with Google Play rather than actually publish
12336
12361
  - mapping: Path to the mapping file to upload (mapping.txt or native-debug-symbols.zip alike)
12337
12362
  - mappingPaths: An array of paths to mapping files to upload (mapping.txt or native-debug-symbols.zip alike)
@@ -12373,6 +12398,7 @@ public func uploadToPlayStore(packageName: String,
12373
12398
  skipUploadImages: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12374
12399
  skipUploadScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12375
12400
  trackPromoteTo: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12401
+ trackPromoteReleaseStatus: String = "completed",
12376
12402
  validateOnly: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12377
12403
  mapping: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12378
12404
  mappingPaths: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
@@ -12412,6 +12438,7 @@ public func uploadToPlayStore(packageName: String,
12412
12438
  let skipUploadImagesArg = skipUploadImages.asRubyArgument(name: "skip_upload_images", type: nil)
12413
12439
  let skipUploadScreenshotsArg = skipUploadScreenshots.asRubyArgument(name: "skip_upload_screenshots", type: nil)
12414
12440
  let trackPromoteToArg = trackPromoteTo.asRubyArgument(name: "track_promote_to", type: nil)
12441
+ let trackPromoteReleaseStatusArg = RubyCommand.Argument(name: "track_promote_release_status", value: trackPromoteReleaseStatus, type: nil)
12415
12442
  let validateOnlyArg = validateOnly.asRubyArgument(name: "validate_only", type: nil)
12416
12443
  let mappingArg = mapping.asRubyArgument(name: "mapping", type: nil)
12417
12444
  let mappingPathsArg = mappingPaths.asRubyArgument(name: "mapping_paths", type: nil)
@@ -12450,6 +12477,7 @@ public func uploadToPlayStore(packageName: String,
12450
12477
  skipUploadImagesArg,
12451
12478
  skipUploadScreenshotsArg,
12452
12479
  trackPromoteToArg,
12480
+ trackPromoteReleaseStatusArg,
12453
12481
  validateOnlyArg,
12454
12482
  mappingArg,
12455
12483
  mappingPathsArg,
@@ -13064,7 +13092,7 @@ public func xcov(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil)
13064
13092
  coverallsServiceJobId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13065
13093
  coverallsRepoToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13066
13094
  xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13067
- ideFoundationPath: String = "/Applications/Xcode-13.1.0.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13095
+ ideFoundationPath: String = "/Applications/Xcode-13.2.1.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13068
13096
  legacySupport: OptionalConfigValue<Bool> = .fastlaneDefault(false))
13069
13097
  {
13070
13098
  let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
@@ -13158,6 +13186,7 @@ public func xctool() {
13158
13186
  - parameter version: The version of Xcode to select specified as a Gem::Version requirement string (e.g. '~> 7.1.0')
13159
13187
 
13160
13188
  Finds and selects a version of an installed Xcode that best matches the provided [`Gem::Version` requirement specifier](http://www.rubydoc.info/github/rubygems/rubygems/Gem/Version)
13189
+ You can either manually provide a specific version using `version:` or you make use of the `.xcode-version` file.
13161
13190
  */
13162
13191
  public func xcversion(version: String) {
13163
13192
  let versionArg = RubyCommand.Argument(name: "version", value: version, type: nil)
@@ -13256,14 +13285,14 @@ func parseInt(fromString: String, function: String = #function) -> Int {
13256
13285
  return NSString(string: fromString.trimmingCharacters(in: .punctuationCharacters)).integerValue
13257
13286
  }
13258
13287
 
13259
- public let deliverfile = Deliverfile()
13260
- public let gymfile = Gymfile()
13261
- public let matchfile = Matchfile()
13262
- public let precheckfile = Precheckfile()
13263
- public let scanfile = Scanfile()
13264
- public let screengrabfile = Screengrabfile()
13265
- public let snapshotfile = Snapshotfile()
13288
+ public let deliverfile: Deliverfile = .init()
13289
+ public let gymfile: Gymfile = .init()
13290
+ public let matchfile: Matchfile = .init()
13291
+ public let precheckfile: Precheckfile = .init()
13292
+ public let scanfile: Scanfile = .init()
13293
+ public let screengrabfile: Screengrabfile = .init()
13294
+ public let snapshotfile: Snapshotfile = .init()
13266
13295
 
13267
13296
  // Please don't remove the lines below
13268
13297
  // They are used to detect outdated files
13269
- // FastlaneRunnerAPIVersion [0.9.140]
13298
+ // FastlaneRunnerAPIVersion [0.9.143]
@@ -1,5 +1,5 @@
1
1
  // Gymfile.swift
2
- // Copyright (c) 2021 FastlaneTools
2
+ // Copyright (c) 2022 FastlaneTools
3
3
 
4
4
  // This class is automatically included in FastlaneRunner during build
5
5
 
@@ -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.198.0
20
+ // Generated with fastlane 2.200.0
@@ -1,5 +1,5 @@
1
1
  // GymfileProtocol.swift
2
- // Copyright (c) 2021 FastlaneTools
2
+ // Copyright (c) 2022 FastlaneTools
3
3
 
4
4
  public protocol GymfileProtocol: class {
5
5
  /// Path to the workspace file
@@ -131,6 +131,9 @@ public protocol GymfileProtocol: class {
131
131
  /// Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
132
132
  var skipProfileDetection: Bool { get }
133
133
 
134
+ /// Allows for override of the default `xcodebuild` command
135
+ var xcodebuildCommand: String { get }
136
+
134
137
  /// Sets a custom path for Swift Package Manager dependencies
135
138
  var clonedSourcePackagesPath: String? { get }
136
139
 
@@ -188,6 +191,7 @@ public extension GymfileProtocol {
188
191
  var analyzeBuildTime: Bool? { return nil }
189
192
  var xcprettyUtf: Bool? { return nil }
190
193
  var skipProfileDetection: Bool { return false }
194
+ var xcodebuildCommand: String { return "xcodebuild" }
191
195
  var clonedSourcePackagesPath: String? { return nil }
192
196
  var skipPackageDependenciesResolution: Bool { return false }
193
197
  var disablePackageAutomaticUpdates: Bool { return false }
@@ -196,4 +200,4 @@ public extension GymfileProtocol {
196
200
 
197
201
  // Please don't remove the lines below
198
202
  // They are used to detect outdated files
199
- // FastlaneRunnerAPIVersion [0.9.90]
203
+ // FastlaneRunnerAPIVersion [0.9.93]
@@ -1,5 +1,5 @@
1
1
  // LaneFileProtocol.swift
2
- // Copyright (c) 2021 FastlaneTools
2
+ // Copyright (c) 2022 FastlaneTools
3
3
 
4
4
  //
5
5
  // ** NOTE **
@@ -1,5 +1,5 @@
1
1
  // MainProcess.swift
2
- // Copyright (c) 2021 FastlaneTools
2
+ // Copyright (c) 2022 FastlaneTools
3
3
 
4
4
  //
5
5
  // ** NOTE **
@@ -1,5 +1,5 @@
1
1
  // Matchfile.swift
2
- // Copyright (c) 2021 FastlaneTools
2
+ // Copyright (c) 2022 FastlaneTools
3
3
 
4
4
  // This class is automatically included in FastlaneRunner during build
5
5
 
@@ -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.198.0
20
+ // Generated with fastlane 2.200.0
@@ -1,5 +1,5 @@
1
1
  // MatchfileProtocol.swift
2
- // Copyright (c) 2021 FastlaneTools
2
+ // Copyright (c) 2022 FastlaneTools
3
3
 
4
4
  public protocol MatchfileProtocol: class {
5
5
  /// Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution
@@ -192,4 +192,4 @@ public extension MatchfileProtocol {
192
192
 
193
193
  // Please don't remove the lines below
194
194
  // They are used to detect outdated files
195
- // FastlaneRunnerAPIVersion [0.9.84]
195
+ // FastlaneRunnerAPIVersion [0.9.87]
@@ -1,5 +1,5 @@
1
1
  // OptionalConfigValue.swift
2
- // Copyright (c) 2021 FastlaneTools
2
+ // Copyright (c) 2022 FastlaneTools
3
3
 
4
4
  //
5
5
  // ** NOTE **
@@ -1,5 +1,5 @@
1
1
  // Plugins.swift
2
- // Copyright (c) 2021 FastlaneTools
2
+ // Copyright (c) 2022 FastlaneTools
3
3
 
4
4
  // This autogenerated file will be overwritten or replaced when installing/updating plugins or running "fastlane generate_swift"
5
5
  //
@@ -1,5 +1,5 @@
1
1
  // Precheckfile.swift
2
- // Copyright (c) 2021 FastlaneTools
2
+ // Copyright (c) 2022 FastlaneTools
3
3
 
4
4
  // This class is automatically included in FastlaneRunner during build
5
5
 
@@ -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.198.0
20
+ // Generated with fastlane 2.200.0
@@ -1,5 +1,5 @@
1
1
  // PrecheckfileProtocol.swift
2
- // Copyright (c) 2021 FastlaneTools
2
+ // Copyright (c) 2022 FastlaneTools
3
3
 
4
4
  public protocol PrecheckfileProtocol: class {
5
5
  /// Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
@@ -52,4 +52,4 @@ public extension PrecheckfileProtocol {
52
52
 
53
53
  // Please don't remove the lines below
54
54
  // They are used to detect outdated files
55
- // FastlaneRunnerAPIVersion [0.9.83]
55
+ // FastlaneRunnerAPIVersion [0.9.86]
@@ -1,5 +1,5 @@
1
1
  // RubyCommand.swift
2
- // Copyright (c) 2021 FastlaneTools
2
+ // Copyright (c) 2022 FastlaneTools
3
3
 
4
4
  //
5
5
  // ** NOTE **
@@ -1,5 +1,5 @@
1
1
  // RubyCommandable.swift
2
- // Copyright (c) 2021 FastlaneTools
2
+ // Copyright (c) 2022 FastlaneTools
3
3
 
4
4
  //
5
5
  // ** NOTE **
@@ -1,5 +1,5 @@
1
1
  // Runner.swift
2
- // Copyright (c) 2021 FastlaneTools
2
+ // Copyright (c) 2022 FastlaneTools
3
3
 
4
4
  //
5
5
  // ** NOTE **
@@ -10,13 +10,9 @@
10
10
 
11
11
  import Foundation
12
12
 
13
- let logger: Logger = {
14
- Logger()
15
- }()
13
+ let logger: Logger = .init()
16
14
 
17
- let runner: Runner = {
18
- Runner()
19
- }()
15
+ let runner: Runner = .init()
20
16
 
21
17
  func desc(_: String) {
22
18
  // no-op, this is handled in fastlane/lane_list.rb
@@ -71,7 +67,7 @@ class Runner {
71
67
 
72
68
  let runLoop = RunLoop.current
73
69
  let timeoutDate = Date(timeInterval: TimeInterval(timeout), since: Date())
74
- var fulfilled: Bool = false
70
+ var fulfilled = false
75
71
  let _expression = memoizedClosure(expression)
76
72
  repeat {
77
73
  do {