fastlane 2.150.1 → 2.150.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +72 -72
  3. data/{fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp → deliver/lib/deliver/.commands_generator.rb.swp} +0 -0
  4. data/{pilot/lib/pilot/.manager.rb.swp → deliver/lib/deliver/.download_screenshots.rb.swp} +0 -0
  5. data/deliver/lib/deliver/.submit_for_review.rb.swp +0 -0
  6. data/deliver/lib/deliver/.upload_metadata.rb.swp +0 -0
  7. data/deliver/lib/deliver/.upload_screenshots.rb.swp +0 -0
  8. data/deliver/lib/deliver/runner.rb +7 -3
  9. data/deliver/lib/deliver/upload_metadata.rb +5 -1
  10. data/fastlane/lib/fastlane/actions/slather.rb +7 -0
  11. data/fastlane/lib/fastlane/version.rb +1 -1
  12. data/fastlane/swift/Deliverfile.swift +1 -1
  13. data/fastlane/swift/Fastlane.swift +8 -5
  14. data/fastlane/swift/Gymfile.swift +1 -1
  15. data/fastlane/swift/Matchfile.swift +1 -1
  16. data/fastlane/swift/Precheckfile.swift +1 -1
  17. data/fastlane/swift/Scanfile.swift +1 -1
  18. data/fastlane/swift/Screengrabfile.swift +1 -1
  19. data/fastlane/swift/Snapshotfile.swift +1 -1
  20. data/{fastlane/lib/fastlane/actions/.hockey.rb.swp → frameit/lib/frameit/.editor.rb.swp} +0 -0
  21. data/spaceship/lib/spaceship/{connect_api/.DS_Store → .DS_Store} +0 -0
  22. data/spaceship/lib/spaceship/connect_api.rb +1 -0
  23. data/{fastlane/lib/fastlane/actions/.slack.rb.swp → spaceship/lib/spaceship/connect_api/.file_uploader.rb.swp} +0 -0
  24. data/spaceship/lib/spaceship/connect_api/models/.app_screenshot.rb.swp +0 -0
  25. data/spaceship/lib/spaceship/connect_api/models/app.rb +3 -3
  26. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +24 -1
  27. data/spaceship/lib/spaceship/connect_api/models/app_preview.rb +3 -2
  28. data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +31 -2
  29. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +24 -2
  30. data/spaceship/lib/spaceship/connect_api/models/sandbox_tester.rb +64 -0
  31. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +45 -0
  32. metadata +32 -28
  33. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8d3237fc06a48b208196d7032e411bd13b963d7c26ddddbf0202e48f53fbd5c8
4
- data.tar.gz: db3869ebbf2d643634ef331898b3432b431fb01da909d3dac694d79cc0b4724d
3
+ metadata.gz: 87ea2530852ddd4a16e80f9935752a54ce909b00d0c13960f5c1d57b41e40891
4
+ data.tar.gz: 126a9a64389074d2f34fde46baf7687574e91f9090f1d318f4583552d642e847
5
5
  SHA512:
6
- metadata.gz: 7f17b8ef0ec7d70e3600ce0d3d9080083c16f347db7dd5d04b21a8c80552bc96ab07358f08a1e4369fb37e348bcef09ffdef5415c715128fe0b7b89d1cbb2b5a
7
- data.tar.gz: 30f46c293961f91d1d0ab85cfb6d06cf783b25c13e0ea307059013f20a906c349bbcda19e3e445ad20cfe0576d2c750f54ffef791f3c0c8c7a206ed23929134c
6
+ metadata.gz: f8b50d9557dbd71db173be7d854bc511f161f00e7a6115571b99dee6029806b3280d6386c19b0814a7175bd486f3fa46e0d9786a316102a0816c55e4315a5da5
7
+ data.tar.gz: 6c86f8a577d56a9a859a94765f51704ab80b2003facfb9b4baf355f693012d3a9b5f02def5b25fefa41750bb6bc8a1813d8a9faf73b19f541b1c4af626249fbf
data/README.md CHANGED
@@ -34,11 +34,17 @@ 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='maksym-grebenets'>
38
- <a href='https://github.com/mgrebenets'>
39
- <img src='https://github.com/mgrebenets.png?size=140'>
37
+ <td id='max-ott'>
38
+ <a href='https://github.com/max-ott'>
39
+ <img src='https://github.com/max-ott.png?size=140'>
40
40
  </a>
41
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
41
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
42
+ </td>
43
+ <td id='jan-piotrowski'>
44
+ <a href='https://github.com/janpio'>
45
+ <img src='https://github.com/janpio.png?size=140'>
46
+ </a>
47
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
42
48
  </td>
43
49
  <td id='jérôme-lacoste'>
44
50
  <a href='https://github.com/lacostej'>
@@ -52,31 +58,19 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
52
58
  </a>
53
59
  <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
54
60
  </td>
