fastlane 2.106.2 → 2.107.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 974356157916157c6d36d8a7de62dba3e39446ac
4
- data.tar.gz: 855cb3995e8305afe9f1d69b8f83799b42dea3f7
3
+ metadata.gz: fb1fe1c1267406cd31cae723a93fdf2064a11e30
4
+ data.tar.gz: 03c108ea0933387c74bf32ce9f5c2649fa51b9f9
5
5
  SHA512:
6
- metadata.gz: 27d5745d24d106bf2613e1a3c58c6aec52f6f0b21337d24b86deeab8f7425fc9bab1cde19f3026fe7c9f7cac1928522530777f2e7899dd499b7015b8c8507c76
7
- data.tar.gz: a3142001b58083a1613d6e6b290dcdf084939b71c2f95347e74ab518829011ff4265c55125a5861d7d7974da4db300de4f8169e760df962c69e56f9c3e5a8abc
6
+ metadata.gz: 3c5ddd92c49db1e964d9a824a4eb666a0e2baa9c0dc4d6900439475bf41e6fd84de57a4b9e6c9e2130260e084f5d3ac49f8a35090add1ca0fa31d50121816c34
7
+ data.tar.gz: 8da9bba98b68757c4ec8c1fcb6c2d6070c18968950cf082015969bf175eb96569cdb143ff52248023246acf57ea3ca42d07897f8721e432b8cbd17ea3459fef7
data/README.md CHANGED
@@ -33,67 +33,67 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
33
33
  <!-- This table is regenerated and resorted on each release -->
34
34
  <table id='team'>
35
35
  <tr>
36
- <td id='jan-piotrowski'>
37
- <a href='https://github.com/janpio'>
38
- <img src='https://github.com/janpio.png?size=140'>
36
+ <td id='fumiya-nakamura'>
37
+ <a href='https://github.com/nafu'>
38
+ <img src='https://github.com/nafu.png?size=140'>
39
39
  </a>
40
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
40
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
41
41
  </td>
42
- <td id='iulian-onofrei'>
43
- <a href='https://github.com/revolter'>
44
- <img src='https://github.com/revolter.png?size=140'>
42
+ <td id='olivier-halligon'>
43
+ <a href='https://github.com/AliSoftware'>
44
+ <img src='https://github.com/AliSoftware.png?size=140'>
45
45
  </a>
46
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
46
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
47
47
  </td>
48
- <td id='josh-holtz'>
49
- <a href='https://github.com/joshdholtz'>
50
- <img src='https://github.com/joshdholtz.png?size=140'>
48
+ <td id='jérôme-lacoste'>
49
+ <a href='https://github.com/lacostej'>
50
+ <img src='https://github.com/lacostej.png?size=140'>
51
51
  </a>
52
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
52
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
53
53
  </td>
54
- <td id='andrew-mcburney'>
55
- <a href='https://github.com/AndrewMcBurney'>
56
- <img src='https://github.com/AndrewMcBurney.png?size=140'>
54
+ <td id='jorge-revuelta-h'>
55
+ <a href='https://github.com/minuscorp'>
56
+ <img src='https://github.com/minuscorp.png?size=140'>
57
57
  </a>
58
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
58
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
59
59
  </td>
60
- <td id='helmut-januschka'>
61
- <a href='https://github.com/hjanuschka'>
62
- <img src='https://github.com/hjanuschka.png?size=140'>
60
+ <td id='manu-wallner'>
61
+ <a href='https://github.com/milch'>
62
+ <img src='https://github.com/milch.png?size=140'>
63
63
  </a>
64
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
64
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
65
65
  </td>
66
66
  </tr>
67
67
  <tr>
68
- <td id='joshua-liebowitz'>
69
- <a href='https://github.com/taquitos'>
70
- <img src='https://github.com/taquitos.png?size=140'>
68
+ <td id='josh-holtz'>
69
+ <a href='https://github.com/joshdholtz'>
70
+ <img src='https://github.com/joshdholtz.png?size=140'>
71
71
  </a>
