fastlane 2.178.0 → 2.182.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +97 -84
  4. data/cert/lib/cert/commands_generator.rb +2 -1
  5. data/cert/lib/cert/options.rb +1 -0
  6. data/cert/lib/cert/runner.rb +4 -0
  7. data/deliver/lib/deliver/commands_generator.rb +2 -1
  8. data/deliver/lib/deliver/download_screenshots.rb +1 -2
  9. data/deliver/lib/deliver/languages.rb +1 -1
  10. data/deliver/lib/deliver/options.rb +3 -2
  11. data/deliver/lib/deliver/runner.rb +4 -0
  12. data/deliver/lib/deliver/setup.rb +0 -1
  13. data/deliver/lib/deliver/upload_metadata.rb +2 -1
  14. data/fastlane/lib/fastlane/actions/actions_helper.rb +2 -2
  15. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +5 -0
  16. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +3 -3
  17. data/fastlane/lib/fastlane/actions/backup_xcarchive.rb +1 -1
  18. data/fastlane/lib/fastlane/actions/build_app.rb +4 -0
  19. data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +4 -0
  20. data/fastlane/lib/fastlane/actions/clipboard.rb +3 -6
  21. data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +1 -1
  22. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +18 -1
  23. data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +2 -1
  24. data/fastlane/lib/fastlane/actions/ensure_env_vars.rb +2 -6
  25. data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +4 -0
  26. data/fastlane/lib/fastlane/actions/get_version_number.rb +17 -10
  27. data/fastlane/lib/fastlane/actions/git_branch.rb +4 -10
  28. data/fastlane/lib/fastlane/actions/git_commit.rb +3 -1
  29. data/fastlane/lib/fastlane/actions/git_submodule_update.rb +16 -8
  30. data/fastlane/lib/fastlane/actions/git_tag_exists.rb +4 -0
  31. data/fastlane/lib/fastlane/actions/import_from_git.rb +5 -5
  32. data/fastlane/lib/fastlane/actions/install_provisioning_profile.rb +4 -0
  33. data/fastlane/lib/fastlane/actions/jira.rb +61 -14
  34. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +1 -0
  35. data/fastlane/lib/fastlane/actions/match_nuke.rb +59 -0
  36. data/fastlane/lib/fastlane/actions/notarize.rb +98 -51
  37. data/fastlane/lib/fastlane/actions/slack.rb +155 -133
  38. data/fastlane/lib/fastlane/actions/sourcedocs.rb +164 -0
  39. data/fastlane/lib/fastlane/actions/spaceship_logs.rb +1 -1
  40. data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +1 -2
  41. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +4 -2
  42. data/fastlane/lib/fastlane/cli_tools_distributor.rb +1 -1
  43. data/fastlane/lib/fastlane/commands_generator.rb +2 -1
  44. data/fastlane/lib/fastlane/fast_file.rb +10 -2
  45. data/fastlane/lib/fastlane/fastlane_require.rb +7 -1
  46. data/fastlane/lib/fastlane/helper/git_helper.rb +19 -7
  47. data/fastlane/lib/fastlane/lane_manager.rb +3 -2
  48. data/fastlane/lib/fastlane/notification/slack.rb +56 -0
  49. data/fastlane/lib/fastlane/plugins/plugin_fetcher.rb +1 -2
  50. data/fastlane/lib/fastlane/plugins/plugin_info.rb +2 -2
  51. data/fastlane/lib/fastlane/plugins/plugin_info_collector.rb +1 -2
  52. data/fastlane/lib/fastlane/plugins/plugin_manager.rb +1 -2
  53. data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +7 -6
  54. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +30 -35
  55. data/fastlane/lib/fastlane/plugins/template/spec/spec_helper.rb.erb +1 -1
  56. data/fastlane/lib/fastlane/setup/setup.rb +23 -10
  57. data/fastlane/lib/fastlane/swift_fastlane_function.rb +39 -14
  58. data/fastlane/lib/fastlane/swift_runner_upgrader.rb +2 -0
  59. data/fastlane/lib/fastlane/version.rb +2 -2
  60. data/fastlane/swift/Deliverfile.swift +1 -1
  61. data/fastlane/swift/DeliverfileProtocol.swift +3 -3
  62. data/fastlane/swift/Fastlane.swift +6852 -3824
  63. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +4 -0
  64. data/fastlane/swift/Gymfile.swift +1 -1
  65. data/fastlane/swift/GymfileProtocol.swift +1 -1
  66. data/fastlane/swift/LaneFileProtocol.swift +9 -3
  67. data/fastlane/swift/Matchfile.swift +1 -1
  68. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  69. data/fastlane/swift/OptionalConfigValue.swift +131 -0
  70. data/fastlane/swift/Precheckfile.swift +1 -1
  71. data/fastlane/swift/PrecheckfileProtocol.swift +3 -3
  72. data/fastlane/swift/RubyCommand.swift +1 -1
  73. data/fastlane/swift/Scanfile.swift +1 -1
  74. data/fastlane/swift/ScanfileProtocol.swift +5 -1
  75. data/fastlane/swift/Screengrabfile.swift +1 -1
  76. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  77. data/fastlane/swift/Snapshotfile.swift +1 -1
  78. data/fastlane/swift/SnapshotfileProtocol.swift +5 -1
  79. data/fastlane/swift/SocketClient.swift +2 -1
  80. data/fastlane/swift/SocketResponse.swift +4 -2
  81. data/fastlane/swift/formatting/Brewfile.lock.json +18 -16
  82. data/fastlane/swift/upgrade_manifest.json +1 -1
  83. data/fastlane_core/lib/fastlane_core.rb +22 -21
  84. data/fastlane_core/lib/fastlane_core/build_watcher.rb +50 -9
  85. data/fastlane_core/lib/fastlane_core/clipboard.rb +20 -0
  86. data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +5 -3
  87. data/fastlane_core/lib/fastlane_core/helper.rb +28 -5
  88. data/fastlane_core/lib/fastlane_core/languages.rb +2 -2
  89. data/fastlane_core/lib/fastlane_core/queue_worker.rb +2 -2
  90. data/fastlane_core/lib/fastlane_core/swag.rb +1 -1
  91. data/fastlane_core/lib/fastlane_core/ui/help.erb +35 -0
  92. data/fastlane_core/lib/fastlane_core/ui/help_formatter.rb +16 -0
  93. data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +12 -1
  94. data/frameit/lib/frameit/commands_generator.rb +2 -1
  95. data/gym/lib/gym/commands_generator.rb +2 -1
  96. data/gym/lib/gym/generators/package_command_generator.rb +4 -0
  97. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +13 -8
  98. data/gym/lib/gym/runner.rb +15 -4
  99. data/match/lib/match/change_password.rb +3 -3
  100. data/match/lib/match/commands_generator.rb +2 -1
  101. data/match/lib/match/encryption/interface.rb +1 -1
  102. data/match/lib/match/encryption/openssl.rb +2 -2
  103. data/match/lib/match/module.rb +1 -0
  104. data/pem/lib/pem/commands_generator.rb +2 -1
  105. data/pilot/lib/pilot/commands_generator.rb +2 -1
  106. data/pilot/lib/pilot/manager.rb +4 -0
  107. data/pilot/lib/pilot/options.rb +3 -2
  108. data/pilot/lib/pilot/tester_exporter.rb +0 -1
  109. data/pilot/lib/pilot/tester_manager.rb +0 -1
  110. data/precheck/lib/precheck/commands_generator.rb +2 -1
  111. data/precheck/lib/precheck/options.rb +1 -0
  112. data/precheck/lib/precheck/runner.rb +4 -0
  113. data/produce/lib/produce/commands_generator.rb +2 -1
  114. data/scan/lib/scan/commands_generator.rb +2 -1
  115. data/scan/lib/scan/options.rb +10 -5
  116. data/scan/lib/scan/runner.rb +54 -1
  117. data/scan/lib/scan/test_command_generator.rb +10 -8
  118. data/screengrab/lib/screengrab/android_environment.rb +6 -4
  119. data/screengrab/lib/screengrab/commands_generator.rb +2 -1
  120. data/screengrab/lib/screengrab/runner.rb +1 -1
  121. data/sigh/lib/sigh/commands_generator.rb +2 -1
  122. data/sigh/lib/sigh/options.rb +1 -0
  123. data/sigh/lib/sigh/runner.rb +4 -0
  124. data/snapshot/lib/assets/SnapfileTemplate +1 -1
  125. data/snapshot/lib/assets/SnapshotHelper.swift +1 -1
  126. data/snapshot/lib/snapshot/commands_generator.rb +3 -1
  127. data/snapshot/lib/snapshot/options.rb +5 -0
  128. data/snapshot/lib/snapshot/reports_generator.rb +4 -0
  129. data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +2 -0
  130. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +1 -1
  131. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +8 -4
  132. data/spaceship/README.md +2 -12
  133. data/spaceship/lib/spaceship/base.rb +2 -2
  134. data/spaceship/lib/spaceship/commands_generator.rb +4 -2
  135. data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +1 -1
  136. data/spaceship/lib/spaceship/connect_api/models/profile.rb +6 -0
  137. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +6 -2
  138. data/spaceship/lib/spaceship/connect_api/token.rb +7 -1
  139. data/spaceship/lib/spaceship/spaceauth_runner.rb +19 -9
  140. data/spaceship/lib/spaceship/tunes/members.rb +1 -1
  141. data/spaceship/lib/spaceship/ui.rb +2 -2
  142. data/supply/lib/supply/client.rb +3 -1
  143. data/supply/lib/supply/commands_generator.rb +2 -1
  144. data/supply/lib/supply/options.rb +2 -2
  145. data/supply/lib/supply/uploader.rb +1 -0
  146. metadata +53 -64
  147. data/gym/lib/gym/.runner.rb.swp +0 -0
  148. data/pilot/lib/pilot/tester_util.rb +0 -0