55
- <td id='max-ott'>
56
- <a href='https://github.com/max-ott'>
57
- <img src='https://github.com/max-ott.png?size=140'>
58
- </a>
59
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
60
- </td>
61
- <td id='helmut-januschka'>
62
- <a href='https://github.com/hjanuschka'>
63
- <img src='https://github.com/hjanuschka.png?size=140'>
61
+ <td id='andrew-mcburney'>
62
+ <a href='https://github.com/armcburney'>
63
+ <img src='https://github.com/armcburney.png?size=140'>
64
64
  </a>
65
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
65
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
66
66
  </td>
67
67
  </tr>
68
68
  <tr>
69
- <td id='kohki-miki'>
70
- <a href='https://github.com/giginet'>
71
- <img src='https://github.com/giginet.png?size=140'>
72
- </a>
73
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
74
- </td>
75
- <td id='matthew-ellis'>
76
- <a href='https://github.com/matthewellis'>
77
- <img src='https://github.com/matthewellis.png?size=140'>
69
+ <td id='manu-wallner'>
70
+ <a href='https://github.com/milch'>
71
+ <img src='https://github.com/milch.png?size=140'>
78
72
  </a>
79
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
73
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
80
74
  </td>
81
75
  <td id='danielle-tomlinson'>
82
76
  <a href='https://github.com/endocrimes'>
@@ -84,18 +78,24 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
84
78
  </a>
85
79
  <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
86
80
  </td>
87
- <td id='andrew-mcburney'>
88
- <a href='https://github.com/armcburney'>
89
- <img src='https://github.com/armcburney.png?size=140'>
90
- </a>
91
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
92
- </td>
93
81
  <td id='fumiya-nakamura'>
94
82
  <a href='https://github.com/nafu'>
95
83
  <img src='https://github.com/nafu.png?size=140'>
96
84
  </a>
97
85
  <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
98
86
  </td>
87
+ <td id='jimmy-dee'>
88
+ <a href='https://github.com/jdee'>
89
+ <img src='https://github.com/jdee.png?size=140'>
90
+ </a>
91
+ <h4 align='center'>Jimmy Dee</h4>
92
+ </td>
93
+ <td id='joshua-liebowitz'>
94
+ <a href='https://github.com/taquitos'>
95
+ <img src='https://github.com/taquitos.png?size=140'>
96
+ </a>
97
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
98
+ </td>
99
99
  </tr>
100
100
  <tr>
101
101
  <td id='aaron-brager'>
@@ -104,11 +104,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
104
104
  </a>
105
105
  <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
106
106
  </td>
107
- <td id='manu-wallner'>
108
- <a href='https://github.com/milch'>
109
- <img src='https://github.com/milch.png?size=140'>
107
+ <td id='helmut-januschka'>
108
+ <a href='https://github.com/hjanuschka'>
109
+ <img src='https://github.com/hjanuschka.png?size=140'>
110
110
  </a>
111
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
111
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
112
+ </td>
113
+ <td id='josh-holtz'>
114
+ <a href='https://github.com/joshdholtz'>
115
+ <img src='https://github.com/joshdholtz.png?size=140'>
116
+ </a>
117
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
112
118
  </td>
113
119
  <td id='jorge-revuelta-h'>
114
120
  <a href='https://github.com/minuscorp'>
@@ -116,63 +122,57 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
116
122
  </a>
117
123
  <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
118
124
  </td>
119
- <td id='felix-krause'>
120
- <a href='https://github.com/KrauseFx'>
121
- <img src='https://github.com/KrauseFx.png?size=140'>
122
- </a>
123
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
124
- </td>
125
- <td id='josh-holtz'>
126
- <a href='https://github.com/joshdholtz'>
127
- <img src='https://github.com/joshdholtz.png?size=140'>
125
+ <td id='maksym-grebenets'>
126
+ <a href='https://github.com/mgrebenets'>
127
+ <img src='https://github.com/mgrebenets.png?size=140'>
128
128
  </a>
129
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
129
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
130
130
  </td>
131
131
  </tr>
132
132
  <tr>
133
- <td id='luka-mirosevic'>
134
- <a href='https://github.com/lmirosevic'>
135
- <img src='https://github.com/lmirosevic.png?size=140'>
133
+ <td id='olivier-halligon'>
134
+ <a href='https://github.com/AliSoftware'>
135
+ <img src='https://github.com/AliSoftware.png?size=140'>
136
136
  </a>
137
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
137
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
138
138
  </td>
139
- <td id='iulian-onofrei'>
140
- <a href='https://github.com/revolter'>
141
- <img src='https://github.com/revolter.png?size=140'>
139
+ <td id='matthew-ellis'>
140
+ <a href='https://github.com/matthewellis'>
141
+ <img src='https://github.com/matthewellis.png?size=140'>
142
142
  </a>
143
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
143
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
144
144
  </td>
145
- <td id='joshua-liebowitz'>
146
- <a href='https://github.com/taquitos'>
147
- <img src='https://github.com/taquitos.png?size=140'>
145
+ <td id='daniel-jankowski'>
146
+ <a href='https://github.com/mollyIV'>
147
+ <img src='https://github.com/mollyIV.png?size=140'>
148
148
  </a>
149
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
149
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
150
150
  </td>