72
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
72
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
73
73
  </td>
74
- <td id='kohki-miki'>
75
- <a href='https://github.com/giginet'>
76
- <img src='https://github.com/giginet.png?size=140'>
74
+ <td id='jan-piotrowski'>
75
+ <a href='https://github.com/janpio'>
76
+ <img src='https://github.com/janpio.png?size=140'>
77
77
  </a>
78
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
78
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
79
79
  </td>
80
- <td id='danielle-tomlinson'>
81
- <a href='https://github.com/DanToml'>
82
- <img src='https://github.com/DanToml.png?size=140'>
80
+ <td id='aaron-brager'>
81
+ <a href='https://github.com/getaaron'>
82
+ <img src='https://github.com/getaaron.png?size=140'>
83
83
  </a>
84
- <h4 align='center'><a href='https://twitter.com/DanToml'>Danielle Tomlinson</a></h4>
84
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
85
85
  </td>
86
- <td id='olivier-halligon'>
87
- <a href='https://github.com/AliSoftware'>
88
- <img src='https://github.com/AliSoftware.png?size=140'>
86
+ <td id='matthew-ellis'>
87
+ <a href='https://github.com/matthewellis'>
88
+ <img src='https://github.com/matthewellis.png?size=140'>
89
89
  </a>
90
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
90
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
91
91
  </td>
92
- <td id='manu-wallner'>
93
- <a href='https://github.com/milch'>
94
- <img src='https://github.com/milch.png?size=140'>
92
+ <td id='kohki-miki'>
93
+ <a href='https://github.com/giginet'>
94
+ <img src='https://github.com/giginet.png?size=140'>
95
95
  </a>
96
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
96
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
97
97
  </td>
98
98
  </tr>
99
99
  <tr>
@@ -103,11 +103,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
103
103
  </a>
104
104
  <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
105
105
  </td>
106
- <td id='jérôme-lacoste'>
107
- <a href='https://github.com/lacostej'>
108
- <img src='https://github.com/lacostej.png?size=140'>
106
+ <td id='joshua-liebowitz'>
107
+ <a href='https://github.com/taquitos'>
108
+ <img src='https://github.com/taquitos.png?size=140'>
109
109
  </a>
110
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
110
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
111
111
  </td>
112
112
  <td id='stefan-natchev'>
113
113
  <a href='https://github.com/snatchev'>
@@ -115,37 +115,37 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
115
115
  </a>
116
116
  <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
117
117
  </td>
118
- <td id='matthew-ellis'>
119
- <a href='https://github.com/matthewellis'>
120
- <img src='https://github.com/matthewellis.png?size=140'>
118
+ <td id='maksym-grebenets'>
119
+ <a href='https://github.com/mgrebenets'>
120
+ <img src='https://github.com/mgrebenets.png?size=140'>
121
121
  </a>
122
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
122
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
123
123
  </td>
124
- <td id='jimmy-dee'>
125
- <a href='https://github.com/jdee'>
126
- <img src='https://github.com/jdee.png?size=140'>
124
+ <td id='iulian-onofrei'>
125
+ <a href='https://github.com/revolter'>
126
+ <img src='https://github.com/revolter.png?size=140'>
127
127
  </a>
128
- <h4 align='center'>Jimmy Dee</h4>
128
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
129
129
  </td>
130
130
  </tr>
131
131
  <tr>
132
- <td id='aaron-brager'>
133
- <a href='https://github.com/getaaron'>
134
- <img src='https://github.com/getaaron.png?size=140'>
132
+ <td id='danielle-tomlinson'>
133
+ <a href='https://github.com/DanToml'>
134
+ <img src='https://github.com/DanToml.png?size=140'>
135
135
  </a>
