fastlane 2.136.0 → 2.137.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +68 -68
  3. data/fastlane/lib/fastlane/actions/.hockey.rb.swp +0 -0
  4. data/fastlane/lib/fastlane/actions/.slack.rb.swp +0 -0
  5. data/fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp +0 -0
  6. data/fastlane/lib/fastlane/actions/ensure_bundle_exec.rb +3 -3
  7. data/fastlane/lib/fastlane/actions/gradle.rb +11 -1
  8. data/fastlane/lib/fastlane/actions/ruby_version.rb +1 -1
  9. data/fastlane/lib/fastlane/actions/testfairy.rb +8 -1
  10. data/fastlane/lib/fastlane/cli_tools_distributor.rb +2 -2
  11. data/fastlane/lib/fastlane/commands_generator.rb +1 -1
  12. data/fastlane/lib/fastlane/version.rb +1 -1
  13. data/fastlane/swift/Deliverfile.swift +1 -1
  14. data/fastlane/swift/Fastlane.swift +18 -27
  15. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  16. data/fastlane/swift/Gymfile.swift +1 -1
  17. data/fastlane/swift/Matchfile.swift +1 -1
  18. data/fastlane/swift/MatchfileProtocol.swift +2 -2
  19. data/fastlane/swift/Precheckfile.swift +1 -1
  20. data/fastlane/swift/Scanfile.swift +1 -1
  21. data/fastlane/swift/Screengrabfile.swift +1 -1
  22. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -9
  23. data/fastlane/swift/Snapshotfile.swift +1 -1
  24. data/pilot/lib/pilot/.manager.rb.swp +0 -0
  25. data/screengrab/lib/screengrab/options.rb +1 -10
  26. data/screengrab/lib/screengrab/runner.rb +5 -0
  27. data/spaceship/lib/spaceship/connect_api/.DS_Store +0 -0
  28. data/spaceship/lib/spaceship/portal/.certificate.rb.swp +0 -0
  29. data/supply/lib/supply/.uploader.rb.swp +0 -0
  30. data/supply/lib/supply/options.rb +8 -2
  31. data/supply/lib/supply/uploader.rb +21 -26
  32. metadata +24 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b8c1652cb1f5fa0d2fbd567e4d4721fc85be17dae9506afcf4fe8c9bd80c3ec6
4
- data.tar.gz: d257b400a19b96ccb7a0803af98f71cc6af521b8745a27e4a5083e547a7387bd
3
+ metadata.gz: 6e98cccac212ef4e62bb965cb317a392b45406a68d6bef49162b330d0932fef1
4
+ data.tar.gz: cf08d09dabcba42869fec0a717ebf2ca95f92adf449862a525b5ff4a7e829698
5
5
  SHA512:
6
- metadata.gz: a83e00a94cac8a0ac90f1273f70c1676dc1ddee5190599b84c1b2759b09d6f79054cbf13e9b1c3c1c7c928ccb941ec322a35ff9f479c7324db1ff9c71f541917
7
- data.tar.gz: 1a70fc80b4d8bfddec51d92044dbc36d806629ae03e8d3b55be3832d5694ecb06391f1c2e6df47477c439c61522a4849317fac988f360e7407bd206caac96bfb
6
+ metadata.gz: 6e4e1c20b2b5a2487b6aa4862f1dcaaec73b55e5ccc08761e21d4969b4b5c5e4940a85b31c3550711715335b7e91dba748c343ea3ecbff049356bcb9dc694b01
7
+ data.tar.gz: 25ea98cf73f137c63bc9f2be91d714d6aaca52617cd562690d75f9aa356055eacc5cb46a64e14b26c396dc7a21a7e87f7745d14ab07b06eae1149e7153976765
data/README.md CHANGED
@@ -34,38 +34,6 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
34
34
  <!-- This table is regenerated and resorted on each release -->
35
35
  <table id='team'>
36
36
  <tr>
37
- <td id='felix-krause'>
38
- <a href='https://github.com/KrauseFx'>
39
- <img src='https://github.com/KrauseFx.png?size=140'>
40
- </a>
41
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
42
- </td>
43
- <td id='matthew-ellis'>
44
- <a href='https://github.com/matthewellis'>
45
- <img src='https://github.com/matthewellis.png?size=140'>
46
- </a>
47
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
48
- </td>
49
- <td id='luka-mirosevic'>
50
- <a href='https://github.com/lmirosevic'>
51
- <img src='https://github.com/lmirosevic.png?size=140'>
52
- </a>
53
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
54
- </td>
55
- <td id='aaron-brager'>
56
- <a href='https://github.com/getaaron'>
57
- <img src='https://github.com/getaaron.png?size=140'>
58
- </a>
59
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
60
- </td>
61
- <td id='fumiya-nakamura'>
62
- <a href='https://github.com/nafu'>
63
- <img src='https://github.com/nafu.png?size=140'>
64
- </a>
65
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
66
- </td>
67
- </tr>
68
- <tr>
69
37
  <td id='manu-wallner'>
70
38
  <a href='https://github.com/milch'>
71
39
  <img src='https://github.com/milch.png?size=140'>
@@ -78,17 +46,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
78
46
  </a>
79
47
  <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
80
48
  </td>
81
- <td id='kohki-miki'>
82
- <a href='https://github.com/giginet'>
83
- <img src='https://github.com/giginet.png?size=140'>
49
+ <td id='josh-holtz'>
50
+ <a href='https://github.com/joshdholtz'>
51
+ <img src='https://github.com/joshdholtz.png?size=140'>
84
52
  </a>
85
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
53
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
86
54
  </td>