151
- <td id='jimmy-dee'>
152
- <a href='https://github.com/jdee'>
153
- <img src='https://github.com/jdee.png?size=140'>
151
+ <td id='kohki-miki'>
152
+ <a href='https://github.com/giginet'>
153
+ <img src='https://github.com/giginet.png?size=140'>
154
154
  </a>
155
- <h4 align='center'>Jimmy Dee</h4>
155
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
156
156
  </td>
157
- <td id='jan-piotrowski'>
158
- <a href='https://github.com/janpio'>
159
- <img src='https://github.com/janpio.png?size=140'>
157
+ <td id='felix-krause'>
158
+ <a href='https://github.com/KrauseFx'>
159
+ <img src='https://github.com/KrauseFx.png?size=140'>
160
160
  </a>
161
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
161
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
162
162
  </td>
163
163
  </tr>
164
164
  <tr>
165
- <td id='daniel-jankowski'>
166
- <a href='https://github.com/mollyIV'>
167
- <img src='https://github.com/mollyIV.png?size=140'>
165
+ <td id='luka-mirosevic'>
166
+ <a href='https://github.com/lmirosevic'>
167
+ <img src='https://github.com/lmirosevic.png?size=140'>
168
168
  </a>
169
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
169
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
170
170
  </td>
171
- <td id='olivier-halligon'>
172
- <a href='https://github.com/AliSoftware'>
173
- <img src='https://github.com/AliSoftware.png?size=140'>
171
+ <td id='iulian-onofrei'>
172
+ <a href='https://github.com/revolter'>
173
+ <img src='https://github.com/revolter.png?size=140'>
174
174
  </a>
175
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
175
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
176
176
  </td>
177
177
  </table>
178
178
 
@@ -34,6 +34,11 @@ module Deliver
34
34
 
35
35
  def run
36
36
  verify_version if options[:app_version].to_s.length > 0 && !options[:skip_app_version_update]
37
+
38
+ # Rejecting before upload meta
39
+ # Screenshots can not be update/deleted if in waiting for review
40
+ reject_version_if_possible if options[:reject_if_possible]
41
+
37
42
  upload_metadata
38
43
 
39
44
  has_binary = (options[:ipa] || options[:pkg])
@@ -43,8 +48,6 @@ module Deliver
43
48
 
44
49
  UI.success("Finished the upload to App Store Connect") unless options[:skip_binary_upload]
45
50
 
46
- reject_version_if_possible if options[:reject_if_possible]
47
-
48
51
  precheck_success = precheck_app
49
52
  submit_for_review if options[:submit_for_review] && precheck_success
50
53
  end
@@ -163,7 +166,8 @@ module Deliver
163
166
  app_id = legacy_app.apple_id
164
167
  app = Spaceship::ConnectAPI::App.get(app_id: app_id)
165
168
 
166
- if app.reject_version_if_possible!
169
+ platform = Spaceship::ConnectAPI::Platform.map(options[:platform])
170
+ if app.reject_version_if_possible!(platform: platform)
167
171
  UI.success("Successfully rejected previous version!")
168
172
  end
169
173
  end
@@ -330,7 +330,11 @@ module Deliver
330
330
  seconds_in_hour = 60 * 60
331
331
  time_in_s_to_hour = (time_in_s / seconds_in_hour).to_i * seconds_in_hour
332
332
 
333
- return Time.at(time_in_s_to_hour).strftime("%Y-%m-%dT%H:%M:%S%:z")
333
+ # Remove minute offset if timezone has minute offset
334
+ minute_offset = Time.now.utc_offset % seconds_in_hour
335
+ time_in_s_to_hour -= minute_offset
336
+
337
+ return Time.at(time_in_s_to_hour).utc.strftime("%Y-%m-%dT%H:%M:%S%:z")
334
338
  end
335
339
 
336
340
  # If the user is using the 'default' language, then assign values where they are needed
@@ -16,6 +16,7 @@ module Fastlane
16
16
  cobertura_xml: '--cobertura-xml',
17
17
  sonarqube_xml: '--sonarqube-xml',
18
18
  llvm_cov: '--llvm-cov',
19
+ json: '--json',
19
20
  html: '--html',
20
21
  show: '--show',
21
22
 
@@ -225,6 +226,12 @@ module Fastlane
225
226
  description: "Tell slather that it should output results as llvm-cov show format",
226
227
  is_string: false,
227
228
  optional: true),