136
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
136
+ <h4 align='center'><a href='https://twitter.com/DanToml'>Danielle Tomlinson</a></h4>
137
137
  </td>
138
- <td id='maksym-grebenets'>
139
- <a href='https://github.com/mgrebenets'>
140
- <img src='https://github.com/mgrebenets.png?size=140'>
138
+ <td id='helmut-januschka'>
139
+ <a href='https://github.com/hjanuschka'>
140
+ <img src='https://github.com/hjanuschka.png?size=140'>
141
141
  </a>
142
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
142
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
143
143
  </td>
144
- <td id='jorge-revuelta-h'>
145
- <a href='https://github.com/minuscorp'>
146
- <img src='https://github.com/minuscorp.png?size=140'>
144
+ <td id='andrew-mcburney'>
145
+ <a href='https://github.com/AndrewMcBurney'>
146
+ <img src='https://github.com/AndrewMcBurney.png?size=140'>
147
147
  </a>
148
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
148
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
149
149
  </td>
150
150
  <td id='felix-krause'>
151
151
  <a href='https://github.com/KrauseFx'>
@@ -153,11 +153,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
153
153
  </a>
154
154
  <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
155
155
  </td>
156
- <td id='fumiya-nakamura'>
157
- <a href='https://github.com/nafu'>
158
- <img src='https://github.com/nafu.png?size=140'>
156
+ <td id='jimmy-dee'>
157
+ <a href='https://github.com/jdee'>
158
+ <img src='https://github.com/jdee.png?size=140'>
159
159
  </a>
160
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
160
+ <h4 align='center'>Jimmy Dee</h4>
161
161
  </td>
162
162
  </tr>
163
163
  </table>
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.106.2'.freeze
2
+ VERSION = '2.107.0'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  MINIMUM_XCODE_RELEASE = "7.0".freeze
5
5
  RUBOCOP_REQUIREMENT = '0.49.1'.freeze