@@ -10,6 +10,7 @@
10
10
  0311E387230AC1B20060BB5C /* Plugins.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0311E386230AC1B20060BB5C /* Plugins.swift */; };
11
11
  0311E38B230AC9490060BB5C /* Actions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0311E38A230AC9490060BB5C /* Actions.swift */; };
12
12
  1257253924B7992C00E04FA3 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1257253824B7992B00E04FA3 /* main.swift */; };
13
+ 12D2EB8D2620D83C00844013 /* OptionalConfigValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12D2EB8C2620D83B00844013 /* OptionalConfigValue.swift */; };
13
14
  B302067B1F5E3E9000DE6EBD /* SnapshotfileProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B30206741F5E3E9000DE6EBD /* SnapshotfileProtocol.swift */; };
14
15
  B302067C1F5E3E9000DE6EBD /* GymfileProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B30206751F5E3E9000DE6EBD /* GymfileProtocol.swift */; };
15
16
  B302067D1F5E3E9000DE6EBD /* MatchfileProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B30206761F5E3E9000DE6EBD /* MatchfileProtocol.swift */; };
@@ -43,6 +44,7 @@
43
44
  0311E386230AC1B20060BB5C /* Plugins.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Plugins.swift; path = ../Plugins.swift; sourceTree = "<group>"; };
44
45
  0311E38A230AC9490060BB5C /* Actions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Actions.swift; path = ../Actions.swift; sourceTree = "<group>"; };
45
46
  1257253824B7992B00E04FA3 /* main.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = main.swift; path = ../main.swift; sourceTree = "<group>"; };
47
+ 12D2EB8C2620D83B00844013 /* OptionalConfigValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = OptionalConfigValue.swift; path = ../OptionalConfigValue.swift; sourceTree = "<group>"; };
46
48
  B30206741F5E3E9000DE6EBD /* SnapshotfileProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SnapshotfileProtocol.swift; path = ../SnapshotfileProtocol.swift; sourceTree = "<group>"; };
47
49
  B30206751F5E3E9000DE6EBD /* GymfileProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = GymfileProtocol.swift; path = ../GymfileProtocol.swift; sourceTree = "<group>"; };
48
50
  B30206761F5E3E9000DE6EBD /* MatchfileProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = MatchfileProtocol.swift; path = ../MatchfileProtocol.swift; sourceTree = "<group>"; };
@@ -154,6 +156,7 @@
154
156
  children = (
155
157
  B3144C08200553C800470AFE /* README.txt */,