87
- <td id='maksym-grebenets'>
88
- <a href='https://github.com/mgrebenets'>
89
- <img src='https://github.com/mgrebenets.png?size=140'>
55
+ <td id='fumiya-nakamura'>
56
+ <a href='https://github.com/nafu'>
57
+ <img src='https://github.com/nafu.png?size=140'>
90
58
  </a>
91
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
59
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
92
60
  </td>
93
61
  <td id='stefan-natchev'>
94
62
  <a href='https://github.com/snatchev'>
@@ -104,17 +72,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
104
72
  </a>
105
73
  <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
106
74
  </td>
107
- <td id='andrew-mcburney'>
108
- <a href='https://github.com/armcburney'>
109
- <img src='https://github.com/armcburney.png?size=140'>
110
- </a>
111
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
112
- </td>
113
- <td id='olivier-halligon'>
114
- <a href='https://github.com/AliSoftware'>
115
- <img src='https://github.com/AliSoftware.png?size=140'>
75
+ <td id='jérôme-lacoste'>
76
+ <a href='https://github.com/lacostej'>
77
+ <img src='https://github.com/lacostej.png?size=140'>
116
78
  </a>
117
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
79
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
118
80
  </td>
119
81
  <td id='jorge-revuelta-h'>
120
82
  <a href='https://github.com/minuscorp'>
@@ -122,11 +84,49 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
122
84
  </a>
123
85
  <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
124
86
  </td>
125
- <td id='josh-holtz'>
126
- <a href='https://github.com/joshdholtz'>
127
- <img src='https://github.com/joshdholtz.png?size=140'>
87
+ <td id='aaron-brager'>
88
+ <a href='https://github.com/getaaron'>
89
+ <img src='https://github.com/getaaron.png?size=140'>
128
90
  </a>
129
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
91
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
92
+ </td>
93
+ <td id='matthew-ellis'>
94
+ <a href='https://github.com/matthewellis'>
95
+ <img src='https://github.com/matthewellis.png?size=140'>
96
+ </a>
97
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
98
+ </td>
99
+ </tr>
100
+ <tr>
101
+ <td id='luka-mirosevic'>
102
+ <a href='https://github.com/lmirosevic'>
103
+ <img src='https://github.com/lmirosevic.png?size=140'>
104
+ </a>
105
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
106
+ </td>
107
+ <td id='kohki-miki'>
108
+ <a href='https://github.com/giginet'>
109
+ <img src='https://github.com/giginet.png?size=140'>
110
+ </a>
111
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
112
+ </td>
113
+ <td id='jimmy-dee'>
114
+ <a href='https://github.com/jdee'>
115
+ <img src='https://github.com/jdee.png?size=140'>
116
+ </a>
117
+ <h4 align='center'>Jimmy Dee</h4>
118
+ </td>
119
+ <td id='jan-piotrowski'>
120
+ <a href='https://github.com/janpio'>
121
+ <img src='https://github.com/janpio.png?size=140'>
122
+ </a>
123
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
124
+ </td>
125
+ <td id='maksym-grebenets'>
126
+ <a href='https://github.com/mgrebenets'>
127
+ <img src='https://github.com/mgrebenets.png?size=140'>
128
+ </a>
129
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
130
130
  </td>
131
131
  </tr>
132
132
  <tr>
@@ -136,11 +136,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
136
136
  </a>
137
137
  <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
138
138
  </td>
139
- <td id='jérôme-lacoste'>
140
- <a href='https://github.com/lacostej'>
141
- <img src='https://github.com/lacostej.png?size=140'>
139
+ <td id='olivier-halligon'>
140
+ <a href='https://github.com/AliSoftware'>
141
+ <img src='https://github.com/AliSoftware.png?size=140'>
142
142
  </a>
143
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
143
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
144
+ </td>
145
+ <td id='felix-krause'>
146
+ <a href='https://github.com/KrauseFx'>
147
+ <img src='https://github.com/KrauseFx.png?size=140'>
148
+ </a>
149
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
144
150
  </td>
145
151
  <td id='joshua-liebowitz'>
146
152
  <a href='https://github.com/taquitos'>
@@ -148,17 +154,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
148
154
  </a>
149
155
  <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
150
156
  </td>
151
- <td id='jan-piotrowski'>
152
- <a href='https://github.com/janpio'>
153
- <img src='https://github.com/janpio.png?size=140'>
154
- </a>
155
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
156
- </td>
157
- <td id='jimmy-dee'>
158
- <a href='https://github.com/jdee'>
159
- <img src='https://github.com/jdee.png?size=140'>
157
+ <td id='andrew-mcburney'>
158
+ <a href='https://github.com/armcburney'>
159
+ <img src='https://github.com/armcburney.png?size=140'>
160
160
  </a>
161
- <h4 align='center'>Jimmy Dee</h4>
161
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
162
162
  </td>
163
163
  </tr>
164
164
  </table>
@@ -10,7 +10,7 @@ module Fastlane
10
10
  if FastlaneCore::Helper.bundler?
11
11
  UI.success("Using bundled fastlane ✅")
12
12
  else
13
- UI.user_error!("fastlane detected a Gemfile in the current directory. However it seems like you don't use `bundle exec`. Use `bundle exec fastlane #{ARGV.join(' ')}`")
13
+ UI.user_error!("fastlane detected a Gemfile in the current directory. However, it seems like you didn't use `bundle exec`. Use `bundle exec fastlane #{ARGV.join(' ')}` instead.")
14
14
  end
15
15
  end
16
16
 
@@ -24,8 +24,8 @@ module Fastlane
24
24
 
25
25
  def self.details