@@ -18,4 +18,4 @@ class Deliverfile: DeliverfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.106.2
21
+ // Generated with fastlane 2.107.0
@@ -2637,6 +2637,7 @@ func runTests(workspace: String? = nil,
2637
2637
  outputFiles: String? = nil,
2638
2638
  buildlogPath: String = "~/Library/Logs/scan",
2639
2639
  includeSimulatorLogs: Bool = false,
2640
+ suppressXcodeOutput: String? = nil,
2640
2641
  formatter: String? = nil,
2641
2642
  xcprettyArgs: String? = nil,
2642
2643
  maxConcurrentSimulators: Int? = nil,
@@ -2662,6 +2663,8 @@ func runTests(workspace: String? = nil,
2662
2663
  slackOnlyOnFailure: Bool = false,
2663
2664
  useClangReportName: Bool = false,
2664
2665
  customReportFileName: String? = nil,
2666
+ appIdentifier: String? = nil,
2667
+ reinstallApp: Bool = false,
2665
2668
  failBuild: Bool = true) {
2666
2669
  let command = RubyCommand(commandID: "", methodName: "run_tests", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
2667
2670
  RubyCommand.Argument(name: "project", value: project),
@@ -2681,6 +2684,7 @@ func runTests(workspace: String? = nil,
2681
2684
  RubyCommand.Argument(name: "output_files", value: outputFiles),
2682
2685
  RubyCommand.Argument(name: "buildlog_path", value: buildlogPath),
2683
2686
  RubyCommand.Argument(name: "include_simulator_logs", value: includeSimulatorLogs),
2687
+ RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput),
2684
2688
  RubyCommand.Argument(name: "formatter", value: formatter),
2685
2689
  RubyCommand.Argument(name: "xcpretty_args", value: xcprettyArgs),
2686
2690
  RubyCommand.Argument(name: "max_concurrent_simulators", value: maxConcurrentSimulators),
@@ -2706,6 +2710,8 @@ func runTests(workspace: String? = nil,
2706
2710
  RubyCommand.Argument(name: "slack_only_on_failure", value: slackOnlyOnFailure),
2707
2711
  RubyCommand.Argument(name: "use_clang_report_name", value: useClangReportName),
2708
2712
  RubyCommand.Argument(name: "custom_report_file_name", value: customReportFileName),
2713
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
2714
+ RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
2709
2715
  RubyCommand.Argument(name: "fail_build", value: failBuild)])
2710
2716
  _ = runner.executeCommand(command)
2711
2717
  }
@@ -2767,6 +2773,7 @@ func scan(workspace: String? = scanfile.workspace,
2767
2773
  outputFiles: String? = scanfile.outputFiles,
2768
2774
  buildlogPath: String = scanfile.buildlogPath,
2769
2775
  includeSimulatorLogs: Bool = scanfile.includeSimulatorLogs,
2776
+ suppressXcodeOutput: String? = scanfile.suppressXcodeOutput,
2770
2777
  formatter: String? = scanfile.formatter,
2771
2778
  xcprettyArgs: String? = scanfile.xcprettyArgs,
2772
2779
  maxConcurrentSimulators: Int? = scanfile.maxConcurrentSimulators,
@@ -2792,6 +2799,8 @@ func scan(workspace: String? = scanfile.workspace,
2792
2799
  slackOnlyOnFailure: Bool = scanfile.slackOnlyOnFailure,
2793
2800
  useClangReportName: Bool = scanfile.useClangReportName,
2794
2801
  customReportFileName: String? = scanfile.customReportFileName,
2802
+ appIdentifier: String? = scanfile.appIdentifier,
2803
+ reinstallApp: Bool = scanfile.reinstallApp,
2795
2804
  failBuild: Bool = scanfile.failBuild) {
2796
2805
  let command = RubyCommand(commandID: "", methodName: "scan", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
2797
2806
  RubyCommand.Argument(name: "project", value: project),
@@ -2811,6 +2820,7 @@ func scan(workspace: String? = scanfile.workspace,
2811
2820
  RubyCommand.Argument(name: "output_files", value: outputFiles),
2812
2821
  RubyCommand.Argument(name: "buildlog_path", value: buildlogPath),
2813
2822
  RubyCommand.Argument(name: "include_simulator_logs", value: includeSimulatorLogs),
2823
+ RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput),
2814
2824
  RubyCommand.Argument(name: "formatter", value: formatter),
2815
2825
  RubyCommand.Argument(name: "xcpretty_args", value: xcprettyArgs),
2816
2826
  RubyCommand.Argument(name: "max_concurrent_simulators", value: maxConcurrentSimulators),
@@ -2836,6 +2846,8 @@ func scan(workspace: String? = scanfile.workspace,
2836
2846
  RubyCommand.Argument(name: "slack_only_on_failure", value: slackOnlyOnFailure),
2837
2847
  RubyCommand.Argument(name: "use_clang_report_name", value: useClangReportName),
2838
2848
  RubyCommand.Argument(name: "custom_report_file_name", value: customReportFileName),
2849
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
2850
+ RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
2839
2851
  RubyCommand.Argument(name: "fail_build", value: failBuild)])
2840
2852
  _ = runner.executeCommand(command)
2841
2853
  }
@@ -4109,4 +4121,4 @@ let screengrabfile: Screengrabfile = Screengrabfile()
4109
4121
  let snapshotfile: Snapshotfile = Snapshotfile()
4110
4122
  // Please don't remove the lines below
4111
4123
  // They are used to detect outdated files
4112
- // FastlaneRunnerAPIVersion [0.9.31]
4124
+ // FastlaneRunnerAPIVersion [0.9.32]
@@ -18,4 +18,4 @@ class Gymfile: GymfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.106.2
21
+ // Generated with fastlane 2.107.0
@@ -18,4 +18,4 @@ class Matchfile: MatchfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.106.2
21
+ // Generated with fastlane 2.107.0
@@ -18,4 +18,4 @@ class Precheckfile: PrecheckfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.106.2
21
+ // Generated with fastlane 2.107.0
@@ -18,4 +18,4 @@ class Scanfile: ScanfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.106.2
21
+ // Generated with fastlane 2.107.0
@@ -17,6 +17,7 @@ protocol ScanfileProtocol: class {
17
17
  var outputFiles: String? { get }
18
18
  var buildlogPath: String { get }
19
19
  var includeSimulatorLogs: Bool { get }
20
+ var suppressXcodeOutput: String? { get }
20
21
  var formatter: String? { get }
21
22
  var xcprettyArgs: String? { get }
22
23
  var maxConcurrentSimulators: Int? { get }
@@ -42,6 +43,8 @@ protocol ScanfileProtocol: class {
42
43
  var slackOnlyOnFailure: Bool { get }
43
44
  var useClangReportName: Bool { get }
44
45
  var customReportFileName: String? { get }
46
+ var appIdentifier: String? { get }
47
+ var reinstallApp: Bool { get }
45
48
  var failBuild: Bool { get }
46
49
  }
47
50
 
@@ -64,6 +67,7 @@ extension ScanfileProtocol {
64
67
  var outputFiles: String? { return nil }
65
68
  var buildlogPath: String { return "~/Library/Logs/scan" }
66
69
  var includeSimulatorLogs: Bool { return false }
70
+ var suppressXcodeOutput: String? { return nil }
67
71
  var formatter: String? { return nil }
68
72
  var xcprettyArgs: String? { return nil }
69
73
  var maxConcurrentSimulators: Int? { return nil }
@@ -89,9 +93,11 @@ extension ScanfileProtocol {
89
93
  var slackOnlyOnFailure: Bool { return false }
90
94
  var useClangReportName: Bool { return false }
91
95
  var customReportFileName: String? { return nil }
96
+ var appIdentifier: String? { return nil }
97
+ var reinstallApp: Bool { return false }
92
98
  var failBuild: Bool { return true }
93
99
  }
94
100
 
95
101
  // Please don't remove the lines below
96
102
  // They are used to detect outdated files
97
- // FastlaneRunnerAPIVersion [0.9.5]
103
+ // FastlaneRunnerAPIVersion [0.9.6]
@@ -18,4 +18,4 @@ class Screengrabfile: ScreengrabfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.106.2
21
+ // Generated with fastlane 2.107.0
@@ -18,4 +18,4 @@ class Snapshotfile: SnapshotfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.106.2
21
+ // Generated with fastlane 2.107.0
@@ -34,8 +34,9 @@ module FastlaneCore
34
34
  # @param error [Block] A block that's called if an error occurs
35
35
  # @param prefix [Array] An array containing a prefix + block which might get applied to the output
36
36
  # @param loading [String] A loading string that is shown before the first output
37
+ # @param suppress_output [Boolean] Should we print the command's output?
37
38
  # @return [String] All the output as string
38
- def execute(command: nil, print_all: false, print_command: true, error: nil, prefix: nil, loading: nil)
39
+ def execute(command: nil, print_all: false, print_command: true, error: nil, prefix: nil, loading: nil, suppress_output: false)
39
40
  print_all = true if FastlaneCore::Globals.verbose?
40
41
  prefix ||= {}
41
42
 
@@ -60,7 +61,7 @@ module FastlaneCore
60
61
  line = element[:prefix] + line if element[:block] && element[:block].call(line)
61
62
  end
62
63
 
63
- UI.command_output(line)
64
+ UI.command_output(line) unless suppress_output
64
65
  end
65
66
  end
66
67
  rescue => ex
@@ -82,7 +83,7 @@ module FastlaneCore
82
83
  # Exit status for build command, should be 0 if build succeeded
83
84
  if status != 0
84
85
  o = output.join("\n")
85
- puts(o) # the user has the right to see the raw output
86
+ puts(o) unless suppress_output # the user has the right to see the raw output
86
87
  UI.error("Exit status: #{status}")
87
88
  if error
88
89
  error.call(o, status)
@@ -276,6 +276,16 @@ module FastlaneCore
276
276
  end
277
277
  end
278
278
 
279
+ def uninstall_app(app_identifier, device_type, device_udid)
280
+ UI.verbose("Uninstalling app '#{app_identifier}' from #{device_type}...")
281
+
282
+ UI.message("Launch Simulator #{device_type}")
283
+ Helper.backticks("xcrun instruments -w #{device_udid} &> /dev/null")
284
+
285
+ UI.message("Uninstall application #{app_identifier}")
286
+ Helper.backticks("xcrun simctl uninstall #{device_udid} #{app_identifier} &> /dev/null")
287
+ end
288
+
279
289
  private
280
290
 
281
291
  def copy_logfile(device, log_identity, logs_destination_dir)
Binary file
@@ -36,6 +36,13 @@ module Match
36
36
  })
37
37
  self.storage.download
38
38
 
39
+ # After the download was complete
40
+ self.encryption = Encryption.for_storage_mode(params[:storage_mode], {
41
+ git_url: params[:git_url],
42
+ working_directory: storage.working_directory
43
+ })
44
+ self.encryption.decrypt_files
45
+
39
46
  had_app_identifier = self.params.fetch(:app_identifier, ask: false)
40
47
  self.params[:app_identifier] = '' # we don't really need a value here
41
48
  FastlaneCore::PrintTable.print_values(config: params,
@@ -185,6 +192,8 @@ module Match
185
192
  delete_files!
186
193
  end
187
194
 
195
+ self.encryption.encrypt_files
196
+
188
197
  # Now we need to commit and push all this too
189
198
  message = ["[fastlane]", "Nuked", "files", "for", type.to_s].join(" ")
190
199
  self.storage.save_changes!(files_to_commit: [], custom_message: message)
@@ -146,6 +146,11 @@ module Scan
146
146
  type: Boolean,
147
147
  default_value: false,
148
148
  optional: true),
149
+ FastlaneCore::ConfigItem.new(key: :suppress_xcode_output,
150
+ env_name: "SCAN_SUPPRESS_XCODE_OUTPUT",
151
+ description: "Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path",
152
+ optional: true,
153
+ is_string: false),
149
154
  FastlaneCore::ConfigItem.new(key: :formatter,
150
155
  short_option: "-n",
151
156
  env_name: "SCAN_FORMATTER",
@@ -302,7 +307,19 @@ module Scan
302
307
  deprecated: "Use `--output_files` instead",
303
308
  conflicting_options: [:output_files],
304
309
  optional: true,
305
- is_string: true)
310
+ is_string: true),
311
+ FastlaneCore::ConfigItem.new(key: :app_identifier,
312
+ env_name: 'SCAN_APP_IDENTIFIER',
313
+ optional: true,
314
+ description: "The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)",
315
+ code_gen_sensitive: true,
316
+ default_value: CredentialsManager::AppfileConfig.try_fetch_value(:app_identifier),
317
+ default_value_dynamic: true),
318
+ FastlaneCore::ConfigItem.new(key: :reinstall_app,
319
+ env_name: 'SCAN_REINSTALL_APP',
320
+ description: "Enabling this option will automatically uninstall the application before running it",
321
+ default_value: false,
322
+ is_string: false)
306
323
  ]