229
+ FastlaneCore::ConfigItem.new(key: :json,
230
+ env_name: "FL_SLATHER_JSON_ENABLED",
231
+ description: "Tell slather that it should output results as static JSON report",
232
+ is_string: false,
233
+ type: Boolean,
234
+ optional: true),
228
235
  FastlaneCore::ConfigItem.new(key: :html,
229
236
  env_name: "FL_SLATHER_HTML_ENABLED",
230
237
  description: "Tell slather that it should output results as static HTML pages",
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.150.1'.freeze
2
+ VERSION = '2.150.2'.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.150.1
21
+ // Generated with fastlane 2.150.2
@@ -2799,7 +2799,7 @@ func downloadDsyms(username: String,
2799
2799
  func downloadFromPlayStore(packageName: String,
2800
2800
  versionName: String? = nil,
2801
2801
  track: String = "production",
2802
- metadataPath: String = "./metadata",
2802
+ metadataPath: String? = nil,
2803
2803
  key: String? = nil,
2804
2804
  issuer: String? = nil,
2805
2805
  jsonKey: String? = nil,
@@ -6757,6 +6757,7 @@ func slackTrainStart(distance: Int = 5,
6757
6757
  - coberturaXml: Tell slather that it should output results as Cobertura XML format
6758
6758
  - sonarqubeXml: Tell slather that it should output results as SonarQube Generic XML format
6759
6759
  - llvmCov: Tell slather that it should output results as llvm-cov show format
6760
+ - json: Tell slather that it should output results as static JSON report
6760
6761
  - html: Tell slather that it should output results as static HTML pages
6761
6762
  - show: Tell slather that it should open static html pages automatically
6762
6763
  - sourceDirectory: Tell slather the location of your source files
@@ -6791,6 +6792,7 @@ func slather(buildDirectory: String? = nil,
6791
6792
  coberturaXml: Bool? = nil,
6792
6793
  sonarqubeXml: Bool? = nil,
6793
6794
  llvmCov: Any? = nil,
6795
+ json: Bool? = nil,
6794
6796
  html: Bool? = nil,
6795
6797
  show: Bool = false,
6796
6798
  sourceDirectory: String? = nil,
@@ -6821,6 +6823,7 @@ func slather(buildDirectory: String? = nil,
6821
6823
  RubyCommand.Argument(name: "cobertura_xml", value: coberturaXml),
6822
6824
  RubyCommand.Argument(name: "sonarqube_xml", value: sonarqubeXml),
6823
6825
  RubyCommand.Argument(name: "llvm_cov", value: llvmCov),
6826
+ RubyCommand.Argument(name: "json", value: json),
6824
6827
  RubyCommand.Argument(name: "html", value: html),
6825
6828
  RubyCommand.Argument(name: "show", value: show),
6826
6829
  RubyCommand.Argument(name: "source_directory", value: sourceDirectory),
@@ -7199,7 +7202,7 @@ func supply(packageName: String,
7199
7202
  releaseStatus: String = "completed",
7200
7203
  track: String = "production",
7201
7204
  rollout: String? = nil,
7202
- metadataPath: String = "./metadata",
7205
+ metadataPath: String? = nil,
7203
7206
  key: String? = nil,
7204
7207
  issuer: String? = nil,
7205
7208
  jsonKey: String? = nil,
@@ -8308,7 +8311,7 @@ func uploadToPlayStore(packageName: String,
8308
8311
  releaseStatus: String = "completed",
8309
8312
  track: String = "production",
8310
8313
  rollout: String? = nil,
8311
- metadataPath: String = "./metadata",
8314
+ metadataPath: String? = nil,
8312
8315
  key: String? = nil,
8313
8316
  issuer: String? = nil,
8314
8317
  jsonKey: String? = nil,
@@ -8818,7 +8821,7 @@ func xcov(workspace: String? = nil,
8818
8821
  coverallsServiceJobId: String? = nil,
8819
8822
  coverallsRepoToken: String? = nil,
8820
8823
  xcconfig: String? = nil,
8821
- ideFoundationPath: String = "/Applications/Xcode.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
8824
+ ideFoundationPath: String = "/Applications/Xcode-11.5.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
8822
8825
  legacySupport: Bool = false) {
8823
8826
  let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
8824
8827
  RubyCommand.Argument(name: "project", value: project),
@@ -8963,4 +8966,4 @@ let snapshotfile: Snapshotfile = Snapshotfile()
8963
8966
 
8964
8967
  // Please don't remove the lines below
8965
8968
  // They are used to detect outdated files
8966
- // FastlaneRunnerAPIVersion [0.9.72]
8969
+ // FastlaneRunnerAPIVersion [0.9.73]
@@ -18,4 +18,4 @@ class Gymfile: GymfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.150.1
21
+ // Generated with fastlane 2.150.2
@@ -18,4 +18,4 @@ class Matchfile: MatchfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.150.1
21
+ // Generated with fastlane 2.150.2
@@ -18,4 +18,4 @@ class Precheckfile: PrecheckfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.150.1
21
+ // Generated with fastlane 2.150.2
@@ -18,4 +18,4 @@ class Scanfile: ScanfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.150.1
21
+ // Generated with fastlane 2.150.2
@@ -18,4 +18,4 @@ class Screengrabfile: ScreengrabfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.150.1
21
+ // Generated with fastlane 2.150.2
@@ -18,4 +18,4 @@ class Snapshotfile: SnapshotfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.150.1
21
+ // Generated with fastlane 2.150.2
@@ -50,6 +50,7 @@ require 'spaceship/connect_api/models/app_store_version_phased_release'
50
50
  require 'spaceship/connect_api/models/app_store_version'
51
51
  require 'spaceship/connect_api/models/idfa_declaration'
52
52
  require 'spaceship/connect_api/models/reset_ratings_request'
53
+ require 'spaceship/connect_api/models/sandbox_tester'
53
54
  require 'spaceship/connect_api/models/territory'
54
55
 
55
56
  module Spaceship
@@ -78,7 +78,7 @@ module Spaceship
78
78
  # App Info
79
79
  #
80
80
 
81
- def fetch_edit_app_info
81
+ def fetch_edit_app_info(includes: Spaceship::ConnectAPI::AppInfo::ESSENTIAL_INCLUDES)
82
82
  states = [
83
83
  Spaceship::ConnectAPI::AppInfo::AppStoreState::PREPARE_FOR_SUBMISSION,
84
84
  Spaceship::ConnectAPI::AppInfo::AppStoreState::DEVELOPER_REJECTED,
@@ -89,7 +89,7 @@ module Spaceship
89
89
  ]
90
90
 
91
91
  filter = { app: id }
92
- resp = Spaceship::ConnectAPI.get_app_infos(filter: filter)
92
+ resp = Spaceship::ConnectAPI.get_app_infos(filter: filter, includes: includes)
93
93
  return resp.to_models.select do |model|
94
94
  states.include?(model.app_store_state)
95
95
  end.first
@@ -110,7 +110,7 @@ module Spaceship
110
110
  # App Store Versions
111
111
  #
112
112
 
113
- def reject_version_if_possible!
113
+ def reject_version_if_possible!(platform: nil)
114
114
  platform ||= Spaceship::ConnectAPI::Platform::IOS
115
115
  filter = {
116
116
  appStoreState: [
@@ -9,6 +9,13 @@ module Spaceship
9
9
  attr_accessor :brazil_age_rating
10
10
  attr_accessor :kids_age_band
11
11
 
12
+ attr_accessor :primary_category
13
+ attr_accessor :primary_subcategory_one
14
+ attr_accessor :primary_subcategory_two
15
+ attr_accessor :secondary_category
16
+ attr_accessor :secondary_subcategory_one
17
+ attr_accessor :secondary_subcategory_two
18
+
12
19
  module AppStoreState
13
20
  READY_FOR_SALE = "READY_FOR_SALE"
14
21
  PROCESSING_FOR_APP_STORE = "PROCESSING_FOR_APP_STORE"
@@ -30,9 +37,25 @@ module Spaceship
30
37
  "appStoreState" => "app_store_state",
31
38
  "appStoreAgeRating" => "app_store_age_rating",
32
39
  "brazilAgeRating" => "brazil_age_rating",
33
- "kidsAgeBand" => "kids_age_band"
40
+ "kidsAgeBand" => "kids_age_band",
41
+
42
+ "primaryCategory" => "primary_category",
43
+ "primarySubcategoryOne" => "primary_subcategory_one",
44
+ "primarySubcategoryTwo" => "primary_subcategory_two",
45
+ "secondaryCategory" => "secondary_category",
46
+ "secondarySubcategoryOne" => "secondary_subcategory_one",
47
+ "secondarySubcategoryTwo" => "secondary_subcategory_two"
34
48
  })
35
49
 
50
+ ESSENTIAL_INCLUDES = [
51
+ "primaryCategory",
52
+ "primarySubcategoryOne",
53
+ "primarySubcategoryTwo",
54
+ "secondaryCategory",
55
+ "secondarySubcategoryOne",
56
+ "secondarySubcategoryTwo"
57
+ ].join(",")
58
+
36
59
  def self.type
37
60
  return "appInfos"
38
61
  end
@@ -54,7 +54,7 @@ module Spaceship
54
54
  # @param app_preview_set_id The AppPreviewSet id
55
55
  # @param path The path of the file
56
56
  # @param frame_time_code The time code for the preview still frame (ex: "00:00:07:01")
57
- def self.create(app_preview_set_id: nil, path: nil, frame_time_code: nil)
57
+ def self.create(app_preview_set_id: nil, path: nil, wait_for_processing: true, frame_time_code: nil)
58
58
  require 'faraday'
59
59
 
60
60
  filename = File.basename(path)
@@ -95,7 +95,8 @@ module Spaceship
95
95
  end
96
96
 
97
97
  # Poll for video processing completion to set still frame time
98
- unless frame_time_code.nil?
98
+ wait_for_processing = true unless frame_time_code.nil?
99
+ if wait_for_processing
99
100
  loop do
100
101
  unless preview.video_url.nil?
101
102
  puts("Preview processing complete!") if Spaceship::Globals.verbose?
@@ -63,8 +63,37 @@ module Spaceship
63
63
  return resp.to_models
64
64
  end
65
65
 
66
- def upload_preview(path: nil, frame_time_code: nil)
67
- return Spaceship::ConnectAPI::AppPreview.create(app_preview_set_id: id, path: path, frame_time_code: frame_time_code)
66
+ def self.get(app_preview_set_id: nil, includes: "appPreviews")
67
+ return Spaceship::ConnectAPI.get_app_preview_set(app_preview_set_id: app_preview_set_id, filter: nil, includes: includes, limit: nil, sort: nil).first
68
+ end
69
+
70
+ def upload_preview(path: nil, wait_for_processing: true, position: nil, frame_time_code: nil)
71
+ # Upload preview
72
+ preview = Spaceship::ConnectAPI::AppPreview.create(app_preview_set_id: id, path: path, wait_for_processing: wait_for_processing, frame_time_code: frame_time_code)
73
+
74
+ # Reposition (if specified)
75
+ unless position.nil?
76
+ # Get all app preview ids
77
+ set = AppPreviewSet.get(app_preview_set_id: id)
78
+ app_preview_ids = set.app_previews.map(&:id)
79
+
80
+ # Remove new uploaded preview
81
+ app_preview_ids.delete(preview.id)
82
+
83
+ # Insert preview at specified position
84
+ app_preview_ids = app_preview_ids.insert(position, preview.id).compact
85
+
86
+ # Reorder previews
87
+ reorder_previews(app_preview_ids: app_preview_ids)
88
+ end
89
+
90
+ return preview
91
+ end
92
+
93
+ def reorder_previews(app_preview_ids: nil)
94
+ Spaceship::ConnectAPI.patch_app_preview_set_previews(app_preview_set_id: id, app_preview_ids: app_preview_ids)
95
+
96
+ return Spaceship::ConnectAPI.get_app_preview_set(app_preview_set_id: id, includes: "appPreviews").first
68
97
  end
69
98
  end
70
99
  end
@@ -117,8 +117,30 @@ module Spaceship
117
117
  return resp.to_models
118
118
  end
119
119
 
120
- def upload_screenshot(path: nil, wait_for_processing: true)
121
- return Spaceship::ConnectAPI::AppScreenshot.create(app_screenshot_set_id: id, path: path, wait_for_processing: wait_for_processing)
120
+ def self.get(app_screenshot_set_id: nil, includes: "appScreenshots")
121
+ return Spaceship::ConnectAPI.get_app_screenshot_set(app_screenshot_set_id: app_screenshot_set_id, filter: nil, includes: includes, limit: nil, sort: nil).first
122
+ end
123
+
124
+ def upload_screenshot(path: nil, wait_for_processing: true, position: nil)
125
+ screenshot = Spaceship::ConnectAPI::AppScreenshot.create(app_screenshot_set_id: id, path: path, wait_for_processing: wait_for_processing)
126
+
127
+ # Reposition (if specified)
128
+ unless position.nil?
129
+ # Get all app preview ids
130
+ set = AppScreenshotSet.get(app_screenshot_set_id: id)
131
+ app_screenshot_ids = set.app_screenshots.map(&:id)
132
+
133
+ # Remove new uploaded screenshot
134
+ app_screenshot_ids.delete(screenshot.id)
135
+
136
+ # Insert screenshot at specified position
137
+ app_screenshot_ids = app_screenshot_ids.insert(position, screenshot.id).compact
138
+
139
+ # Reorder screenshots
140
+ reorder_screenshots(app_screenshot_ids: app_screenshot_ids)
141
+ end
142
+
143
+ return screenshot
122
144
  end
123
145
 
124
146
  def reorder_screenshots(app_screenshot_ids: nil)
@@ -0,0 +1,64 @@
1
+ require_relative '../model'
2
+ module Spaceship
3
+ class ConnectAPI
4
+ class SandboxTester
5
+ include Spaceship::ConnectAPI::Model
6
+
7
+ attr_accessor :first_name
8
+ attr_accessor :last_name
9
+ attr_accessor :email
10
+ attr_accessor :password
11
+ attr_accessor :confirm_password
12
+ attr_accessor :secret_question
13
+ attr_accessor :secret_answer
14
+ attr_accessor :birth_date # 1980-03-01
15
+ attr_accessor :app_store_territory
16
+ attr_accessor :apple_pay_compatible
17
+
18
+ attr_mapping({
19
+ "firstName" => "first_name",
20
+ "lastName" => "last_name",
21
+ "email" => "email",
22
+ "password" => "password",
23
+ "confirmPassword" => "confirm_password",
24
+ "secretQuestion" => "secret_question",
25
+ "secretAnswer" => "secret_answer",
26
+ "birthDate" => "birth_date",
27
+ "appStoreTerritory" => "app_store_territory",
28
+ "applePayCompatible" => "apple_pay_compatible"
29
+ })
30
+
31
+ def self.type
32
+ return "sandboxTesters"
33
+ end
34
+
35
+ #
36
+ # API
37
+ #
38
+
39
+ def self.all(filter: {}, includes: nil, limit: 2000, sort: nil)
40
+ resps = Spaceship::ConnectAPI.get_sandbox_testers(filter: filter, includes: includes).all_pages
41
+ return resps.flat_map(&:to_models)
42
+ end
43
+
44
+ def self.create(first_name: nil, last_name: nil, email: nil, password: nil, confirm_password: nil, secret_question: nil, secret_answer: nil, birth_date: nil, app_store_territory: nil)
45
+ attributes = {
46
+ firstName: first_name,
47
+ lastName: last_name,
48
+ email: email,
49
+ password: password,
50
+ confirmPassword: confirm_password,
51
+ secretQuestion: secret_question,
52
+ secretAnswer: secret_answer,
53
+ birthDate: birth_date,
54
+ appStoreTerritory: app_store_territory
55
+ }
56
+ return Spaceship::ConnectAPI.post_sandbox_tester(attributes: attributes).first
57
+ end
58
+
59
+ def delete!
60
+ Spaceship::ConnectAPI.delete_sandbox_tester(sandbox_tester_id: id)
61
+ end
62
+ end
63
+ end
64
+ end
@@ -241,6 +241,11 @@ module Spaceship
241
241
  Client.instance.get("appPreviewSets", params)
242
242
  end
243
243
 
244
+ def get_app_preview_set(app_preview_set_id: nil, filter: {}, includes: nil, limit: nil, sort: nil)
245
+ params = Client.instance.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
246
+ Client.instance.get("appPreviewSets/#{app_preview_set_id}", params)
247
+ end
248
+
244
249
  def post_app_preview_set(app_store_version_localization_id: nil, attributes: {})
245
250
  body = {
246
251
  data: {
@@ -260,6 +265,21 @@ module Spaceship
260
265
  Client.instance.post("appPreviewSets", body)
261
266
  end
262
267
 
268
+ def patch_app_preview_set_previews(app_preview_set_id: nil, app_preview_ids: nil)
269
+ app_preview_ids ||= []
270
+
271
+ body = {
272
+ data: app_preview_ids.map do |app_preview_id|
273
+ {
274
+ type: "appPreviews",
275
+ id: app_preview_id
276
+ }
277
+ end
278
+ }
279
+
280
+ Client.instance.patch("appPreviewSets/#{app_preview_set_id}/relationships/appPreviews", body)
281
+ end
282
+
263
283
  #
264
284
  # appPrices
265
285
  #
@@ -846,6 +866,31 @@ module Spaceship
846
866
  Client.instance.delete("idfaDeclarations/#{idfa_declaration_id}", params)
847
867
  end
848
868
 
869
+ #
870
+ # sandboxTesters
871
+ #
872
+
873
+ def get_sandbox_testers(filter: nil, includes: nil, limit: nil, sort: nil)
874
+ params = Client.instance.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
875
+ Client.instance.get("sandboxTesters", params)
876
+ end
877
+
878
+ def post_sandbox_tester(attributes: {})
879
+ body = {
880
+ data: {
881
+ type: "sandboxTesters",
882
+ attributes: attributes
883
+ }
884
+ }
885
+
886
+ Client.instance.post("sandboxTesters", body)
887
+ end
888
+
889
+ def delete_sandbox_tester(sandbox_tester_id: nil)
890
+ params = Client.instance.build_params(filter: nil, includes: nil, limit: nil, sort: nil)
891
+ Client.instance.delete("sandboxTesters/#{sandbox_tester_id}", params)
892
+ end
893
+
849
894
  #
850
895
  # territories
851
896
  #
metadata CHANGED
@@ -1,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.150.1
4
+ version: 2.150.2
5
5
  platform: ruby
6
6
  authors:
7
- - Joshua Liebowitz
8
- - Luka Mirosevic
9
- - Kohki Miki
10
- - Aaron Brager
11
- - Matthew Ellis
12
- - Jimmy Dee
13
- - Jorge Revuelta H
14
- - Manu Wallner
15
- - Josh Holtz
16
7
  - Fumiya Nakamura
17
- - Maksym Grebenets
8
+ - Jimmy Dee
9
+ - Matthew Ellis
18
10
  - Jan Piotrowski
19
- - Daniel Jankowski
20
- - Olivier Halligon
21
- - Max Ott
22
11
  - Felix Krause
23
- - Iulian Onofrei
24
- - Danielle Tomlinson
12
+ - Luka Mirosevic
25
13
  - Jérôme Lacoste
26
- - Andrew McBurney
14
+ - Daniel Jankowski
15
+ - Danielle Tomlinson
16
+ - Maksym Grebenets
17
+ - Jorge Revuelta H
18
+ - Aaron Brager
27
19
  - Helmut Januschka
20
+ - Joshua Liebowitz
21
+ - Manu Wallner
22
+ - Max Ott
23
+ - Andrew McBurney
28
24
  - Stefan Natchev
29
- autorequire:
25
+ - Josh Holtz
26
+ - Kohki Miki
27
+ - Olivier Halligon
28
+ - Iulian Onofrei
29
+ autorequire:
30
30
  bindir: bin
31
31
  cert_chain: []
32
- date: 2020-07-02 00:00:00.000000000 Z
32
+ date: 2020-07-04 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: slack-notifier
@@ -977,6 +977,11 @@ files:
977
977
  - deliver/lib/assets/ScreenshotsHelp
978
978
  - deliver/lib/assets/summary.html.erb
979
979
  - deliver/lib/deliver.rb
980
+ - deliver/lib/deliver/.commands_generator.rb.swp
981
+ - deliver/lib/deliver/.download_screenshots.rb.swp
982
+ - deliver/lib/deliver/.submit_for_review.rb.swp
983
+ - deliver/lib/deliver/.upload_metadata.rb.swp
984
+ - deliver/lib/deliver/.upload_screenshots.rb.swp
980
985
  - deliver/lib/deliver/app_screenshot.rb
981
986
  - deliver/lib/deliver/commands_generator.rb
982
987
  - deliver/lib/deliver/detect_values.rb
@@ -1013,9 +1018,6 @@ files:
1013
1018
  - fastlane/lib/fastlane.rb
1014
1019
  - fastlane/lib/fastlane/action.rb
1015
1020
  - fastlane/lib/fastlane/action_collector.rb
1016
- - fastlane/lib/fastlane/actions/.hockey.rb.swp
1017
- - fastlane/lib/fastlane/actions/.slack.rb.swp
1018
- - fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp
1019
1021
  - fastlane/lib/fastlane/actions/README.md
1020
1022
  - fastlane/lib/fastlane/actions/actions_helper.rb
1021
1023
  - fastlane/lib/fastlane/actions/adb.rb
@@ -1352,7 +1354,6 @@ files:
1352
1354
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj
1353
1355
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
1354
1356
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
1355
- - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate
1356
1357
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme
1357
1358
  - fastlane/swift/FastlaneSwiftRunner/README.txt
1358
1359
  - fastlane/swift/Gymfile.swift
@@ -1439,6 +1440,7 @@ files:
1439
1440
  - frameit/README.md
1440
1441
  - frameit/lib/assets/empty.png
1441
1442
  - frameit/lib/frameit.rb
1443
+ - frameit/lib/frameit/.editor.rb.swp
1442
1444
  - frameit/lib/frameit/commands_generator.rb
1443
1445
  - frameit/lib/frameit/config_parser.rb
1444
1446
  - frameit/lib/frameit/dependency_checker.rb
@@ -1509,7 +1511,6 @@ files:
1509
1511
  - pem/lib/pem/options.rb
1510
1512
  - pilot/README.md
1511
1513
  - pilot/lib/pilot.rb
1512
- - pilot/lib/pilot/.manager.rb.swp
1513
1514
  - pilot/lib/pilot/build_manager.rb
1514
1515
  - pilot/lib/pilot/commands_generator.rb
1515
1516
  - pilot/lib/pilot/features.rb
@@ -1637,15 +1638,17 @@ files:
1637
1638
  - spaceship/lib/assets/languageMapping.json
1638
1639
  - spaceship/lib/assets/languageMappingReadable.json
1639
1640
  - spaceship/lib/spaceship.rb
1641
+ - spaceship/lib/spaceship/.DS_Store
1640
1642
  - spaceship/lib/spaceship/babosa_fix.rb
1641
1643
  - spaceship/lib/spaceship/base.rb
1642
1644
  - spaceship/lib/spaceship/client.rb
1643
1645
  - spaceship/lib/spaceship/commands_generator.rb
1644
1646
  - spaceship/lib/spaceship/connect_api.rb
1645
- - spaceship/lib/spaceship/connect_api/.DS_Store
1647
+ - spaceship/lib/spaceship/connect_api/.file_uploader.rb.swp
1646
1648
  - spaceship/lib/spaceship/connect_api/client.rb
1647
1649
  - spaceship/lib/spaceship/connect_api/file_uploader.rb
1648
1650
  - spaceship/lib/spaceship/connect_api/model.rb
1651
+ - spaceship/lib/spaceship/connect_api/models/.app_screenshot.rb.swp
1649
1652
  - spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb
1650
1653
  - spaceship/lib/spaceship/connect_api/models/app.rb
1651
1654
  - spaceship/lib/spaceship/connect_api/models/app_category.rb
@@ -1684,6 +1687,7 @@ files:
1684
1687
  - spaceship/lib/spaceship/connect_api/models/pre_release_version.rb
1685
1688
  - spaceship/lib/spaceship/connect_api/models/profile.rb
1686
1689
  - spaceship/lib/spaceship/connect_api/models/reset_ratings_request.rb
1690
+ - spaceship/lib/spaceship/connect_api/models/sandbox_tester.rb
1687
1691
  - spaceship/lib/spaceship/connect_api/models/territory.rb
1688
1692
  - spaceship/lib/spaceship/connect_api/models/user.rb
1689
1693
  - spaceship/lib/spaceship/connect_api/provisioning/client.rb
@@ -1814,7 +1818,7 @@ licenses:
1814
1818
  - MIT
1815
1819
  metadata:
1816
1820
  docs_url: https://docs.fastlane.tools
1817
- post_install_message:
1821
+ post_install_message:
1818
1822
  rdoc_options: []
1819
1823
  require_paths:
1820
1824
  - credentials_manager/lib
@@ -1846,8 +1850,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1846
1850
  - !ruby/object:Gem::Version
1847
1851
  version: '0'
1848
1852
  requirements: []
1849
- rubygems_version: 3.0.3
1850
- signing_key:
1853
+ rubygems_version: 3.0.6
1854
+ signing_key:
1851
1855
  specification_version: 4
1852
1856
  summary: The easiest way to automate beta deployments and releases for your iOS and
1853
1857
  Android apps