26
26
  [
27
- "This action will check if you are using bundle exec to run fastlane.",
28
- "You can put it into `before_all` and make sure that fastlane is run using `bundle exec fastlane` command."
27
+ "This action will check if you are using `bundle exec` to run fastlane.",
28
+ "You can put it into `before_all` to make sure that fastlane is ran using the `bundle exec fastlane` command."
29
29
  ].join("\n")
30
30
  end
31
31
 
@@ -10,6 +10,8 @@ module Fastlane
10
10
  GRADLE_ALL_AAB_OUTPUT_PATHS = :GRADLE_ALL_AAB_OUTPUT_PATHS
11
11
  GRADLE_OUTPUT_JSON_OUTPUT_PATH = :GRADLE_OUTPUT_JSON_OUTPUT_PATH
12
12
  GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS = :GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS
13
+ GRADLE_MAPPING_TXT_OUTPUT_PATH = :GRADLE_MAPPING_TXT_OUTPUT_PATH
14
+ GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS = :GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS
13
15
  GRADLE_FLAVOR = :GRADLE_FLAVOR
14
16
  GRADLE_BUILD_TYPE = :GRADLE_BUILD_TYPE
15
17
  end
@@ -63,6 +65,7 @@ module Fastlane
63
65
  apk_search_path = File.join(project_dir, '**', 'build', 'outputs', 'apk', '**', '*.apk')
64
66
  aab_search_path = File.join(project_dir, '**', 'build', 'outputs', 'bundle', '**', '*.aab')
65
67
  output_json_search_path = File.join(project_dir, '**', 'build', 'outputs', 'apk', '**', 'output.json')
68
+ mapping_txt_search_path = File.join(project_dir, '**', 'build', 'outputs', 'mapping', '**', 'mapping.txt')
66
69
 
67
70
  # Our apk/aab is now built, but there might actually be multiple ones that were built if a flavor was not specified in a multi-flavor project (e.g. `assembleRelease`)
68
71
  # However, we're not interested in unaligned apk's...
@@ -72,11 +75,14 @@ module Fastlane
72
75
  new_aabs = new_aabs.map { |path| File.expand_path(path) }
73
76
  new_output_jsons = Dir[output_json_search_path]
74
77
  new_output_jsons = new_output_jsons.map { |path| File.expand_path(path) }
78
+ new_mapping_txts = Dir[mapping_txt_search_path]
79
+ new_mapping_txts = new_mapping_txts.map { |path| File.expand_path(path) }
75
80
 
76
81
  # We expose all of these new apks and aabs
77
82
  Actions.lane_context[SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS] = new_apks
78
83
  Actions.lane_context[SharedValues::GRADLE_ALL_AAB_OUTPUT_PATHS] = new_aabs
79
84
  Actions.lane_context[SharedValues::GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS] = new_output_jsons
85
+ Actions.lane_context[SharedValues::GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS] = new_mapping_txts
80
86
 
81
87
  # We also take the most recent apk and aab to return as SharedValues::GRADLE_APK_OUTPUT_PATH and SharedValues::GRADLE_AAB_OUTPUT_PATH
82
88
  # This is the one that will be relevant for most projects that just build a single build variant (flavor + build type combo).
@@ -84,9 +90,11 @@ module Fastlane
84
90
  last_apk_path = new_apks.sort_by(&File.method(:mtime)).last
85
91
  last_aab_path = new_aabs.sort_by(&File.method(:mtime)).last
86
92
  last_output_json_path = new_output_jsons.sort_by(&File.method(:mtime)).last
93
+ last_mapping_txt_path = new_mapping_txts.sort_by(&File.method(:mtime)).last
87
94
  Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] = File.expand_path(last_apk_path) if last_apk_path
88
95
  Actions.lane_context[SharedValues::GRADLE_AAB_OUTPUT_PATH] = File.expand_path(last_aab_path) if last_aab_path
89
96
  Actions.lane_context[SharedValues::GRADLE_OUTPUT_JSON_OUTPUT_PATH] = File.expand_path(last_output_json_path) if last_output_json_path
97
+ Actions.lane_context[SharedValues::GRADLE_MAPPING_TXT_OUTPUT_PATH] = File.expand_path(last_mapping_txt_path) if last_mapping_txt_path
90
98
 
91
99
  # Give a helpful message in case there were no new apks or aabs. Remember we're only running this code when assembling, in which case we certainly expect there to be an apk or aab
92
100
  UI.message('Couldn\'t find any new signed apk files...') if new_apks.empty? && new_aabs.empty?
@@ -175,7 +183,9 @@ module Fastlane
175
183
  ['GRADLE_AAB_OUTPUT_PATH', 'The path to the most recent Android app bundle'],
176
184
  ['GRADLE_ALL_AAB_OUTPUT_PATHS', 'The paths to the most recent Android app bundles'],
177
185
  ['GRADLE_OUTPUT_JSON_OUTPUT_PATH', 'The path to the most recent output.json file'],
178
- ['GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS', 'The path to the newly generated output.json files']
186
+ ['GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS', 'The path to the newly generated output.json files'],
187
+ ['GRADLE_MAPPING_TXT_OUTPUT_PATH', 'The path to the most recent mapping.txt file'],
188
+ ['GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS', 'The path to the newly generated mapping.txt files']
179
189
  ]
180
190
  end
181
191
 
@@ -40,7 +40,7 @@ module Fastlane
40
40
  def self.details
41
41
  [
42
42
  "Add this to your `Fastfile` to require a certain version of _ruby_.",
43
- "Put it at the top of your `Fastfile to ensure that _fastlane_ is executed appropriately."
43
+ "Put it at the top of your `Fastfile` to ensure that _fastlane_ is executed appropriately."
44
44
  ].join("\n")