307
324
  end
308
325
  end
@@ -39,11 +39,22 @@ module Scan
39
39
  }
40
40
  ]
41
41
  exit_status = 0
42
+
43
+ if Scan.config[:reinstall_app]
44
+ app_identifier = Scan.config[:app_identifier]
45
+ app_identifier ||= UI.input("App Identifier: ")
46
+
47
+ Scan.devices.each do |device|
48
+ FastlaneCore::Simulator.uninstall_app(app_identifier, device.name, device.udid)
49
+ end
50
+ end
51
+
42
52
  FastlaneCore::CommandExecutor.execute(command: command,
43
53
  print_all: true,
44
54
  print_command: true,
45
55
  prefix: prefix_hash,
46
56
  loading: "Loading...",
57
+ suppress_output: Scan.config[:suppress_xcode_output],
47
58
  error: proc do |error_output|
48
59
  begin
49
60
  exit_status = $?.exitstatus
@@ -80,6 +91,8 @@ module Scan
80
91
  copy_simulator_logs
81
92
 
82
93
  if result[:failures] > 0
94
+ open_report
95
+
83
96
  UI.test_failure!("Tests have failed")
84
97
  end
85
98
 
@@ -88,7 +101,10 @@ module Scan
88
101
  end
89
102
 
90
103
  zip_build_products
104
+ open_report
105
+ end
91
106
 
107
+ def open_report
92
108
  if !Helper.ci? && Scan.cache[:open_html_report_path]
93
109
  `open --hide '#{Scan.cache[:open_html_report_path]}'`
94
110
  end
@@ -95,15 +95,10 @@ module Snapshot
95
95
  end
96
96
 
97
97
  def uninstall_app(device_type)
98
- UI.verbose("Uninstalling app '#{launcher_config.app_identifier}' from #{device_type}...")
99
98
  launcher_config.app_identifier ||= UI.input("App Identifier: ")
100
99
  device_udid = TestCommandGenerator.device_udid(device_type)
101
100
 
102
- UI.message("Launch Simulator #{device_type}")
103
- Helper.backticks("xcrun instruments -w #{device_udid} &> /dev/null")
104
-
105
- UI.message("Uninstall application #{launcher_config.app_identifier}")
106
- Helper.backticks("xcrun simctl uninstall #{device_udid} #{launcher_config.app_identifier} &> /dev/null")
101
+ FastlaneCore::Simulator.uninstall_app(launcher_config.app_identifier, device_type, device_udid)
107
102
  end
108
103
 
109
104
  def erase_simulator(device_type)
metadata CHANGED
@@ -1,33 +1,33 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.106.2
4
+ version: 2.107.0
5
5
  platform: ruby
6
6
  authors:
7
- - Luka Mirosevic
8
- - Iulian Onofrei
9
7
  - Fumiya Nakamura
10
- - Jimmy Dee
11
- - Maksym Grebenets
12
- - Danielle Tomlinson
8
+ - Josh Holtz
13
9
  - Jorge Revuelta H
14
10
  - Matthew Ellis
15
- - Aaron Brager
16
- - Helmut Januschka
17
11
  - Jérôme Lacoste
18
- - Jan Piotrowski
19
- - Josh Holtz
12
+ - Jimmy Dee
20
13
  - Kohki Miki
21
- - Joshua Liebowitz
14
+ - Aaron Brager
15
+ - Maksym Grebenets
16
+ - Danielle Tomlinson
22
17
  - Felix Krause
23
- - Olivier Halligon
24
- - Stefan Natchev
25
18
  - Manu Wallner
19
+ - Olivier Halligon
20
+ - Iulian Onofrei
21
+ - Joshua Liebowitz
22
+ - Jan Piotrowski
23
+ - Helmut Januschka
26
24
  - Andrew McBurney
25
+ - Luka Mirosevic
26
+ - Stefan Natchev
27
27
  autorequire:
28
28
  bindir: bin
29
29
  cert_chain: []
30
- date: 2018-10-15 00:00:00.000000000 Z
30
+ date: 2018-10-16 00:00:00.000000000 Z
31
31
  dependencies:
32
32
  - !ruby/object:Gem::Dependency
33
33
  name: slack-notifier