fastlane 2.109.1 → 2.110.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +66 -66
  3. data/deliver/lib/deliver/.options.rb.swp +0 -0
  4. data/fastlane/lib/fastlane/actions/download.rb +1 -0
  5. data/fastlane/lib/fastlane/actions/install_on_device.rb +2 -2
  6. data/fastlane/lib/fastlane/actions/resign.rb +5 -17
  7. data/fastlane/lib/fastlane/helper/adb_helper.rb +1 -1
  8. data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +3 -3
  9. data/fastlane/lib/fastlane/version.rb +1 -1
  10. data/fastlane/swift/Deliverfile.swift +1 -1
  11. data/fastlane/swift/Fastlane.swift +73 -65
  12. data/fastlane/swift/Gymfile.swift +1 -1
  13. data/fastlane/swift/Matchfile.swift +1 -1
  14. data/fastlane/swift/MatchfileProtocol.swift +5 -1
  15. data/fastlane/swift/Precheckfile.swift +1 -1
  16. data/fastlane/swift/Scanfile.swift +1 -1
  17. data/fastlane/swift/ScanfileProtocol.swift +29 -29
  18. data/fastlane/swift/Screengrabfile.swift +1 -1
  19. data/fastlane/swift/Snapshotfile.swift +1 -1
  20. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +18 -16
  21. data/frameit/lib/frameit/options.rb +1 -1
  22. data/match/lib/match.rb +1 -0
  23. data/match/lib/match/change_password.rb +7 -0
  24. data/match/lib/match/commands_generator.rb +15 -2
  25. data/match/lib/match/encryption.rb +3 -0
  26. data/match/lib/match/encryption/openssl.rb +2 -2
  27. data/match/lib/match/migrate.rb +97 -0
  28. data/match/lib/match/module.rb +1 -1
  29. data/match/lib/match/nuke.rb +22 -6
  30. data/match/lib/match/options.rb +19 -1
  31. data/match/lib/match/runner.rb +58 -15
  32. data/match/lib/match/spaceship_ensure.rb +6 -1
  33. data/match/lib/match/storage.rb +4 -0
  34. data/match/lib/match/storage/git_storage.rb +1 -10
  35. data/match/lib/match/storage/google_cloud_storage.rb +227 -0
  36. data/match/lib/match/storage/interface.rb +9 -3
  37. data/scan/lib/scan/options.rb +105 -86
  38. data/spaceship/README.md +20 -42
  39. metadata +38 -17
  40. data/fastlane_core/lib/fastlane_core/configuration/.config_item.rb.swp +0 -0
  41. data/pilot/lib/pilot/.options.rb.swp +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 361597a33e556ae8941c475bef34e880987f24cc
4
- data.tar.gz: 5d44e3f73a2573364eb634d0a15aded46579942a
3
+ metadata.gz: ecf5c535346cd0fad0d5e2de96f0939a22ffd18c
4
+ data.tar.gz: 056a8d34a3e55426e4d22879979ff0e54ef08168
5
5
  SHA512:
6
- metadata.gz: 26d8acb5d382124af88d1132ad8d3d0bb7604bdc19e1495d00be330aadbf8bc3092a2d768ac9e915a1b36281393d41cc8f013e711cafcf183551fb3a3d946b46
7
- data.tar.gz: 04fbf241320c154c52ed5343f25ce1fa9d243ba9f9a688cba147e3e2d0553d2472b61773492326fdb4e3ad58d0f8c00b874dab621442f82ab6149fa6c7dacedc
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='matthew-ellis'>
37
- <a href='https://github.com/matthewellis'>
38
- <img src='https://github.com/matthewellis.png?size=140'>
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/mellis1995'>Matthew Ellis</a></h4>
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='aaron-brager'>
49
- <a href='https://github.com/getaaron'>
50
- <img src='https://github.com/getaaron.png?size=140'>
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/getaaron'>Aaron Brager</a></h4>
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='manu-wallner'>
61
- <a href='https://github.com/milch'>
62
- <img src='https://github.com/milch.png?size=140'>
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/acrooow'>Manu Wallner</a></h4>
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='luka-mirosevic'>
69
- <a href='https://github.com/lmirosevic'>
70
- <img src='https://github.com/lmirosevic.png?size=140'>
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/lmirosevic'>Luka Mirosevic</a></h4>
72
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
73
73
  </td>
