fastlane 2.109.1 → 2.110.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +66 -66
- data/deliver/lib/deliver/.options.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/download.rb +1 -0
- data/fastlane/lib/fastlane/actions/install_on_device.rb +2 -2
- data/fastlane/lib/fastlane/actions/resign.rb +5 -17
- data/fastlane/lib/fastlane/helper/adb_helper.rb +1 -1
- data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +3 -3
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/Fastlane.swift +73 -65
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +5 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +29 -29
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +18 -16
- data/frameit/lib/frameit/options.rb +1 -1
- data/match/lib/match.rb +1 -0
- data/match/lib/match/change_password.rb +7 -0
- data/match/lib/match/commands_generator.rb +15 -2
- data/match/lib/match/encryption.rb +3 -0
- data/match/lib/match/encryption/openssl.rb +2 -2
- data/match/lib/match/migrate.rb +97 -0
- data/match/lib/match/module.rb +1 -1
- data/match/lib/match/nuke.rb +22 -6
- data/match/lib/match/options.rb +19 -1
- data/match/lib/match/runner.rb +58 -15
- data/match/lib/match/spaceship_ensure.rb +6 -1
- data/match/lib/match/storage.rb +4 -0
- data/match/lib/match/storage/git_storage.rb +1 -10
- data/match/lib/match/storage/google_cloud_storage.rb +227 -0
- data/match/lib/match/storage/interface.rb +9 -3
- data/scan/lib/scan/options.rb +105 -86
- data/spaceship/README.md +20 -42
- metadata +38 -17
- data/fastlane_core/lib/fastlane_core/configuration/.config_item.rb.swp +0 -0
- data/pilot/lib/pilot/.options.rb.swp +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ecf5c535346cd0fad0d5e2de96f0939a22ffd18c
|
4
|
+
data.tar.gz: 056a8d34a3e55426e4d22879979ff0e54ef08168
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af2c55548c9a922734aeac5539ebadada203854344c909fb34cd5fbd016051fdaeffdc1085d230f5725f5b187c2d38a2cb317ae3355e706b86ae9ccb6467e1ec
|
7
|
+
data.tar.gz: 2be46350521f8e099965d29cafcbf71c5c32c412ab62ebde332971e41d1be7670404154382c11dcabe2dcb14764e3e974c2b2d2061a3946101eb0adb0d2f120a
|
data/README.md
CHANGED
@@ -33,11 +33,11 @@ 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='
|
37
|
-
<a href='https://github.com/
|
38
|
-
<img src='https://github.com/
|
36
|
+
<td id='joshua-liebowitz'>
|
37
|
+
<a href='https://github.com/taquitos'>
|
38
|
+
<img src='https://github.com/taquitos.png?size=140'>
|
39
39
|
</a>
|
40
|
-
<h4 align='center'><a href='https://twitter.com/
|
40
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
41
41
|
</td>
|
42
42
|
<td id='jimmy-dee'>
|
43
43
|
<a href='https://github.com/jdee'>
|
@@ -45,11 +45,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
45
45
|
</a>
|
46
46
|
<h4 align='center'>Jimmy Dee</h4>
|
47
47
|
</td>
|
48
|
-
<td id='
|
49
|
-
<a href='https://github.com/
|
50
|
-
<img src='https://github.com/
|
48
|
+
<td id='luka-mirosevic'>
|
49
|
+
<a href='https://github.com/lmirosevic'>
|
50
|
+
<img src='https://github.com/lmirosevic.png?size=140'>
|
51
51
|
</a>
|
52
|
-
<h4 align='center'><a href='https://twitter.com/
|
52
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
53
53
|
</td>
|
54
54
|
<td id='helmut-januschka'>
|
55
55
|
<a href='https://github.com/hjanuschka'>
|
@@ -57,37 +57,37 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
57
57
|
</a>
|
58
58
|
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
59
59
|
</td>
|
60
|
-
<td id='
|
61
|
-
<a href='https://github.com/
|
62
|
-
<img src='https://github.com/
|
60
|
+
<td id='stefan-natchev'>
|
61
|
+
<a href='https://github.com/snatchev'>
|
62
|
+
<img src='https://github.com/snatchev.png?size=140'>
|
63
63
|
</a>
|
64
|
-
<h4 align='center'><a href='https://twitter.com/
|
64
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
65
65
|
</td>
|
66
66
|
</tr>
|
67
67
|
<tr>
|
68
|
-
<td id='
|
69
|
-
<a href='https://github.com/
|
70
|
-
<img src='https://github.com/
|
68
|
+
<td id='jérôme-lacoste'>
|
69
|
+
<a href='https://github.com/lacostej'>
|
70
|
+
<img src='https://github.com/lacostej.png?size=140'>
|
71
71
|
</a>
|
72
|
-
<h4 align='center'><a href='https://twitter.com/
|
72
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
73
73
|
</td>
|
74
|
-
<td id='
|
75
|
-
<a href='https://github.com/
|
76
|
-
<img src='https://github.com/
|
74
|
+
<td id='felix-krause'>
|
75
|
+
<a href='https://github.com/KrauseFx'>
|
76
|
+
<img src='https://github.com/KrauseFx.png?size=140'>
|
77
77
|
</a>
|
78
|
-
<h4 align='center'><a href='https://twitter.com/
|
78
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
79
79
|
</td>
|
80
|
-
<td id='
|
81
|
-
<a href='https://github.com/
|
82
|
-
<img src='https://github.com/
|
80
|
+
<td id='maksym-grebenets'>
|
81
|
+
<a href='https://github.com/mgrebenets'>
|
82
|
+
<img src='https://github.com/mgrebenets.png?size=140'>
|
83
83
|
</a>
|
84
|
-
<h4 align='center'><a href='https://twitter.com/
|
84
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
85
85
|
</td>
|
86
|
-
<td id='
|
87
|
-
<a href='https://github.com/
|
88
|
-
<img src='https://github.com/
|
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/
|
90
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
91
91
|
</td>
|
92
92
|
<td id='andrew-mcburney'>
|
93
93
|
<a href='https://github.com/armcburney'>
|
@@ -97,23 +97,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
97
97
|
</td>
|
98
98
|
</tr>
|
99
99
|
<tr>
|
100
|
-
<td id='
|
101
|
-
<a href='https://github.com/
|
102
|
-
<img src='https://github.com/
|
103
|
-
</a>
|
104
|
-
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
105
|
-
</td>
|
106
|
-
<td id='jan-piotrowski'>
|
107
|
-
<a href='https://github.com/janpio'>
|
108
|
-
<img src='https://github.com/janpio.png?size=140'>
|
100
|
+
<td id='iulian-onofrei'>
|
101
|
+
<a href='https://github.com/revolter'>
|
102
|
+
<img src='https://github.com/revolter.png?size=140'>
|
109
103
|
</a>
|
110
|
-
<h4 align='center'><a href='https://twitter.com/
|
104
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
111
105
|
</td>
|
112
|
-
<td id='
|
113
|
-
<a href='https://github.com/
|
114
|
-
<img src='https://github.com/
|
106
|
+
<td id='manu-wallner'>
|
107
|
+
<a href='https://github.com/milch'>
|
108
|
+
<img src='https://github.com/milch.png?size=140'>
|
115
109
|
</a>
|
116
|
-
<h4 align='center'><a href='https://twitter.com/
|
110
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
117
111
|
</td>
|
118
112
|
<td id='kohki-miki'>
|
119
113
|
<a href='https://github.com/giginet'>
|
@@ -121,43 +115,49 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
121
115
|
</a>
|
122
116
|
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
123
117
|
</td>
|
124
|
-
<td id='
|
125
|
-
<a href='https://github.com/
|
126
|
-
<img src='https://github.com/
|
127
|
-
</a>
|
128
|
-
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
129
|
-
</td>
|
130
|
-
</tr>
|
131
|
-
<tr>
|
132
|
-
<td id='maksym-grebenets'>
|
133
|
-
<a href='https://github.com/mgrebenets'>
|
134
|
-
<img src='https://github.com/mgrebenets.png?size=140'>
|
118
|
+
<td id='josh-holtz'>
|
119
|
+
<a href='https://github.com/joshdholtz'>
|
120
|
+
<img src='https://github.com/joshdholtz.png?size=140'>
|
135
121
|
</a>
|
136
|
-
<h4 align='center'><a href='https://twitter.com/
|
122
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
137
123
|
</td>
|
138
|
-
<td id='
|
139
|
-
<a href='https://github.com/
|
140
|
-
<img src='https://github.com/
|
124
|
+
<td id='jan-piotrowski'>
|
125
|
+
<a href='https://github.com/janpio'>
|
126
|
+
<img src='https://github.com/janpio.png?size=140'>
|
141
127
|
</a>
|
142
|
-
<h4 align='center'><a href='https://twitter.com/
|
128
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
143
129
|
</td>
|
130
|
+
</tr>
|
131
|
+
<tr>
|
144
132
|
<td id='olivier-halligon'>
|
145
133
|
<a href='https://github.com/AliSoftware'>
|
146
134
|
<img src='https://github.com/AliSoftware.png?size=140'>
|
147
135
|
</a>
|
148
136
|
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
149
137
|
</td>
|
150
|
-
<td id='
|
151
|
-
<a href='https://github.com/
|
152
|
-
<img src='https://github.com/
|
138
|
+
<td id='danielle-tomlinson'>
|
139
|
+
<a href='https://github.com/DanToml'>
|
140
|
+
<img src='https://github.com/DanToml.png?size=140'>
|
153
141
|
</a>
|
154
|
-
<h4 align='center'><a href='https://twitter.com/
|
142
|
+
<h4 align='center'><a href='https://twitter.com/DanToml'>Danielle Tomlinson</a></h4>
|
155
143
|
</td>
|
156
|
-
<td id='
|
157
|
-
<a href='https://github.com/
|
158
|
-
<img src='https://github.com/
|
144
|
+
<td id='jorge-revuelta-h'>
|
145
|
+
<a href='https://github.com/minuscorp'>
|
146
|
+
<img src='https://github.com/minuscorp.png?size=140'>
|
159
147
|
</a>
|
160
|
-
<h4 align='center'><a href='https://twitter.com/
|
148
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
149
|
+
</td>
|
150
|
+
<td id='aaron-brager'>
|
151
|
+
<a href='https://github.com/getaaron'>
|
152
|
+
<img src='https://github.com/getaaron.png?size=140'>
|
153
|
+
</a>
|
154
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
155
|
+
</td>
|
156
|
+
<td id='fumiya-nakamura'>
|
157
|
+
<a href='https://github.com/nafu'>
|
158
|
+
<img src='https://github.com/nafu.png?size=140'>
|
159
|
+
</a>
|
160
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
161
161
|
</td>
|
162
162
|
</tr>
|
163
163
|
</table>
|
Binary file
|
@@ -32,6 +32,7 @@ module Fastlane
|
|
32
32
|
def self.details
|
33
33
|
[
|
34
34
|
"Specify the URL to download and get the content as a return value.",
|
35
|
+
"Automatically parses JSON into a Ruby data structure.",
|
35
36
|
"For more advanced networking code, use the Ruby functions instead: [http://docs.ruby-lang.org/en/2.0.0/Net/HTTP.html](http://docs.ruby-lang.org/en/2.0.0/Net/HTTP.html)."
|
36
37
|
].join("\n")
|
37
38
|
end
|
@@ -5,7 +5,7 @@ module Fastlane
|
|
5
5
|
class InstallOnDeviceAction < Action
|
6
6
|
def self.run(params)
|
7
7
|
unless Helper.test?
|
8
|
-
UI.user_error!("ios-deploy not installed, see https://github.com/
|
8
|
+
UI.user_error!("ios-deploy not installed, see https://github.com/ios-control/ios-deploy for instructions") if `which ios-deploy`.length == 0
|
9
9
|
end
|
10
10
|
taxi_cmd = [
|
11
11
|
"ios-deploy",
|
@@ -71,7 +71,7 @@ module Fastlane
|
|
71
71
|
end
|
72
72
|
|
73
73
|
def self.details
|
74
|
-
"Installs the ipa on the device. If no id is given, the first found iOS device will be used. Works via USB or Wi-Fi. This requires `ios-deploy` to be installed. Please have a look at [ios-deploy](https://github.com/
|
74
|
+
"Installs the ipa on the device. If no id is given, the first found iOS device will be used. Works via USB or Wi-Fi. This requires `ios-deploy` to be installed. Please have a look at [ios-deploy](https://github.com/ios-control/ios-deploy). To quickly install it, use `npm -g i ios-deploy`"
|
75
75
|
end
|
76
76
|
|
77
77
|
def self.is_supported?(platform)
|
@@ -17,22 +17,6 @@ module Fastlane
|
|
17
17
|
"Codesign an existing ipa file"
|
18
18
|
end
|
19
19
|
|
20
|
-
def self.details
|
21
|
-
sample = <<-SAMPLE.markdown_sample
|
22
|
-
```ruby
|
23
|
-
resign(ipa: "path", signing_identity: "identity", provisioning_profile: {
|
24
|
-
"com.example.awesome-app" => "App.mobileprovision",
|
25
|
-
"com.example.awesome-app.app-extension" => "Extension.mobileprovision"
|
26
|
-
})
|
27
|
-
```
|
28
|
-
SAMPLE
|
29
|
-
|
30
|
-
[
|
31
|
-
"You may provide multiple provisioning profiles if the application contains nested applications or app extensions, which need their own provisioning profile. You can do so by passing an array of provisiong profile strings or a hash that associates provisioning profile values to bundle identifier keys.".markdown_preserve_newlines,
|
32
|
-
sample
|
33
|
-
].join("\n")
|
34
|
-
end
|
35
|
-
|
36
20
|
def self.example_code
|
37
21
|
[
|
38
22
|
'resign(
|
@@ -40,7 +24,11 @@ module Fastlane
|
|
40
24
|
signing_identity: "iPhone Distribution: Luka Mirosevic (0123456789)",
|
41
25
|
provisioning_profile: "path/to/profile", # can omit if using the _sigh_ action
|
42
26
|
)',
|
43
|
-
'
|
27
|
+
'# You may provide multiple provisioning profiles if the application contains nested
|
28
|
+
# applications or app extensions, which need their own provisioning profile.
|
29
|
+
# You can do so by passing an array of provisiong profile strings or a hash
|
30
|
+
# that associates provisioning profile values to bundle identifier keys.
|
31
|
+
resign(
|
44
32
|
ipa: "path/to/ipa", # can omit if using the `ipa` action
|
45
33
|
signing_identity: "iPhone Distribution: Luka Mirosevic (0123456789)",
|
46
34
|
provisioning_profile: {
|
@@ -26,7 +26,7 @@ module Fastlane
|
|
26
26
|
# Run a certain action
|
27
27
|
def trigger(command: nil, serial: nil)
|
28
28
|
android_serial = serial != "" ? "ANDROID_SERIAL=#{serial}" : nil
|
29
|
-
command = [android_serial, adb_path.shellescape, command
|
29
|
+
command = [android_serial, adb_path.shellescape, command].join(" ").strip!
|
30
30
|
Action.sh(command)
|
31
31
|
end
|
32
32
|
|
@@ -191,12 +191,12 @@ func parseDictionaryHelper(fromString: String, function: String = #function) ->
|
|
191
191
|
|
192
192
|
func parseBool(fromString: String, function: String = #function) -> Bool {
|
193
193
|
verbose(message: "parsing a Bool from data: \(fromString), from function: \(function)")
|
194
|
-
return NSString(string: fromString).boolValue
|
194
|
+
return NSString(string: fromString.trimmingCharacters(in: .punctuationCharacters)).boolValue
|
195
195
|
}
|
196
196
|
|
197
197
|
func parseInt(fromString: String, function: String = #function) -> Int {
|
198
|
-
verbose(message: "parsing
|
199
|
-
return NSString(string: fromString).integerValue
|
198
|
+
verbose(message: "parsing an Int from data: \(fromString), from function: \(function)")
|
199
|
+
return NSString(string: fromString.trimmingCharacters(in: .punctuationCharacters)).integerValue
|
200
200
|
}
|
201
201
|
'
|
202
202
|
return parsing_functions
|
@@ -2140,7 +2140,9 @@ func match(gitUrl: String = matchfile.gitUrl,
|
|
2140
2140
|
forceForNewDevices: Bool = matchfile.forceForNewDevices,
|
2141
2141
|
skipDocs: Bool = matchfile.skipDocs,
|
2142
2142
|
platform: String = matchfile.platform,
|
2143
|
-
templateName: String? = matchfile.templateName
|
2143
|
+
templateName: String? = matchfile.templateName,
|
2144
|
+
googleCloudBucketName: String? = matchfile.googleCloudBucketName,
|
2145
|
+
googleCloudKeysFile: String? = matchfile.googleCloudKeysFile) {
|
2144
2146
|
let command = RubyCommand(commandID: "", methodName: "match", className: nil, args: [RubyCommand.Argument(name: "git_url", value: gitUrl),
|
2145
2147
|
RubyCommand.Argument(name: "git_branch", value: gitBranch),
|
2146
2148
|
RubyCommand.Argument(name: "type", value: type),
|
@@ -2162,7 +2164,9 @@ func match(gitUrl: String = matchfile.gitUrl,
|
|
2162
2164
|
RubyCommand.Argument(name: "force_for_new_devices", value: forceForNewDevices),
|
2163
2165
|
RubyCommand.Argument(name: "skip_docs", value: skipDocs),
|
2164
2166
|
RubyCommand.Argument(name: "platform", value: platform),
|
2165
|
-
RubyCommand.Argument(name: "template_name", value: templateName)
|
2167
|
+
RubyCommand.Argument(name: "template_name", value: templateName),
|
2168
|
+
RubyCommand.Argument(name: "google_cloud_bucket_name", value: googleCloudBucketName),
|
2169
|
+
RubyCommand.Argument(name: "google_cloud_keys_file", value: googleCloudKeysFile)])
|
2166
2170
|
_ = runner.executeCommand(command)
|
2167
2171
|
}
|
2168
2172
|
func minFastlaneVersion() {
|
@@ -2651,16 +2655,21 @@ func rubyVersion() {
|
|
2651
2655
|
}
|
2652
2656
|
func runTests(workspace: String? = nil,
|
2653
2657
|
project: String? = nil,
|
2658
|
+
scheme: String? = nil,
|
2654
2659
|
device: String? = nil,
|
2655
|
-
toolchain: String? = nil,
|
2656
2660
|
devices: [String]? = nil,
|
2657
2661
|
skipDetectDevices: Bool = false,
|
2658
|
-
|
2662
|
+
reinstallApp: Bool = false,
|
2663
|
+
appIdentifier: String? = nil,
|
2664
|
+
onlyTesting: String? = nil,
|
2665
|
+
skipTesting: String? = nil,
|
2666
|
+
xctestrun: String? = nil,
|
2667
|
+
toolchain: String? = nil,
|
2659
2668
|
clean: Bool = false,
|
2660
2669
|
codeCoverage: Bool? = nil,
|
2661
2670
|
addressSanitizer: Bool? = nil,
|
2662
2671
|
threadSanitizer: Bool? = nil,
|
2663
|
-
|
2672
|
+
openReport: Bool = false,
|
2664
2673
|
outputDirectory: String = "./test_output",
|
2665
2674
|
outputStyle: String? = nil,
|
2666
2675
|
outputTypes: String = "html,junit",
|
@@ -2670,44 +2679,44 @@ func runTests(workspace: String? = nil,
|
|
2670
2679
|
suppressXcodeOutput: String? = nil,
|
2671
2680
|
formatter: String? = nil,
|
2672
2681
|
xcprettyArgs: String? = nil,
|
2682
|
+
derivedDataPath: String? = nil,
|
2683
|
+
shouldZipBuildProducts: Bool = false,
|
2684
|
+
resultBundle: Bool = false,
|
2685
|
+
useClangReportName: Bool = false,
|
2673
2686
|
maxConcurrentSimulators: Int? = nil,
|
2674
2687
|
disableConcurrentTesting: Bool = false,
|
2688
|
+
skipBuild: Bool = false,
|
2675
2689
|
testWithoutBuilding: Bool? = nil,
|
2676
2690
|
buildForTesting: Bool? = nil,
|
2677
|
-
xctestrun: String? = nil,
|
2678
|
-
derivedDataPath: String? = nil,
|
2679
|
-
shouldZipBuildProducts: Bool = false,
|
2680
|
-
resultBundle: Bool = false,
|
2681
2691
|
sdk: String? = nil,
|
2682
|
-
openReport: Bool = false,
|
2683
2692
|
configuration: String? = nil,
|
2684
|
-
destination: String? = nil,
|
2685
2693
|
xcargs: String? = nil,
|
2686
2694
|
xcconfig: String? = nil,
|
2687
|
-
onlyTesting: String? = nil,
|
2688
|
-
skipTesting: String? = nil,
|
2689
2695
|
slackUrl: String? = nil,
|
2690
2696
|
slackChannel: String? = nil,
|
2691
2697
|
slackMessage: String? = nil,
|
2692
2698
|
skipSlack: Bool = false,
|
2693
2699
|
slackOnlyOnFailure: Bool = false,
|
2694
|
-
|
2700
|
+
destination: String? = nil,
|
2695
2701
|
customReportFileName: String? = nil,
|
2696
|
-
appIdentifier: String? = nil,
|
2697
|
-
reinstallApp: Bool = false,
|
2698
2702
|
failBuild: Bool = true) {
|
2699
2703
|
let command = RubyCommand(commandID: "", methodName: "run_tests", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
2700
2704
|
RubyCommand.Argument(name: "project", value: project),
|
2705
|
+
RubyCommand.Argument(name: "scheme", value: scheme),
|
2701
2706
|
RubyCommand.Argument(name: "device", value: device),
|
2702
|
-
RubyCommand.Argument(name: "toolchain", value: toolchain),
|
2703
2707
|
RubyCommand.Argument(name: "devices", value: devices),
|
2704
2708
|
RubyCommand.Argument(name: "skip_detect_devices", value: skipDetectDevices),
|
2705
|
-
RubyCommand.Argument(name: "
|
2709
|
+
RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
|
2710
|
+
RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
|
2711
|
+
RubyCommand.Argument(name: "only_testing", value: onlyTesting),
|
2712
|
+
RubyCommand.Argument(name: "skip_testing", value: skipTesting),
|
2713
|
+
RubyCommand.Argument(name: "xctestrun", value: xctestrun),
|
2714
|
+
RubyCommand.Argument(name: "toolchain", value: toolchain),
|
2706
2715
|
RubyCommand.Argument(name: "clean", value: clean),
|
2707
2716
|
RubyCommand.Argument(name: "code_coverage", value: codeCoverage),
|
2708
2717
|
RubyCommand.Argument(name: "address_sanitizer", value: addressSanitizer),
|
2709
2718
|
RubyCommand.Argument(name: "thread_sanitizer", value: threadSanitizer),
|
2710
|
-
RubyCommand.Argument(name: "
|
2719
|
+
RubyCommand.Argument(name: "open_report", value: openReport),
|
2711
2720
|
RubyCommand.Argument(name: "output_directory", value: outputDirectory),
|
2712
2721
|
RubyCommand.Argument(name: "output_style", value: outputStyle),
|
2713
2722
|
RubyCommand.Argument(name: "output_types", value: outputTypes),
|
@@ -2717,31 +2726,26 @@ func runTests(workspace: String? = nil,
|
|
2717
2726
|
RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput),
|
2718
2727
|
RubyCommand.Argument(name: "formatter", value: formatter),
|
2719
2728
|
RubyCommand.Argument(name: "xcpretty_args", value: xcprettyArgs),
|
2729
|
+
RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
|
2730
|
+
RubyCommand.Argument(name: "should_zip_build_products", value: shouldZipBuildProducts),
|
2731
|
+
RubyCommand.Argument(name: "result_bundle", value: resultBundle),
|
2732
|
+
RubyCommand.Argument(name: "use_clang_report_name", value: useClangReportName),
|
2720
2733
|
RubyCommand.Argument(name: "max_concurrent_simulators", value: maxConcurrentSimulators),
|
2721
2734
|
RubyCommand.Argument(name: "disable_concurrent_testing", value: disableConcurrentTesting),
|
2735
|
+
RubyCommand.Argument(name: "skip_build", value: skipBuild),
|
2722
2736
|
RubyCommand.Argument(name: "test_without_building", value: testWithoutBuilding),
|
2723
2737
|
RubyCommand.Argument(name: "build_for_testing", value: buildForTesting),
|
2724
|
-
RubyCommand.Argument(name: "xctestrun", value: xctestrun),
|
2725
|
-
RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
|
2726
|
-
RubyCommand.Argument(name: "should_zip_build_products", value: shouldZipBuildProducts),
|
2727
|
-
RubyCommand.Argument(name: "result_bundle", value: resultBundle),
|
2728
2738
|
RubyCommand.Argument(name: "sdk", value: sdk),
|
2729
|
-
RubyCommand.Argument(name: "open_report", value: openReport),
|
2730
2739
|
RubyCommand.Argument(name: "configuration", value: configuration),
|
2731
|
-
RubyCommand.Argument(name: "destination", value: destination),
|
2732
2740
|
RubyCommand.Argument(name: "xcargs", value: xcargs),
|
2733
2741
|
RubyCommand.Argument(name: "xcconfig", value: xcconfig),
|
2734
|
-
RubyCommand.Argument(name: "only_testing", value: onlyTesting),
|
2735
|
-
RubyCommand.Argument(name: "skip_testing", value: skipTesting),
|
2736
2742
|
RubyCommand.Argument(name: "slack_url", value: slackUrl),
|
2737
2743
|
RubyCommand.Argument(name: "slack_channel", value: slackChannel),
|
2738
2744
|
RubyCommand.Argument(name: "slack_message", value: slackMessage),
|
2739
2745
|
RubyCommand.Argument(name: "skip_slack", value: skipSlack),
|
2740
2746
|
RubyCommand.Argument(name: "slack_only_on_failure", value: slackOnlyOnFailure),
|
2741
|
-
RubyCommand.Argument(name: "
|
2747
|
+
RubyCommand.Argument(name: "destination", value: destination),
|
2742
2748
|
RubyCommand.Argument(name: "custom_report_file_name", value: customReportFileName),
|
2743
|
-
RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
|
2744
|
-
RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
|
2745
2749
|
RubyCommand.Argument(name: "fail_build", value: failBuild)])
|
2746
2750
|
_ = runner.executeCommand(command)
|
2747
2751
|
}
|
@@ -2787,16 +2791,21 @@ func say(text: String,
|
|
2787
2791
|
}
|
2788
2792
|
func scan(workspace: String? = scanfile.workspace,
|
2789
2793
|
project: String? = scanfile.project,
|
2794
|
+
scheme: String? = scanfile.scheme,
|
2790
2795
|
device: String? = scanfile.device,
|
2791
|
-
toolchain: String? = scanfile.toolchain,
|
2792
2796
|
devices: [String]? = scanfile.devices,
|
2793
2797
|
skipDetectDevices: Bool = scanfile.skipDetectDevices,
|
2794
|
-
|
2798
|
+
reinstallApp: Bool = scanfile.reinstallApp,
|
2799
|
+
appIdentifier: String? = scanfile.appIdentifier,
|
2800
|
+
onlyTesting: String? = scanfile.onlyTesting,
|
2801
|
+
skipTesting: String? = scanfile.skipTesting,
|
2802
|
+
xctestrun: String? = scanfile.xctestrun,
|
2803
|
+
toolchain: String? = scanfile.toolchain,
|
2795
2804
|
clean: Bool = scanfile.clean,
|
2796
2805
|
codeCoverage: Bool? = scanfile.codeCoverage,
|
2797
2806
|
addressSanitizer: Bool? = scanfile.addressSanitizer,
|
2798
2807
|
threadSanitizer: Bool? = scanfile.threadSanitizer,
|
2799
|
-
|
2808
|
+
openReport: Bool = scanfile.openReport,
|
2800
2809
|
outputDirectory: String = scanfile.outputDirectory,
|
2801
2810
|
outputStyle: String? = scanfile.outputStyle,
|
2802
2811
|
outputTypes: String = scanfile.outputTypes,
|
@@ -2806,44 +2815,44 @@ func scan(workspace: String? = scanfile.workspace,
|
|
2806
2815
|
suppressXcodeOutput: String? = scanfile.suppressXcodeOutput,
|
2807
2816
|
formatter: String? = scanfile.formatter,
|
2808
2817
|
xcprettyArgs: String? = scanfile.xcprettyArgs,
|
2818
|
+
derivedDataPath: String? = scanfile.derivedDataPath,
|
2819
|
+
shouldZipBuildProducts: Bool = scanfile.shouldZipBuildProducts,
|
2820
|
+
resultBundle: Bool = scanfile.resultBundle,
|
2821
|
+
useClangReportName: Bool = scanfile.useClangReportName,
|
2809
2822
|
maxConcurrentSimulators: Int? = scanfile.maxConcurrentSimulators,
|
2810
2823
|
disableConcurrentTesting: Bool = scanfile.disableConcurrentTesting,
|
2824
|
+
skipBuild: Bool = scanfile.skipBuild,
|
2811
2825
|
testWithoutBuilding: Bool? = scanfile.testWithoutBuilding,
|
2812
2826
|
buildForTesting: Bool? = scanfile.buildForTesting,
|
2813
|
-
xctestrun: String? = scanfile.xctestrun,
|
2814
|
-
derivedDataPath: String? = scanfile.derivedDataPath,
|
2815
|
-
shouldZipBuildProducts: Bool = scanfile.shouldZipBuildProducts,
|
2816
|
-
resultBundle: Bool = scanfile.resultBundle,
|
2817
2827
|
sdk: String? = scanfile.sdk,
|
2818
|
-
openReport: Bool = scanfile.openReport,
|
2819
2828
|
configuration: String? = scanfile.configuration,
|
2820
|
-
destination: String? = scanfile.destination,
|
2821
2829
|
xcargs: String? = scanfile.xcargs,
|
2822
2830
|
xcconfig: String? = scanfile.xcconfig,
|
2823
|
-
onlyTesting: String? = scanfile.onlyTesting,
|
2824
|
-
skipTesting: String? = scanfile.skipTesting,
|
2825
2831
|
slackUrl: String? = scanfile.slackUrl,
|
2826
2832
|
slackChannel: String? = scanfile.slackChannel,
|
2827
2833
|
slackMessage: String? = scanfile.slackMessage,
|
2828
2834
|
skipSlack: Bool = scanfile.skipSlack,
|
2829
2835
|
slackOnlyOnFailure: Bool = scanfile.slackOnlyOnFailure,
|
2830
|
-
|
2836
|
+
destination: String? = scanfile.destination,
|
2831
2837
|
customReportFileName: String? = scanfile.customReportFileName,
|
2832
|
-
appIdentifier: String? = scanfile.appIdentifier,
|
2833
|
-
reinstallApp: Bool = scanfile.reinstallApp,
|
2834
2838
|
failBuild: Bool = scanfile.failBuild) {
|
2835
2839
|
let command = RubyCommand(commandID: "", methodName: "scan", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
2836
2840
|
RubyCommand.Argument(name: "project", value: project),
|
2841
|
+
RubyCommand.Argument(name: "scheme", value: scheme),
|
2837
2842
|
RubyCommand.Argument(name: "device", value: device),
|
2838
|
-
RubyCommand.Argument(name: "toolchain", value: toolchain),
|
2839
2843
|
RubyCommand.Argument(name: "devices", value: devices),
|
2840
2844
|
RubyCommand.Argument(name: "skip_detect_devices", value: skipDetectDevices),
|
2841
|
-
RubyCommand.Argument(name: "
|
2845
|
+
RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
|
2846
|
+
RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
|
2847
|
+
RubyCommand.Argument(name: "only_testing", value: onlyTesting),
|
2848
|
+
RubyCommand.Argument(name: "skip_testing", value: skipTesting),
|
2849
|
+
RubyCommand.Argument(name: "xctestrun", value: xctestrun),
|
2850
|
+
RubyCommand.Argument(name: "toolchain", value: toolchain),
|
2842
2851
|
RubyCommand.Argument(name: "clean", value: clean),
|
2843
2852
|
RubyCommand.Argument(name: "code_coverage", value: codeCoverage),
|
2844
2853
|
RubyCommand.Argument(name: "address_sanitizer", value: addressSanitizer),
|
2845
2854
|
RubyCommand.Argument(name: "thread_sanitizer", value: threadSanitizer),
|
2846
|
-
RubyCommand.Argument(name: "
|
2855
|
+
RubyCommand.Argument(name: "open_report", value: openReport),
|
2847
2856
|
RubyCommand.Argument(name: "output_directory", value: outputDirectory),
|
2848
2857
|
RubyCommand.Argument(name: "output_style", value: outputStyle),
|
2849
2858
|
RubyCommand.Argument(name: "output_types", value: outputTypes),
|
@@ -2853,31 +2862,26 @@ func scan(workspace: String? = scanfile.workspace,
|
|
2853
2862
|
RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput),
|
2854
2863
|
RubyCommand.Argument(name: "formatter", value: formatter),
|
2855
2864
|
RubyCommand.Argument(name: "xcpretty_args", value: xcprettyArgs),
|
2865
|
+
RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
|
2866
|
+
RubyCommand.Argument(name: "should_zip_build_products", value: shouldZipBuildProducts),
|
2867
|
+
RubyCommand.Argument(name: "result_bundle", value: resultBundle),
|
2868
|
+
RubyCommand.Argument(name: "use_clang_report_name", value: useClangReportName),
|
2856
2869
|
RubyCommand.Argument(name: "max_concurrent_simulators", value: maxConcurrentSimulators),
|
2857
2870
|
RubyCommand.Argument(name: "disable_concurrent_testing", value: disableConcurrentTesting),
|
2871
|
+
RubyCommand.Argument(name: "skip_build", value: skipBuild),
|
2858
2872
|
RubyCommand.Argument(name: "test_without_building", value: testWithoutBuilding),
|
2859
2873
|
RubyCommand.Argument(name: "build_for_testing", value: buildForTesting),
|
2860
|
-
RubyCommand.Argument(name: "xctestrun", value: xctestrun),
|
2861
|
-
RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
|
2862
|
-
RubyCommand.Argument(name: "should_zip_build_products", value: shouldZipBuildProducts),
|
2863
|
-
RubyCommand.Argument(name: "result_bundle", value: resultBundle),
|
2864
2874
|
RubyCommand.Argument(name: "sdk", value: sdk),
|
2865
|
-
RubyCommand.Argument(name: "open_report", value: openReport),
|
2866
2875
|
RubyCommand.Argument(name: "configuration", value: configuration),
|
2867
|
-
RubyCommand.Argument(name: "destination", value: destination),
|
2868
2876
|
RubyCommand.Argument(name: "xcargs", value: xcargs),
|
2869
2877
|
RubyCommand.Argument(name: "xcconfig", value: xcconfig),
|
2870
|
-
RubyCommand.Argument(name: "only_testing", value: onlyTesting),
|
2871
|
-
RubyCommand.Argument(name: "skip_testing", value: skipTesting),
|
2872
2878
|
RubyCommand.Argument(name: "slack_url", value: slackUrl),
|
2873
2879
|
RubyCommand.Argument(name: "slack_channel", value: slackChannel),
|
2874
2880
|
RubyCommand.Argument(name: "slack_message", value: slackMessage),
|
2875
2881
|
RubyCommand.Argument(name: "skip_slack", value: skipSlack),
|
2876
2882
|
RubyCommand.Argument(name: "slack_only_on_failure", value: slackOnlyOnFailure),
|
2877
|
-
RubyCommand.Argument(name: "
|
2883
|
+
RubyCommand.Argument(name: "destination", value: destination),
|
2878
2884
|
RubyCommand.Argument(name: "custom_report_file_name", value: customReportFileName),
|
2879
|
-
RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
|
2880
|
-
RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
|
2881
2885
|
RubyCommand.Argument(name: "fail_build", value: failBuild)])
|
2882
2886
|
_ = runner.executeCommand(command)
|
2883
2887
|
}
|
@@ -3426,7 +3430,9 @@ func syncCodeSigning(gitUrl: String,
|
|
3426
3430
|
forceForNewDevices: Bool = false,
|
3427
3431
|
skipDocs: Bool = false,
|
3428
3432
|
platform: String = "ios",
|
3429
|
-
templateName: String? = nil
|
3433
|
+
templateName: String? = nil,
|
3434
|
+
googleCloudBucketName: String? = nil,
|
3435
|
+
googleCloudKeysFile: String? = nil) {
|
3430
3436
|
let command = RubyCommand(commandID: "", methodName: "sync_code_signing", className: nil, args: [RubyCommand.Argument(name: "git_url", value: gitUrl),
|
3431
3437
|
RubyCommand.Argument(name: "git_branch", value: gitBranch),
|
3432
3438
|
RubyCommand.Argument(name: "type", value: type),
|
@@ -3448,7 +3454,9 @@ func syncCodeSigning(gitUrl: String,
|
|
3448
3454
|
RubyCommand.Argument(name: "force_for_new_devices", value: forceForNewDevices),
|
3449
3455
|
RubyCommand.Argument(name: "skip_docs", value: skipDocs),
|
3450
3456
|
RubyCommand.Argument(name: "platform", value: platform),
|
3451
|
-
RubyCommand.Argument(name: "template_name", value: templateName)
|
3457
|
+
RubyCommand.Argument(name: "template_name", value: templateName),
|
3458
|
+
RubyCommand.Argument(name: "google_cloud_bucket_name", value: googleCloudBucketName),
|
3459
|
+
RubyCommand.Argument(name: "google_cloud_keys_file", value: googleCloudKeysFile)])
|
3452
3460
|
_ = runner.executeCommand(command)
|
3453
3461
|
}
|
3454
3462
|
func teamId() {
|
@@ -4053,7 +4061,7 @@ func xcov(workspace: String? = nil,
|
|
4053
4061
|
coverallsServiceJobId: String? = nil,
|
4054
4062
|
coverallsRepoToken: String? = nil,
|
4055
4063
|
xcconfig: String? = nil,
|
4056
|
-
ideFoundationPath: String = "/Applications/Xcode.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
|
4064
|
+
ideFoundationPath: String = "/Applications/Xcode-10.1.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
|
4057
4065
|
legacySupport: Bool = false) {
|
4058
4066
|
let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
4059
4067
|
RubyCommand.Argument(name: "project", value: project),
|
@@ -4144,12 +4152,12 @@ func parseDictionaryHelper(fromString: String, function: String = #function) ->
|
|
4144
4152
|
|
4145
4153
|
func parseBool(fromString: String, function: String = #function) -> Bool {
|
4146
4154
|
verbose(message: "parsing a Bool from data: \(fromString), from function: \(function)")
|
4147
|
-
return NSString(string: fromString).boolValue
|
4155
|
+
return NSString(string: fromString.trimmingCharacters(in: .punctuationCharacters)).boolValue
|
4148
4156
|
}
|
4149
4157
|
|
4150
4158
|
func parseInt(fromString: String, function: String = #function) -> Int {
|
4151
|
-
verbose(message: "parsing
|
4152
|
-
return NSString(string: fromString).integerValue
|
4159
|
+
verbose(message: "parsing an Int from data: \(fromString), from function: \(function)")
|
4160
|
+
return NSString(string: fromString.trimmingCharacters(in: .punctuationCharacters)).integerValue
|
4153
4161
|
}
|
4154
4162
|
|
4155
4163
|
let deliverfile: Deliverfile = Deliverfile()
|
@@ -4161,4 +4169,4 @@ let screengrabfile: Screengrabfile = Screengrabfile()
|
|
4161
4169
|
let snapshotfile: Snapshotfile = Snapshotfile()
|
4162
4170
|
// Please don't remove the lines below
|
4163
4171
|
// They are used to detect outdated files
|
4164
|
-
// FastlaneRunnerAPIVersion [0.9.
|
4172
|
+
// FastlaneRunnerAPIVersion [0.9.35]
|