fastlane 2.106.2 → 2.107.0

Sign up to get free protection for your applications and to get access to all the features.
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