156
158
  B3BA659E1F5A269100B34850 /* LaneFileProtocol.swift */,
159
+ 12D2EB8C2620D83B00844013 /* OptionalConfigValue.swift */,
157
160
  );
158
161
  name = "Fastfile Components";
159
162
  sourceTree = "<group>";
@@ -275,6 +278,7 @@
275
278
  D55B28C91F6C588300DC42C5 /* Snapshotfile.swift in Sources */,
276
279
  B3BA65A61F5A269100B34850 /* Fastlane.swift in Sources */,
277
280
  D55B28C81F6C588300DC42C5 /* Screengrabfile.swift in Sources */,
281
+ 12D2EB8D2620D83C00844013 /* OptionalConfigValue.swift in Sources */,
278
282
  );
279
283
  runOnlyForDeploymentPostprocessing = 0;
280
284
  };
@@ -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.178.0
20
+ // Generated with fastlane 2.182.0
@@ -196,4 +196,4 @@ public extension GymfileProtocol {
196
196
 
197
197
  // Please don't remove the lines below
198
198
  // They are used to detect outdated files
199
- // FastlaneRunnerAPIVersion [0.9.64]
199
+ // FastlaneRunnerAPIVersion [0.9.69]
@@ -17,20 +17,20 @@ public protocol LaneFileProtocol: class {
17
17
  func recordLaneDescriptions()
18
18
  func beforeAll(with lane: String)
19
19
  func afterAll(with lane: String)
20
- func onError(currentLane: String, errorInfo: String)
20
+ func onError(currentLane: String, errorInfo: String, errorClass: String?, errorMessage: String?)
21
21
  }
22
22
 
23
23
  public extension LaneFileProtocol {
24
24
  var fastlaneVersion: String { return "" } // Defaults to "" because that means any is fine
25
25
  func beforeAll(with _: String) {} // No-op by default
26
26
  func afterAll(with _: String) {} // No-op by default
27
- func onError(currentLane _: String, errorInfo _: String) {} // No-op by default
28
27
  func recordLaneDescriptions() {} // No-op by default
29
28
  }
30
29
 
31
30
  @objcMembers
32
31
  open class LaneFile: NSObject, LaneFileProtocol {
33
32
  private(set) static var fastfileInstance: LaneFile?
33
+ private static var onErrorCalled = Set<String>()
34
34
 
35
35
  private static func trimLaneFromName(laneName: String) -> String {
36
36
  return String(laneName.prefix(laneName.count - 4))
@@ -40,6 +40,10 @@ open class LaneFile: NSObject, LaneFileProtocol {
40
40
  return String(laneName.prefix(laneName.count - 12))
41
41
  }
42
42
 
43
+ public func onError(currentLane: String, errorInfo _: String, errorClass _: String?, errorMessage _: String?) {
44
+ LaneFile.onErrorCalled.insert(currentLane)
45
+ }
46
+
43
47
  private static var laneFunctionNames: [String] {
44
48
  var lanes: [String] = []
45
49
  var methodCount: UInt32 = 0
@@ -137,7 +141,9 @@ open class LaneFile: NSObject, LaneFileProtocol {
137
141
  _ = fastfileInstance.perform(NSSelectorFromString(laneMethod), with: parameters)
138
142
 
139
143
  // Call only on success.
140
- fastfileInstance.afterAll(with: lane)
144
+ if !LaneFile.onErrorCalled.contains(lane) {
145
+ fastfileInstance.afterAll(with: lane)
146
+ }
141
147
 
142
148
  log(message: "Done running lane: \(lane) 🚀")
143
149
  return true
@@ -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.178.0
20
+ // Generated with fastlane 2.182.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.58]
187
+ // FastlaneRunnerAPIVersion [0.9.63]
@@ -0,0 +1,131 @@
1
+ // OptionalConfigValue.swift
2
+ // Copyright (c) 2021 FastlaneTools
3
+
4
+ //
5
+ // ** NOTE **
6
+ // This file is provided by fastlane and WILL be overwritten in future updates
7
+ // If you want to add extra functionality to this project, create a new file in a
8
+ // new group so that it won't be marked for upgrade
9
+ //
10
+
11
+ import Foundation
12
+
13
+ public enum OptionalConfigValue<T> {
14
+ case fastlaneDefault(T)
15
+ case userDefined(T)
16
+ case `nil`
17
+
18
+ func asRubyArgument(name: String, type: RubyCommand.Argument.ArgType? = nil) -> RubyCommand.Argument? {
19
+ if case let .userDefined(value) = self {
20
+ return RubyCommand.Argument(name: name, value: value, type: type)
21
+ }
22
+ return nil
23
+ }
24
+ }
25
+
26
+ extension Optional: ExpressibleByIntegerLiteral where Wrapped: ExpressibleByIntegerLiteral {
27
+ public typealias IntegerLiteralType = Wrapped.IntegerLiteralType
28
+
29
+ public init(integerLiteral value: Wrapped.IntegerLiteralType) {
30
+ self = .some(.init(integerLiteral: value))
31
+ }
32
+ }
33
+
34
+ extension Optional: ExpressibleByUnicodeScalarLiteral where Wrapped: ExpressibleByUnicodeScalarLiteral {
35
+ public typealias UnicodeScalarLiteralType = Wrapped.UnicodeScalarLiteralType
36
+
37
+ public init(unicodeScalarLiteral value: Wrapped.UnicodeScalarLiteralType) {
38
+ self = .some(.init(unicodeScalarLiteral: value))
39
+ }
40
+ }
41
+
42
+ extension Optional: ExpressibleByExtendedGraphemeClusterLiteral where Wrapped: ExpressibleByStringLiteral {
43
+ public typealias ExtendedGraphemeClusterLiteralType = Wrapped.ExtendedGraphemeClusterLiteralType
44
+
45
+ public init(extendedGraphemeClusterLiteral value: Wrapped.ExtendedGraphemeClusterLiteralType) {
46
+ self = .some(.init(extendedGraphemeClusterLiteral: value))
47
+ }
48
+ }
49
+
50
+ extension Optional: ExpressibleByStringLiteral where Wrapped: ExpressibleByStringLiteral {
51
+ public typealias StringLiteralType = Wrapped.StringLiteralType
52
+
53
+ public init(stringLiteral value: Wrapped.StringLiteralType) {
54
+ self = .some(.init(stringLiteral: value))
55
+ }
56
+ }
57
+
58
+ extension OptionalConfigValue: ExpressibleByUnicodeScalarLiteral where T == String? {
59
+ public typealias UnicodeScalarLiteralType = String
60
+
61
+ public init(unicodeScalarLiteral value: UnicodeScalarLiteralType) {
62
+ self = .userDefined(value)
63
+ }
64
+ }
65
+
66
+ extension OptionalConfigValue: ExpressibleByExtendedGraphemeClusterLiteral where T == String? {
67
+ public typealias ExtendedGraphemeClusterLiteralType = String
68
+
69
+ public init(extendedGraphemeClusterLiteral value: ExtendedGraphemeClusterLiteralType) {
70
+ self = .userDefined(value)
71
+ }
72
+ }
73
+
74
+ extension OptionalConfigValue: ExpressibleByStringLiteral where T == String? {
75
+ public typealias StringLiteralType = String
76
+
77
+ public init(stringLiteral value: StringLiteralType) {
78
+ self = .userDefined(value)
79
+ }
80
+ }
81
+
82
+ extension OptionalConfigValue: ExpressibleByNilLiteral {
83
+ public init(nilLiteral _: ()) {
84
+ self = .nil
85
+ }
86
+ }
87
+
88
+ extension OptionalConfigValue: ExpressibleByIntegerLiteral where T == Int? {
89
+ public typealias IntegerLiteralType = Int
90
+
91
+ public init(integerLiteral value: IntegerLiteralType) {
92
+ self = .userDefined(value)
93
+ }
94
+ }
95
+
96
+ extension OptionalConfigValue: ExpressibleByArrayLiteral where T == [String] {
97
+ public typealias ArrayLiteralElement = String
98
+
99
+ public init(arrayLiteral elements: ArrayLiteralElement...) {
100
+ self = .userDefined(elements)
101
+ }
102
+ }
103
+
104
+ extension OptionalConfigValue: ExpressibleByFloatLiteral where T == Float {
105
+ public typealias FloatLiteralType = Float
106
+
107
+ public init(floatLiteral value: FloatLiteralType) {
108
+ self = .userDefined(value)
109
+ }
110
+ }
111
+
112
+ extension OptionalConfigValue: ExpressibleByBooleanLiteral where T == Bool {
113
+ public typealias BooleanLiteralType = Bool
114
+
115
+ public init(booleanLiteral value: BooleanLiteralType) {
116
+ self = .userDefined(value)
117
+ }
118
+ }
119
+
120
+ extension OptionalConfigValue: ExpressibleByDictionaryLiteral where T == [String: Any] {
121
+ public typealias Key = String
122
+ public typealias Value = Any
123
+
124
+ public init(dictionaryLiteral elements: (Key, Value)...) {
125
+ var dict: [Key: Value] = [:]
126
+ elements.forEach {
127
+ dict[$0.0] = $0.1
128
+ }
129
+ self = .userDefined(dict)
130
+ }
131
+ }
@@ -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.178.0
20
+ // Generated with fastlane 2.182.0
@@ -12,7 +12,7 @@ public protocol PrecheckfileProtocol: class {
12
12
  var appIdentifier: String { get }
13
13
 
14
14
  /// Your Apple ID Username
15
- var username: String { get }
15
+ var username: String? { get }
16
16
 
17
17
  /// The ID of your App Store Connect team if you're in multiple teams
18
18
  var teamId: String? { get }
@@ -40,7 +40,7 @@ public extension PrecheckfileProtocol {
40
40
  var apiKeyPath: String? { return nil }
41
41
  var apiKey: [String: Any]? { return nil }
42
42
  var appIdentifier: String { return "" }
43
- var username: String { return "" }
43
+ var username: String? { return nil }
44
44
  var teamId: String? { return nil }
45
45
  var teamName: String? { return nil }
46
46
  var platform: String { return "ios" }
@@ -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.57]
55
+ // FastlaneRunnerAPIVersion [0.9.62]
@@ -51,7 +51,7 @@ struct RubyCommand: RubyCommandable {
51
51
  if type == .stringClosure {
52
52
  return "{\"name\" : \"\(name)\", \"value\" : \"ignored_for_closure\"\(typeJson)}"
53
53
  } else if let array = someValue as? [String] {
54
- return "{\"name\" : \"\(name)\", \"value\" : \"\(array.joined(separator: ","))\"\(typeJson)}"
54
+ return "{\"name\" : \"\(name)\", \"value\" : \(array)\(typeJson)}"
55
55
  } else if let hash = someValue as? [String: Any] {
56
56
  let jsonData = try! JSONSerialization.data(withJSONObject: hash, options: [])
57
57
  let jsonString = String(data: jsonData, encoding: .utf8)!
@@ -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.178.0
20
+ // Generated with fastlane 2.182.0
@@ -209,6 +209,9 @@ public protocol ScanfileProtocol: class {
209
209
  /// Lets xcodebuild use system's scm configuration
210
210
  var useSystemScm: Bool { get }
211
211
 
212
+ /// The number of times a test can fail before scan should stop retrying
213
+ var numberOfRetries: Int { get }
214
+
212
215
  /// Should this step stop the build if the tests fail? Set this to false if you're using trainer
213
216
  var failBuild: Bool { get }
214
217
  }
@@ -283,9 +286,10 @@ public extension ScanfileProtocol {
283
286
  var skipPackageDependenciesResolution: Bool { return false }
284
287
  var disablePackageAutomaticUpdates: Bool { return false }
285
288
  var useSystemScm: Bool { return false }
289
+ var numberOfRetries: Int { return 0 }
286
290
  var failBuild: Bool { return true }
287
291
  }
288
292
 
289
293
  // Please don't remove the lines below
290
294
  // They are used to detect outdated files
291
- // FastlaneRunnerAPIVersion [0.9.69]
295
+ // FastlaneRunnerAPIVersion [0.9.74]
@@ -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.178.0
20
+ // Generated with fastlane 2.182.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.59]
99
+ // FastlaneRunnerAPIVersion [0.9.64]
@@ -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.178.0
20
+ // Generated with fastlane 2.182.0
@@ -53,6 +53,9 @@ public protocol SnapshotfileProtocol: class {
53
53
  /// Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception
54
54
  var overrideStatusBar: Bool { get }
55
55
 
56
+ /// Fully customize the status bar by setting each option here. See `xcrun simctl status_bar --help`
57
+ var overrideStatusBarArguments: String? { get }
58
+
56
59
  /// Enabling this option will configure the Simulator's system language
57
60
  var localizeSimulator: Bool { get }
58
61
 
@@ -162,6 +165,7 @@ public extension SnapshotfileProtocol {
162
165
  var eraseSimulator: Bool { return false }
163
166
  var headless: Bool { return true }
164
167
  var overrideStatusBar: Bool { return false }
168
+ var overrideStatusBarArguments: String? { return nil }
165
169
  var localizeSimulator: Bool { return false }
166
170
  var darkMode: Bool? { return nil }
167
171
  var appIdentifier: String? { return nil }
@@ -196,4 +200,4 @@ public extension SnapshotfileProtocol {
196
200
 
197
201
  // Please don't remove the lines below
198
202
  // They are used to detect outdated files
199
- // FastlaneRunnerAPIVersion [0.9.53]
203
+ // FastlaneRunnerAPIVersion [0.9.58]
@@ -302,7 +302,8 @@ extension SocketClient: StreamDelegate {
302
302
  self.closeSession(sendAbort: false)
303
303
  }
304
304
 
305
- case let .failure(failureInformation):
305
+ case let .failure(failureInformation, failureClass, failureMessage):
306
+ LaneFile.fastfileInstance?.onError(currentLane: ArgumentProcessor(args: CommandLine.arguments).currentLane, errorInfo: failureInformation.joined(), errorClass: failureClass, errorMessage: failureMessage)
306
307
  socketDelegate?.commandExecuted(serverResponse: .serverError) {
307
308
  $0.writeSemaphore.signal()
308
309
  self.handleFailure(message: failureInformation)
@@ -13,7 +13,7 @@ import Foundation
13
13
  struct SocketResponse {
14
14
  enum ResponseType {
15
15
  case parseFailure(failureInformation: [String])
16
- case failure(failureInformation: [String])
16
+ case failure(failureInformation: [String], failureClass: String?, failureMessage: String?)
17
17
  case readyForNext(returnedObject: String?, closureArgumentValue: String?)
18
18
  case clientInitiatedCancel
19
19
 
@@ -40,7 +40,9 @@ struct SocketResponse {
40
40
  return
41
41
  }
42
42
 
43
- self = .failure(failureInformation: failureInformation)
43
+ let failureClass = statusDictionary["failure_class"] as? String
44
+ let failureMessage = statusDictionary["failure_message"] as? String
45
+ self = .failure(failureInformation: failureInformation, failureClass: failureClass, failureMessage: failureMessage)
44
46
  return
45
47
  }
46
48
  self = .parseFailure(failureInformation: ["Message status: \(status) not a supported status"])
@@ -2,28 +2,30 @@
2
2
  "entries": {
3
3
  "brew": {
4
4
  "swiftformat": {
5
- "version": "0.47.12",
5
+ "version": "0.48.0",
6
6
  "bottle": {
7
7
  "rebuild": 0,
8
- "cellar": ":any_skip_relocation",
9
- "prefix": "/usr/local",
10
- "root_url": "https://homebrew.bintray.com/bottles",
8
+ "root_url": "https://ghcr.io/v2/homebrew/core",
11
9
  "files": {
12
10
  "arm64_big_sur": {
13
- "url": "https://homebrew.bintray.com/bottles/swiftformat-0.47.12.arm64_big_sur.bottle.tar.gz",
14
- "sha256": "334b736f7c78b1bc48882f55558e79571be591281462bc91dedea6dac10034be"
11
+ "cellar": ":any_skip_relocation",
12
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:bca1fc4ac0264ff950c14eb3c72c0fa321baa99fb60178266da19b680d67147b",
13
+ "sha256": "bca1fc4ac0264ff950c14eb3c72c0fa321baa99fb60178266da19b680d67147b"
15
14
  },
16
15
  "big_sur": {
17
- "url": "https://homebrew.bintray.com/bottles/swiftformat-0.47.12.big_sur.bottle.tar.gz",
18
- "sha256": "b7ba5043f29c548dd05374125faa61dd07690bffe373890cb608609e4a7e2413"
16
+ "cellar": ":any_skip_relocation",
17
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:fa1af90b137298039eab4205a9a8733fbba4f9e5cf0322197674ce6f1582f0e0",
18
+ "sha256": "fa1af90b137298039eab4205a9a8733fbba4f9e5cf0322197674ce6f1582f0e0"
19
19
  },
20
20
  "catalina": {
21
- "url": "https://homebrew.bintray.com/bottles/swiftformat-0.47.12.catalina.bottle.tar.gz",
22
- "sha256": "030b2e18168f5680c4ee387812b14057c4cb148b6f6800b983b1b298f4af15b1"
21
+ "cellar": ":any_skip_relocation",
22
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:35bc84d95bcd8e5066669c6383f999507b1d1a8a08f3aae321f89e2944ea39e2",
23
+ "sha256": "35bc84d95bcd8e5066669c6383f999507b1d1a8a08f3aae321f89e2944ea39e2"
23
24
  },
24
25
  "mojave": {
25
- "url": "https://homebrew.bintray.com/bottles/swiftformat-0.47.12.mojave.bottle.tar.gz",
26
- "sha256": "b3e35821d3094d08eb9f8423ce7d18cb5462bb5b1d02a3156ed1a10f6539709a"
26
+ "cellar": ":any_skip_relocation",
27
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:b5274f542e17907e806ca6e6d1ca630a538bc2e98330329bca5a1568d76a7267",
28
+ "sha256": "b5274f542e17907e806ca6e6d1ca630a538bc2e98330329bca5a1568d76a7267"
27
29
  }
28
30
  }
29
31
  }
@@ -33,11 +35,11 @@
33
35
  "system": {
34
36
  "macos": {
35
37
  "catalina": {
36
- "HOMEBREW_VERSION": "3.0.4-64-g31a4989",
38
+ "HOMEBREW_VERSION": "3.1.5-69-g70c8693",
37
39
  "HOMEBREW_PREFIX": "/usr/local",
38
- "Homebrew/homebrew-core": "443ddf805144323198a5b37b071516534243377b",
39
- "CLT": "11.0.33.12",
40
- "Xcode": "12.2",
40
+ "Homebrew/homebrew-core": "d4dcdecc3c226aed326813f67043b728342eec96",
41
+ "CLT": "11.0.0.33.12",
42
+ "Xcode": "12.4",
41
43
  "macOS": "10.15.7"
42
44
  },
43
45
  "big_sur": {
@@ -1 +1 @@
1
- {"Actions.swift":"Autogenerated API","Fastlane.swift":"Autogenerated API","DeliverfileProtocol.swift":"Autogenerated API","GymfileProtocol.swift":"Autogenerated API","MatchfileProtocol.swift":"Autogenerated API","Plugins.swift":"Autogenerated API","PrecheckfileProtocol.swift":"Autogenerated API","ScanfileProtocol.swift":"Autogenerated API","ScreengrabfileProtocol.swift":"Autogenerated API","SnapshotfileProtocol.swift":"Autogenerated API","LaneFileProtocol.swift":"Fastfile Components","ControlCommand.swift":"Networking","RubyCommand.swift":"Networking","RubyCommandable.swift":"Networking","Runner.swift":"Networking","SocketClient.swift":"Networking","SocketClientDelegateProtocol.swift":"Networking","SocketResponse.swift":"Networking","main.swift":"Runner Code","ArgumentProcessor.swift":"Runner Code","RunnerArgument.swift":"Runner Code"}
1
+ {"Actions.swift":"Autogenerated API","Fastlane.swift":"Autogenerated API","DeliverfileProtocol.swift":"Autogenerated API","GymfileProtocol.swift":"Autogenerated API","MatchfileProtocol.swift":"Autogenerated API","Plugins.swift":"Autogenerated API","PrecheckfileProtocol.swift":"Autogenerated API","ScanfileProtocol.swift":"Autogenerated API","ScreengrabfileProtocol.swift":"Autogenerated API","SnapshotfileProtocol.swift":"Autogenerated API","LaneFileProtocol.swift":"Fastfile Components","OptionalConfigValue.swift":"Fastfile Components","ControlCommand.swift":"Networking","RubyCommand.swift":"Networking","RubyCommandable.swift":"Networking","Runner.swift":"Networking","SocketClient.swift":"Networking","SocketClientDelegateProtocol.swift":"Networking","SocketResponse.swift":"Networking","main.swift":"Runner Code","ArgumentProcessor.swift":"Runner Code","RunnerArgument.swift":"Runner Code"}