74
- <td id='stefan-natchev'>
75
- <a href='https://github.com/snatchev'>
76
- <img src='https://github.com/snatchev.png?size=140'>
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/snatchev'>Stefan Natchev</a></h4>
78
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
79
79
  </td>
80
- <td id='fumiya-nakamura'>
81
- <a href='https://github.com/nafu'>
82
- <img src='https://github.com/nafu.png?size=140'>
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/nafu003'>Fumiya Nakamura</a></h4>
84
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
85
85
  </td>
86
- <td id='jorge-revuelta-h'>
87
- <a href='https://github.com/minuscorp'>
88
- <img src='https://github.com/minuscorp.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/minuscorp'>Jorge Revuelta H</a></h4>
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='josh-holtz'>
101
- <a href='https://github.com/joshdholtz'>
102
- <img src='https://github.com/joshdholtz.png?size=140'>
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/Sujan'>Jan Piotrowski</a></h4>
104
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
111
105
  </td>
112
- <td id='danielle-tomlinson'>
113
- <a href='https://github.com/DanToml'>
114
- <img src='https://github.com/DanToml.png?size=140'>
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/DanToml'>Danielle Tomlinson</a></h4>
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='joshua-liebowitz'>
125
- <a href='https://github.com/taquitos'>
126
- <img src='https://github.com/taquitos.png?size=140'>
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/mgrebenets'>Maksym Grebenets</a></h4>
122
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
137
123
  </td>
138
- <td id='jérôme-lacoste'>
139
- <a href='https://github.com/lacostej'>
140
- <img src='https://github.com/lacostej.png?size=140'>
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/lacostej'>Jérôme Lacoste</a></h4>
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='iulian-onofrei'>
151
- <a href='https://github.com/revolter'>
152
- <img src='https://github.com/revolter.png?size=140'>
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/Revolt666'>Iulian Onofrei</a></h4>
142
+ <h4 align='center'><a href='https://twitter.com/DanToml'>Danielle Tomlinson</a></h4>
155
143
  </td>
156
- <td id='felix-krause'>
157
- <a href='https://github.com/KrauseFx'>
158
- <img src='https://github.com/KrauseFx.png?size=140'>
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/KrauseFx'>Felix Krause</a></h4>
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>
@@ -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/phonegap/ios-deploy for instructions") if `which ios-deploy`.length == 0
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/phonegap/ios-deploy). To quickly install it, use `npm -g i ios-deploy`"
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
- 'resign(
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.shellescape].join(" ")
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 a Bool from data: \(fromString), from function: \(function)")
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
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.109.1'.freeze
2
+ VERSION = '2.110.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.109.1
21
+ // Generated with fastlane 2.110.0
@@ -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
- scheme: String? = nil,
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
- skipBuild: Bool = false,
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
- useClangReportName: Bool = false,
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: "scheme", value: scheme),
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: "skip_build", value: skipBuild),
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: "use_clang_report_name", value: useClangReportName),
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
- scheme: String? = scanfile.scheme,
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
- skipBuild: Bool = scanfile.skipBuild,
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
- useClangReportName: Bool = scanfile.useClangReportName,
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: "scheme", value: scheme),
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: "skip_build", value: skipBuild),
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: "use_clang_report_name", value: useClangReportName),
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 a Bool from data: \(fromString), from function: \(function)")
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.34]
4172
+ // FastlaneRunnerAPIVersion [0.9.35]