45
45
  end
46
46
 
@@ -92,6 +92,8 @@ module Fastlane
92
92
  [key, value]
93
93
  when :options
94
94
  [key, options_to_client.call(value).join(',')]
95
+ when :custom
96
+ [key, value]
95
97
  else
96
98
  UI.user_error!("Unknown parameter: #{key}")
97
99
  end
@@ -223,6 +225,11 @@ module Fastlane
223
225
  env_name: "FL_TESTFAIRY_OPTIONS",
224
226
  description: "Array of options (shake,video_only_wifi,anonymous)",
225
227
  default_value: []),
228
+ FastlaneCore::ConfigItem.new(key: :custom,
229
+ optional: true,
230
+ env_name: "FL_TESTFAIRY_CUSTOM",
231
+ description: "Array of custom options. Contact support@testfairy.com for more information",
232
+ default_value: ''),
226
233
  FastlaneCore::ConfigItem.new(key: :timeout,
227
234
  env_name: "FL_TESTFAIRY_TIMEOUT",
228
235
  description: "Request timeout in seconds",
@@ -252,7 +259,7 @@ module Fastlane
252
259
  end
253
260
 
254
261
  def self.authors
255
- ["taka0125", "tcurdt"]
262
+ ["taka0125", "tcurdt", "vijaysharm"]
256
263
  end
257
264
 
258
265
  def self.is_supported?(platform)
@@ -142,8 +142,8 @@ module Fastlane
142
142
  # Let's tell the user how to use `bundle exec`
143
143
  # We show this warning no matter if the command is slow or not
144
144
  UI.important("fastlane detected a Gemfile in the current directory")
145
- UI.important("however it seems like you don't use `bundle exec`")
146
- UI.important("to launch fastlane faster, please use")
145
+ UI.important("However, it seems like you didn't use `bundle exec`")
146
+ UI.important("To launch fastlane faster, please use")
147
147
  UI.message("")
148
148
  UI.command "bundle exec fastlane #{ARGV.join(' ')}"
149
149
  UI.message("")
@@ -17,7 +17,7 @@ module Fastlane
17
17
  end
18
18
  FastlaneCore::Swag.show_loader
19
19
 
20
- # has to be checked here - in case we wan't to troubleshoot plugin related issues
20
+ # has to be checked here - in case we want to troubleshoot plugin related issues
21
21
  if ARGV.include?("--troubleshoot")
22
22
  self.confirm_troubleshoot
23
23
  end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.136.0'.freeze
2
+ VERSION = '2.137.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.136.0
21
+ // Generated with fastlane 2.137.0
@@ -1219,8 +1219,6 @@ func bundleInstall(binstubs: String? = nil,
1219
1219
  - reinstallApp: Enabling this option will automatically uninstall the application before running it
1220
1220
  - useTimestampSuffix: Add timestamp suffix to screenshot filename
1221
1221
  - adbHost: Configure the host used by adb to connect, allows running on remote devices farm
1222
- - cleanStatusBar: Enabling this option will clean the status bar
1223
- - cleanStatusBarConfig: Specifies the configuration for the clean status bar
1224
1222
  */
1225
1223
  func captureAndroidScreenshots(androidHome: String? = nil,
1226
1224
  buildToolsVersion: String? = nil,
@@ -1243,9 +1241,7 @@ func captureAndroidScreenshots(androidHome: String? = nil,
1243
1241
  exitOnTestFailure: Bool = true,
1244
1242
  reinstallApp: Bool = false,
1245
1243
  useTimestampSuffix: Bool = true,
1246
- adbHost: String? = nil,
1247
- cleanStatusBar: Bool = false,
1248
- cleanStatusBarConfig: [String : Any] = [:]) {
1244
+ adbHost: String? = nil) {
1249
1245
  let command = RubyCommand(commandID: "", methodName: "capture_android_screenshots", className: nil, args: [RubyCommand.Argument(name: "android_home", value: androidHome),
1250
1246
  RubyCommand.Argument(name: "build_tools_version", value: buildToolsVersion),
1251
1247
  RubyCommand.Argument(name: "locales", value: locales),
@@ -1267,9 +1263,7 @@ func captureAndroidScreenshots(androidHome: String? = nil,
1267
1263
  RubyCommand.Argument(name: "exit_on_test_failure", value: exitOnTestFailure),
1268
1264
  RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
1269
1265
  RubyCommand.Argument(name: "use_timestamp_suffix", value: useTimestampSuffix),
1270
- RubyCommand.Argument(name: "adb_host", value: adbHost),
1271
- RubyCommand.Argument(name: "clean_status_bar", value: cleanStatusBar),
1272
- RubyCommand.Argument(name: "clean_status_bar_config", value: cleanStatusBarConfig)])
1266
+ RubyCommand.Argument(name: "adb_host", value: adbHost)])
1273
1267
  _ = runner.executeCommand(command)
1274
1268
  }
1275
1269
 
@@ -1582,7 +1576,7 @@ func carthage(command: String = "bootstrap",
1582
1576
  */
1583
1577
  func cert(development: Bool = false,
1584
1578
  force: Bool = false,
1585
- generateAppleCerts: Bool = false,
1579
+ generateAppleCerts: Bool = true,
1586
1580
  username: String,
1587
1581
  teamId: String? = nil,
1588
1582
  teamName: String? = nil,
@@ -2583,7 +2577,7 @@ func downloadDsyms(username: String,
2583
2577
  func downloadFromPlayStore(packageName: String,
2584
2578
  versionName: String? = nil,
2585
2579
  track: String = "production",
2586
- metadataPath: String? = nil,
2580
+ metadataPath: String = "./metadata",
2587
2581
  key: String? = nil,
2588
2582
  issuer: String? = nil,
2589
2583
  jsonKey: String? = nil,
@@ -2635,8 +2629,8 @@ func echo(message: String? = nil) {
2635
2629
  /**
2636
2630
  Raises an exception if not using `bundle exec` to run fastlane
2637
2631
 
2638
- This action will check if you are using bundle exec to run fastlane.
2639
- You can put it into `before_all` and make sure that fastlane is run using `bundle exec fastlane` command.
2632
+ This action will check if you are using `bundle exec` to run fastlane.
2633
+ You can put it into `before_all` to make sure that fastlane is ran using the `bundle exec fastlane` command.
2640
2634
  */
2641
2635
  func ensureBundleExec() {
2642
2636
  let command = RubyCommand(commandID: "", methodName: "ensure_bundle_exec", className: nil, args: [])
@@ -2954,7 +2948,7 @@ func getBuildNumberRepository(useHgRevisionNumber: Bool = false) {
2954
2948
  */
2955
2949
  func getCertificates(development: Bool = false,
2956
2950
  force: Bool = false,
2957
- generateAppleCerts: Bool = false,
2951
+ generateAppleCerts: Bool = true,
2958
2952
  username: String,
2959
2953
  teamId: String? = nil,
2960
2954
  teamName: String? = nil,
@@ -5338,7 +5332,7 @@ func rubocop() {
5338
5332
  Verifies the minimum ruby version required
5339
5333
 
5340
5334
  Add this to your `Fastfile` to require a certain version of _ruby_.
5341
- Put it at the top of your `Fastfile to ensure that _fastlane_ is executed appropriately.
5335
+ Put it at the top of your `Fastfile` to ensure that _fastlane_ is executed appropriately.
5342
5336
  */
5343
5337
  func rubyVersion() {
5344
5338
  let command = RubyCommand(commandID: "", methodName: "ruby_version", className: nil, args: [])
@@ -5815,8 +5809,6 @@ func scp(username: String,
5815
5809
  - reinstallApp: Enabling this option will automatically uninstall the application before running it
5816
5810
  - useTimestampSuffix: Add timestamp suffix to screenshot filename
5817
5811
  - adbHost: Configure the host used by adb to connect, allows running on remote devices farm
5818
- - cleanStatusBar: Enabling this option will clean the status bar
5819
- - cleanStatusBarConfig: Specifies the configuration for the clean status bar
5820
5812
  */
5821
5813
  func screengrab(androidHome: Any? = screengrabfile.androidHome,
5822
5814
  buildToolsVersion: Any? = screengrabfile.buildToolsVersion,
@@ -5839,9 +5831,7 @@ func screengrab(androidHome: Any? = screengrabfile.androidHome,
5839
5831
  exitOnTestFailure: Bool = screengrabfile.exitOnTestFailure,
5840
5832
  reinstallApp: Bool = screengrabfile.reinstallApp,
5841
5833
  useTimestampSuffix: Bool = screengrabfile.useTimestampSuffix,
5842
- adbHost: Any? = screengrabfile.adbHost,
5843
- cleanStatusBar: Bool = screengrabfile.cleanStatusBar,
5844
- cleanStatusBarConfig: [String : Any] = screengrabfile.cleanStatusBarConfig) {
5834
+ adbHost: Any? = screengrabfile.adbHost) {
5845
5835
  let command = RubyCommand(commandID: "", methodName: "screengrab", className: nil, args: [RubyCommand.Argument(name: "android_home", value: androidHome),
5846
5836
  RubyCommand.Argument(name: "build_tools_version", value: buildToolsVersion),
5847
5837
  RubyCommand.Argument(name: "locales", value: locales),
@@ -5863,9 +5853,7 @@ func screengrab(androidHome: Any? = screengrabfile.androidHome,
5863
5853
  RubyCommand.Argument(name: "exit_on_test_failure", value: exitOnTestFailure),
5864
5854
  RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
5865
5855
  RubyCommand.Argument(name: "use_timestamp_suffix", value: useTimestampSuffix),
5866
- RubyCommand.Argument(name: "adb_host", value: adbHost),
5867
- RubyCommand.Argument(name: "clean_status_bar", value: cleanStatusBar),
5868
- RubyCommand.Argument(name: "clean_status_bar_config", value: cleanStatusBarConfig)])
5856
+ RubyCommand.Argument(name: "adb_host", value: adbHost)])
5869
5857
  _ = runner.executeCommand(command)
5870
5858
  }
5871
5859
 
@@ -6732,7 +6720,7 @@ func supply(packageName: String,
6732
6720
  releaseStatus: String = "completed",
6733
6721
  track: String = "production",
6734
6722
  rollout: String? = nil,
6735
- metadataPath: String? = nil,
6723
+ metadataPath: String = "./metadata",
6736
6724
  key: String? = nil,
6737
6725
  issuer: String? = nil,
6738
6726
  jsonKey: String? = nil,
@@ -6879,7 +6867,7 @@ func swiftlint(mode: Any = "lint",
6879
6867
  */
6880
6868
  func syncCodeSigning(type: String = "development",
6881
6869
  readonly: Bool = false,
6882
- generateAppleCerts: Bool = false,
6870
+ generateAppleCerts: Bool = true,
6883
6871
  skipProvisioningProfiles: Bool = false,
6884
6872
  appIdentifier: [String],
6885
6873
  username: String,
@@ -6969,6 +6957,7 @@ func teamName() {
6969
6957
  - autoUpdate: Allows an easy upgrade of all users to the current version. To enable set to 'on'
6970
6958
  - notify: Send email to testers
6971
6959
  - options: Array of options (shake,video_only_wifi,anonymous)
6960
+ - custom: Array of custom options. Contact support@testfairy.com for more information
6972
6961
  - timeout: Request timeout in seconds
6973
6962
 
6974
6963
  You can retrieve your API key on [your settings page](https://free.testfairy.com/settings/)
@@ -6984,6 +6973,7 @@ func testfairy(apiKey: String,
6984
6973
  autoUpdate: String = "off",
6985
6974
  notify: String = "off",
6986
6975
  options: [String] = [],
6976
+ custom: String = "",
6987
6977
  timeout: Int? = nil) {
6988
6978
  let command = RubyCommand(commandID: "", methodName: "testfairy", className: nil, args: [RubyCommand.Argument(name: "api_key", value: apiKey),
6989
6979
  RubyCommand.Argument(name: "ipa", value: ipa),
@@ -6996,6 +6986,7 @@ func testfairy(apiKey: String,
6996
6986
  RubyCommand.Argument(name: "auto_update", value: autoUpdate),
6997
6987
  RubyCommand.Argument(name: "notify", value: notify),
6998
6988
  RubyCommand.Argument(name: "options", value: options),
6989
+ RubyCommand.Argument(name: "custom", value: custom),
6999
6990
  RubyCommand.Argument(name: "timeout", value: timeout)])
7000
6991
  _ = runner.executeCommand(command)
7001
6992
  }
@@ -7754,7 +7745,7 @@ func uploadToPlayStore(packageName: String,
7754
7745
  releaseStatus: String = "completed",
7755
7746
  track: String = "production",
7756
7747
  rollout: String? = nil,
7757
- metadataPath: String? = nil,
7748
+ metadataPath: String = "./metadata",
7758
7749
  key: String? = nil,
7759
7750
  issuer: String? = nil,
7760
7751
  jsonKey: String? = nil,
@@ -8211,7 +8202,7 @@ func xcov(workspace: String? = nil,
8211
8202
  coverallsServiceJobId: String? = nil,
8212
8203
  coverallsRepoToken: String? = nil,
8213
8204
  xcconfig: String? = nil,
8214
- ideFoundationPath: String = "/Applications/Xcode-10.3.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
8205
+ ideFoundationPath: String = "/Applications/Xcode-11.2.1.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
8215
8206
  legacySupport: Bool = false) {
8216
8207
  let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
8217
8208
  RubyCommand.Argument(name: "project", value: project),
@@ -8356,4 +8347,4 @@ let snapshotfile: Snapshotfile = Snapshotfile()
8356
8347
 
8357
8348
  // Please don't remove the lines below
8358
8349
  // They are used to detect outdated files
8359
- // FastlaneRunnerAPIVersion [0.9.64]
8350
+ // FastlaneRunnerAPIVersion [0.9.65]
@@ -18,4 +18,4 @@ class Gymfile: GymfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.136.0
21
+ // Generated with fastlane 2.137.0
@@ -18,4 +18,4 @@ class Matchfile: MatchfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.136.0
21
+ // Generated with fastlane 2.137.0
@@ -91,7 +91,7 @@ protocol MatchfileProtocol: class {
91
91
  extension MatchfileProtocol {
92
92
  var type: String { return "development" }
93
93
  var readonly: Bool { return false }
94
- var generateAppleCerts: Bool { return false }
94
+ var generateAppleCerts: Bool { return true }
95
95
  var skipProvisioningProfiles: Bool { return false }
96
96
  var appIdentifier: [String] { return [] }
97
97
  var username: String { return "" }
@@ -122,4 +122,4 @@ extension MatchfileProtocol {
122
122
 
123
123
  // Please don't remove the lines below
124
124
  // They are used to detect outdated files
125
- // FastlaneRunnerAPIVersion [0.9.10]
125
+ // FastlaneRunnerAPIVersion [0.9.11]
@@ -18,4 +18,4 @@ class Precheckfile: PrecheckfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.136.0
21
+ // Generated with fastlane 2.137.0
@@ -18,4 +18,4 @@ class Scanfile: ScanfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.136.0
21
+ // Generated with fastlane 2.137.0
@@ -18,4 +18,4 @@ class Screengrabfile: ScreengrabfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.136.0
21
+ // Generated with fastlane 2.137.0
@@ -65,12 +65,6 @@ protocol ScreengrabfileProtocol: class {
65
65
 
66
66
  /// Configure the host used by adb to connect, allows running on remote devices farm
67
67
  var adbHost: String? { get }
68
-
69
- /// Enabling this option will clean the status bar
70
- var cleanStatusBar: Bool { get }
71
-
72
- /// Specifies the configuration for the clean status bar
73
- var cleanStatusBarConfig: [String : Any] { get }
74
68
  }
75
69
 
76
70
  extension ScreengrabfileProtocol {
@@ -96,10 +90,8 @@ extension ScreengrabfileProtocol {
96
90
  var reinstallApp: Bool { return false }
97
91
  var useTimestampSuffix: Bool { return true }
98
92
  var adbHost: String? { return nil }
99
- var cleanStatusBar: Bool { return false }
100
- var cleanStatusBarConfig: [String : Any] { return [:] }
101
93
  }
102
94
 
103
95
  // Please don't remove the lines below
104
96
  // They are used to detect outdated files
105
- // FastlaneRunnerAPIVersion [0.9.12]
97
+ // FastlaneRunnerAPIVersion [0.9.13]
@@ -18,4 +18,4 @@ class Snapshotfile: SnapshotfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.136.0
21
+ // Generated with fastlane 2.137.0
Binary file
@@ -141,16 +141,7 @@ module Screengrab
141
141
  FastlaneCore::ConfigItem.new(key: :adb_host,
142
142
  env_name: 'SCREENGRAB_ADB_HOST',
143
143
  description: "Configure the host used by adb to connect, allows running on remote devices farm",
144
- optional: true),
145
- FastlaneCore::ConfigItem.new(key: :clean_status_bar,
146
- env_name: 'SCREENGRAB_CLEAN_STATUS_BAR',
147
- description: "Enabling this option will clean the status bar",
148
- default_value: false,
149
- type: Boolean),
150
- FastlaneCore::ConfigItem.new(key: :clean_status_bar_config,
151
- description: "Specifies the configuration for the clean status bar",
152
- default_value: {},
153
- type: Hash)
144
+ optional: true)
154
145
  ]
155
146
  end
156
147
  end
@@ -395,6 +395,11 @@ module Screengrab
395
395
  def enable_clean_status_bar(device_serial, app_apk_path)
396
396
  return unless device_api_version(device_serial) >= 23
397
397
 
398
+ unless @android_env.aapt_path
399
+ UI.error("The `aapt` command could not be found, so status bar could not be cleaned. Make sure android_home is configured for screengrab or ANDROID_HOME is set in the environment")
400
+ return
401
+ end
402
+
398
403
  # Check if the app wants to use the clean status bar feature
399
404
  badging_dump = @executor.execute(command: "#{@android_env.aapt_path} dump badging #{app_apk_path}",
400
405
  print_all: true, print_command: true)
Binary file
@@ -43,7 +43,10 @@ module Supply
43
43
  env_name: "SUPPLY_TRACK",
44
44
  description: "The track of the application to use. The default available tracks are: #{Supply::Tracks::DEFAULTS.join(', ')}",
45
45
  default_value: Supply::Tracks::DEFAULT,
46
- type: String),
46
+ type: String,
47
+ verify_block: proc do |value|
48
+ UI.user_error!("'rollout' is no longer a valid track name - please use 'production' instead") if value.casecmp('rollout').zero?
49
+ end),
47
50
  FastlaneCore::ConfigItem.new(key: :rollout,
48
51
  short_option: "-r",
49
52
  description: "The percentage of the user fraction when uploading to the rollout track",
@@ -208,7 +211,10 @@ module Supply
208
211
  FastlaneCore::ConfigItem.new(key: :track_promote_to,
209
212
  env_name: "SUPPLY_TRACK_PROMOTE_TO",
210
213
  optional: true,
211
- description: "The track to promote to. The default available tracks are: #{Supply::Tracks::DEFAULTS.join(', ')}"),
214
+ description: "The track to promote to. The default available tracks are: #{Supply::Tracks::DEFAULTS.join(', ')}",
215
+ verify_block: proc do |value|
216
+ UI.user_error!("'rollout' is no longer a valid track name - please use 'production' instead") if value.casecmp('rollout').zero?
217
+ end),
212
218
  FastlaneCore::ConfigItem.new(key: :validate_only,
213
219
  env_name: "SUPPLY_VALIDATE_ONLY",
214
220
  optional: true,
@@ -15,32 +15,34 @@ module Supply
15
15
 
16
16
  apk_version_codes.concat(Supply.config[:version_codes_to_retain]) if Supply.config[:version_codes_to_retain]
17
17
 
18
- # Only update tracks if we have version codes
19
- # Updating a track with empty version codes can completely clear out a track
20
- update_track(apk_version_codes) unless apk_version_codes.empty?
21
-
22
- if Supply.config[:track_promote_to]
23
- promote_track
24
- elsif !Supply.config[:rollout].nil? && Supply.config[:track].to_s != ""
25
- update_rollout
18
+ if !apk_version_codes.empty?
19
+ # Only update tracks if we have version codes
20
+ # update_track handle setting rollout if needed
21
+ # Updating a track with empty version codes can completely clear out a track
22
+ update_track(apk_version_codes)
23
+ else
24
+ # Only promote or rollout if we don't have version codes
25
+ if Supply.config[:track_promote_to]
26
+ promote_track
27
+ elsif !Supply.config[:rollout].nil? && Supply.config[:track].to_s != ""
28
+ update_rollout
29
+ end
26
30
  end
27
31
 
32
+ perform_upload_meta(apk_version_codes)
33
+
28
34
  if Supply.config[:validate_only]
29
- UI.message("Validating all track and release changes with Google Play...")
35
+ UI.message("Validating all changes with Google Play...")
30
36
  client.validate_current_edit!
31
37
  UI.success("Successfully validated the upload to Google Play")
32
38
  else
33
- UI.message("Uploading all track and release changes to Google Play...")
39
+ UI.message("Uploading all changes to Google Play...")
34
40
  client.commit_current_edit!
35
41
  UI.success("Successfully finished the upload to Google Play")
36
42
  end
37
-
38
- perform_upload_meta(apk_version_codes)
39
43
  end
40
44
 
41
45
  def perform_upload_meta(version_codes)
42
- client.begin_edit(package_name: Supply.config[:package_name])
43
-
44
46
  if (!Supply.config[:skip_upload_metadata] || !Supply.config[:skip_upload_images] || !Supply.config[:skip_upload_changelogs] || !Supply.config[:skip_upload_screenshots]) && metadata_path
45
47
  # Use version code from config if version codes is empty and no nil or empty string
46
48
  version_codes = [Supply.config[:version_code]] if version_codes.empty?
@@ -71,16 +73,6 @@ module Supply
71
73
  upload_changelogs(release_notes, release, track) unless release_notes.empty?
72
74
  end
73
75
  end
74
-
75
- if Supply.config[:validate_only]
76
- UI.message("Validating all meta changes with Google Play...")
77
- client.validate_current_edit!
78
- UI.success("Successfully validated the upload to Google Play")
79
- else
80
- UI.message("Uploading all meta changes to Google Play...")
81
- client.commit_current_edit!
82
- UI.success("Successfully finished the upload to Google Play")
83
- end
84
76
  end
85
77
 
86
78
  def fetch_track_and_release!(track, version_code, status = nil)
@@ -358,8 +350,11 @@ module Supply
358
350
  )
359
351
 
360
352
  if Supply.config[:rollout]
361
- track_release.status = Supply::ReleaseStatus::IN_PROGRESS
362
- track_release.user_fraction = Supply.config[:rollout].to_f
353
+ rollout = Supply.config[:rollout].to_f
354
+ if rollout > 0 && rollout < 1
355
+ track_release.status = Supply::ReleaseStatus::IN_PROGRESS
356
+ track_release.user_fraction = rollout
357
+ end
363
358
  end
364
359
 
365
360
  tracks = client.tracks(Supply.config[:track])
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.136.0
4
+ version: 2.137.0
5
5
  platform: ruby
6
6
  authors:
7
- - Danielle Tomlinson
8
- - Jimmy Dee
9
- - Helmut Januschka
7
+ - Josh Holtz
10
8
  - Olivier Halligon
11
9
  - Joshua Liebowitz
12
- - Josh Holtz
13
- - Manu Wallner
14
- - Jan Piotrowski
10
+ - Aaron Brager
11
+ - Andrew McBurney
15
12
  - Kohki Miki
16
- - Stefan Natchev
17
- - Jorge Revuelta H
18
- - Fumiya Nakamura
19
- - Jérôme Lacoste
13
+ - Manu Wallner
20
14
  - Felix Krause
21
- - Maksym Grebenets
15
+ - Luka Mirosevic
16
+ - Stefan Natchev
22
17
  - Iulian Onofrei
18
+ - Danielle Tomlinson
19
+ - Jimmy Dee
20
+ - Jérôme Lacoste
21
+ - Jan Piotrowski
23
22
  - Matthew Ellis
24
- - Aaron Brager
25
- - Luka Mirosevic
26
- - Andrew McBurney
23
+ - Helmut Januschka
24
+ - Fumiya Nakamura
25
+ - Maksym Grebenets
26
+ - Jorge Revuelta H
27
27
  autorequire:
28
28
  bindir: bin
29
29
  cert_chain: []
30
- date: 2019-11-15 00:00:00.000000000 Z
30
+ date: 2019-11-22 00:00:00.000000000 Z
31
31
  dependencies:
32
32
  - !ruby/object:Gem::Dependency
33
33
  name: slack-notifier
@@ -986,6 +986,9 @@ files:
986
986
  - fastlane/lib/fastlane.rb
987
987
  - fastlane/lib/fastlane/action.rb
988
988
  - fastlane/lib/fastlane/action_collector.rb
989
+ - fastlane/lib/fastlane/actions/.hockey.rb.swp
990
+ - fastlane/lib/fastlane/actions/.slack.rb.swp
991
+ - fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp
989
992
  - fastlane/lib/fastlane/actions/README.md
990
993
  - fastlane/lib/fastlane/actions/actions_helper.rb
991
994
  - fastlane/lib/fastlane/actions/adb.rb
@@ -1314,6 +1317,7 @@ files:
1314
1317
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj
1315
1318
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
1316
1319
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
1320
+ - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate
1317
1321
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme
1318
1322
  - fastlane/swift/FastlaneSwiftRunner/README.txt
1319
1323
  - fastlane/swift/Gymfile.swift
@@ -1468,6 +1472,7 @@ files:
1468
1472
  - pem/lib/pem/options.rb
1469
1473
  - pilot/README.md
1470
1474
  - pilot/lib/pilot.rb
1475
+ - pilot/lib/pilot/.manager.rb.swp
1471
1476
  - pilot/lib/pilot/build_manager.rb
1472
1477
  - pilot/lib/pilot/commands_generator.rb
1473
1478
  - pilot/lib/pilot/features.rb
@@ -1599,6 +1604,7 @@ files:
1599
1604
  - spaceship/lib/spaceship/client.rb
1600
1605
  - spaceship/lib/spaceship/commands_generator.rb
1601
1606
  - spaceship/lib/spaceship/connect_api.rb
1607
+ - spaceship/lib/spaceship/connect_api/.DS_Store
1602
1608
  - spaceship/lib/spaceship/connect_api/client.rb
1603
1609
  - spaceship/lib/spaceship/connect_api/model.rb
1604
1610
  - spaceship/lib/spaceship/connect_api/models/app.rb
@@ -1639,6 +1645,7 @@ files:
1639
1645
  - spaceship/lib/spaceship/launcher.rb
1640
1646
  - spaceship/lib/spaceship/module.rb
1641
1647
  - spaceship/lib/spaceship/playground.rb
1648
+ - spaceship/lib/spaceship/portal/.certificate.rb.swp
1642
1649
  - spaceship/lib/spaceship/portal/app.rb
1643
1650
  - spaceship/lib/spaceship/portal/app_group.rb
1644
1651
  - spaceship/lib/spaceship/portal/app_service.rb
@@ -1779,7 +1786,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1779
1786
  - !ruby/object:Gem::Version
1780
1787
  version: '0'
1781
1788
  requirements: []
1782
- rubygems_version: 3.0.6
1789
+ rubygems_version: 3.0.3
1783
1790
  signing_key:
1784
1791
  specification_version: 4
1785
1792
  summary: The easiest way to automate beta deployments and releases for your iOS and