fastlane 2.149.0 → 2.150.0.rc4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +82 -82
  3. data/deliver/lib/deliver.rb +0 -1
  4. data/deliver/lib/deliver/app_screenshot.rb +26 -25
  5. data/deliver/lib/deliver/options.rb +6 -11
  6. data/deliver/lib/deliver/runner.rb +7 -21
  7. data/deliver/lib/deliver/setup.rb +5 -30
  8. data/deliver/lib/deliver/submit_for_review.rb +155 -90
  9. data/deliver/lib/deliver/upload_metadata.rb +355 -143
  10. data/deliver/lib/deliver/upload_price_tier.rb +22 -8
  11. data/deliver/lib/deliver/upload_screenshots.rb +134 -39
  12. data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +1 -1
  13. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +77 -96
  14. data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +3 -2
  15. data/fastlane/lib/fastlane/actions/download_dsyms.rb +7 -1
  16. data/fastlane/lib/fastlane/actions/google_play_track_release_names.rb +74 -0
  17. data/fastlane/lib/fastlane/actions/set_changelog.rb +23 -20
  18. data/fastlane/lib/fastlane/actions/slack.rb +1 -1
  19. data/fastlane/lib/fastlane/actions/spm.rb +7 -0
  20. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +1 -32
  21. data/fastlane/lib/fastlane/lane.rb +3 -3
  22. data/fastlane/lib/fastlane/swift_fastlane_function.rb +8 -4
  23. data/fastlane/lib/fastlane/version.rb +1 -1
  24. data/fastlane/swift/ControlCommand.swift +1 -0
  25. data/fastlane/swift/Deliverfile.swift +1 -1
  26. data/fastlane/swift/Fastlane.swift +48 -12
  27. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme +3 -9
  28. data/fastlane/swift/Gymfile.swift +1 -1
  29. data/fastlane/swift/LaneFileProtocol.swift +2 -5
  30. data/fastlane/swift/Matchfile.swift +1 -1
  31. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  32. data/fastlane/swift/Precheckfile.swift +1 -1
  33. data/fastlane/swift/RubyCommand.swift +29 -6
  34. data/fastlane/swift/RubyCommandable.swift +1 -0
  35. data/fastlane/swift/Runner.swift +85 -13
  36. data/fastlane/swift/Scanfile.swift +1 -1
  37. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  38. data/fastlane/swift/Screengrabfile.swift +1 -1
  39. data/fastlane/swift/Snapshotfile.swift +1 -1
  40. data/fastlane/swift/SnapshotfileProtocol.swift +3 -3
  41. data/fastlane/swift/SocketClient.swift +76 -45
  42. data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
  43. data/fastlane/swift/SocketResponse.swift +1 -0
  44. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +1 -3
  45. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +89 -52
  46. data/fastlane_core/lib/fastlane_core/pkg_file_analyser.rb +7 -0
  47. data/fastlane_core/lib/fastlane_core/project.rb +0 -1
  48. data/frameit/lib/frameit/device_types.rb +100 -100
  49. data/produce/lib/produce/itunes_connect.rb +32 -21
  50. data/produce/lib/produce/options.rb +3 -3
  51. data/sigh/lib/assets/resign.sh +7 -7
  52. data/snapshot/lib/assets/SnapshotHelper.swift +5 -5
  53. data/snapshot/lib/assets/SnapshotHelperXcode8.swift +3 -3
  54. data/snapshot/lib/snapshot/options.rb +0 -1
  55. data/snapshot/lib/snapshot/reports_generator.rb +8 -1
  56. data/spaceship/lib/spaceship/.DS_Store +0 -0
  57. data/spaceship/lib/spaceship/client.rb +4 -3
  58. data/spaceship/lib/spaceship/connect_api.rb +25 -2
  59. data/spaceship/lib/spaceship/connect_api/client.rb +97 -31
  60. data/spaceship/lib/spaceship/connect_api/file_uploader.rb +98 -0
  61. data/spaceship/lib/spaceship/connect_api/model.rb +1 -1
  62. data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +113 -0
  63. data/spaceship/lib/spaceship/connect_api/models/app.rb +120 -3
  64. data/spaceship/lib/spaceship/connect_api/models/app_category.rb +94 -0
  65. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +67 -0
  66. data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +38 -0
  67. data/spaceship/lib/spaceship/connect_api/models/app_preview.rb +129 -0
  68. data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +71 -0
  69. data/spaceship/lib/spaceship/connect_api/models/app_price.rb +22 -0
  70. data/spaceship/lib/spaceship/connect_api/models/app_price_tier.rb +12 -0
  71. data/spaceship/lib/spaceship/connect_api/models/app_review_attachment.rb +71 -0
  72. data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +93 -0
  73. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +101 -0
  74. data/spaceship/lib/spaceship/connect_api/models/app_store_review_detail.rb +51 -0
  75. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +183 -0
  76. data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +86 -0
  77. data/spaceship/lib/spaceship/connect_api/models/app_store_version_phased_release.rb +36 -0
  78. data/spaceship/lib/spaceship/connect_api/models/app_store_version_submission.rb +26 -0
  79. data/spaceship/lib/spaceship/connect_api/models/build.rb +4 -0
  80. data/spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb +40 -0
  81. data/spaceship/lib/spaceship/connect_api/models/reset_ratings_request.rb +26 -0
  82. data/spaceship/lib/spaceship/connect_api/models/territory.rb +27 -0
  83. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +10 -3
  84. data/spaceship/lib/spaceship/connect_api/tunes/client.rb +33 -0
  85. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +841 -0
  86. data/spaceship/lib/spaceship/spaceauth_runner.rb +2 -2
  87. data/supply/lib/supply/client.rb +19 -0
  88. data/supply/lib/supply/reader.rb +16 -0
  89. metadata +44 -39
  90. data/deliver/lib/deliver/upload_assets.rb +0 -27
  91. data/fastlane/lib/assets/.s3_html_template.erb.swp +0 -0
  92. data/fastlane/lib/fastlane/actions/.hipchat.rb.swp +0 -0
  93. data/fastlane/lib/fastlane/actions/.slack.rb.swp +0 -0
  94. data/scan/lib/scan/.options.rb.swp +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e1a754f320b6a2a0f0f624fa8fd7d7b51fd0a46060a2baad5097716e3236e7ca
4
- data.tar.gz: cc01aeb35c73ac933644477ccceff7c0c2c0b11c9ef866b0bac94ebc7bf83648
3
+ metadata.gz: f736bd9272a03db4f9c52dcb3f3cbe1cc21b3f78221a8a27849a0801ad791177
4
+ data.tar.gz: 61ea559625a0a4fd290774205aecfec2754b7f7a6f4264a3775b51145fd6169e
5
5
  SHA512:
6
- metadata.gz: 253bb74d256220c9c5807c8675696930e836b2e780135d4c4d95d1dc9feb61d2049c7b713e43a3b198bbf79447c73182f9d6a34f2a4d5b92b9997bffaf15bc57
7
- data.tar.gz: f612886813a3cb594e45dfaf1bb4901cf21fc834fa1b63bf5623765314003410fac0ae7ccf5624bfd9de36a5fd2abc5207cd0c71ed379ff858905a2ba21b2e81
6
+ metadata.gz: 769baf252715d93327440d48a152c53bd5f532741f5d9118e04cc09433b1fcd654d0d68973d8c0376e979fda909f0264e6f9e61e9dd66d4d9dacc5027f4ba87b
7
+ data.tar.gz: 3ee6471846ffcdd74dc4e953822aed04fd05caf5ad03ee1f242d486a3197c66168fda158b9b417831b3221e8782b039bda4d59016653be9416c977691d24effb
data/README.md CHANGED
@@ -34,49 +34,49 @@ 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='olivier-halligon'>
38
- <a href='https://github.com/AliSoftware'>
39
- <img src='https://github.com/AliSoftware.png?size=140'>
37
+ <td id='iulian-onofrei'>
38
+ <a href='https://github.com/revolter'>
39
+ <img src='https://github.com/revolter.png?size=140'>
40
40
  </a>
41
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
41
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
42
42
  </td>
43
- <td id='jimmy-dee'>
44
- <a href='https://github.com/jdee'>
45
- <img src='https://github.com/jdee.png?size=140'>
43
+ <td id='stefan-natchev'>
44
+ <a href='https://github.com/snatchev'>
45
+ <img src='https://github.com/snatchev.png?size=140'>
46
46
  </a>
47
- <h4 align='center'>Jimmy Dee</h4>
47
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
48
48
  </td>
49
- <td id='matthew-ellis'>
50
- <a href='https://github.com/matthewellis'>
51
- <img src='https://github.com/matthewellis.png?size=140'>
49
+ <td id='joshua-liebowitz'>
50
+ <a href='https://github.com/taquitos'>
51
+ <img src='https://github.com/taquitos.png?size=140'>
52
52
  </a>
53
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
53
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
54
54
  </td>
55
- <td id='felix-krause'>
56
- <a href='https://github.com/KrauseFx'>
57
- <img src='https://github.com/KrauseFx.png?size=140'>
55
+ <td id='helmut-januschka'>
56
+ <a href='https://github.com/hjanuschka'>
57
+ <img src='https://github.com/hjanuschka.png?size=140'>
58
58
  </a>
59
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
59
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
60
60
  </td>
61
- <td id='fumiya-nakamura'>
62
- <a href='https://github.com/nafu'>
63
- <img src='https://github.com/nafu.png?size=140'>
61
+ <td id='jorge-revuelta-h'>
62
+ <a href='https://github.com/minuscorp'>
63
+ <img src='https://github.com/minuscorp.png?size=140'>
64
64
  </a>
65
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
65
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
66
66
  </td>
67
67
  </tr>
68
68
  <tr>
69
- <td id='daniel-jankowski'>
70
- <a href='https://github.com/mollyIV'>
71
- <img src='https://github.com/mollyIV.png?size=140'>
69
+ <td id='luka-mirosevic'>
70
+ <a href='https://github.com/lmirosevic'>
71
+ <img src='https://github.com/lmirosevic.png?size=140'>
72
72
  </a>
73
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
73
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
74
74
  </td>
75
- <td id='manu-wallner'>
76
- <a href='https://github.com/milch'>
77
- <img src='https://github.com/milch.png?size=140'>
75
+ <td id='danielle-tomlinson'>
76
+ <a href='https://github.com/endocrimes'>
77
+ <img src='https://github.com/endocrimes.png?size=140'>
78
78
  </a>
79
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
79
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
80
80
  </td>
81
81
  <td id='jan-piotrowski'>
82
82
  <a href='https://github.com/janpio'>
@@ -84,69 +84,63 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
84
84
  </a>
85
85
  <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
86
86
  </td>
87
- <td id='stefan-natchev'>
88
- <a href='https://github.com/snatchev'>
89
- <img src='https://github.com/snatchev.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'>
90
90
  </a>
91
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
91
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
92
92
  </td>
93
- <td id='jérôme-lacoste'>
94
- <a href='https://github.com/lacostej'>
95
- <img src='https://github.com/lacostej.png?size=140'>
93
+ <td id='olivier-halligon'>
94
+ <a href='https://github.com/AliSoftware'>
95
+ <img src='https://github.com/AliSoftware.png?size=140'>
96
96
  </a>
97
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
97
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
98
98
  </td>
99
99
  </tr>
100
100
  <tr>
101
- <td id='kohki-miki'>
102
- <a href='https://github.com/giginet'>
103
- <img src='https://github.com/giginet.png?size=140'>
101
+ <td id='jimmy-dee'>
102
+ <a href='https://github.com/jdee'>
103
+ <img src='https://github.com/jdee.png?size=140'>
104
104
  </a>
105
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
105
+ <h4 align='center'>Jimmy Dee</h4>
106
106
  </td>
107
- <td id='danielle-tomlinson'>
108
- <a href='https://github.com/endocrimes'>
109
- <img src='https://github.com/endocrimes.png?size=140'>
107
+ <td id='daniel-jankowski'>
108
+ <a href='https://github.com/mollyIV'>
109
+ <img src='https://github.com/mollyIV.png?size=140'>
110
110
  </a>
111
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
111
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
112
112
  </td>
113
- <td id='andrew-mcburney'>
114
- <a href='https://github.com/armcburney'>
115
- <img src='https://github.com/armcburney.png?size=140'>
113
+ <td id='felix-krause'>
114
+ <a href='https://github.com/KrauseFx'>
115
+ <img src='https://github.com/KrauseFx.png?size=140'>
116
116
  </a>
117
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
117
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
118
118
  </td>
119
- <td id='iulian-onofrei'>
120
- <a href='https://github.com/revolter'>
121
- <img src='https://github.com/revolter.png?size=140'>
119
+ <td id='matthew-ellis'>
120
+ <a href='https://github.com/matthewellis'>
121
+ <img src='https://github.com/matthewellis.png?size=140'>
122
122
  </a>
123
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
123
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
124
124
  </td>
125
- <td id='helmut-januschka'>
126
- <a href='https://github.com/hjanuschka'>
127
- <img src='https://github.com/hjanuschka.png?size=140'>
125
+ <td id='manu-wallner'>
126
+ <a href='https://github.com/milch'>
127
+ <img src='https://github.com/milch.png?size=140'>
128
128
  </a>
129
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
129
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
130
130
  </td>
131
131
  </tr>
132
132
  <tr>
133
- <td id='joshua-liebowitz'>
134
- <a href='https://github.com/taquitos'>
135
- <img src='https://github.com/taquitos.png?size=140'>
136
- </a>
137
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
138
- </td>
139
- <td id='aaron-brager'>
140
- <a href='https://github.com/getaaron'>
141
- <img src='https://github.com/getaaron.png?size=140'>
133
+ <td id='andrew-mcburney'>
134
+ <a href='https://github.com/armcburney'>
135
+ <img src='https://github.com/armcburney.png?size=140'>
142
136
  </a>
143
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
137
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
144
138
  </td>
145
- <td id='jorge-revuelta-h'>
146
- <a href='https://github.com/minuscorp'>
147
- <img src='https://github.com/minuscorp.png?size=140'>
139
+ <td id='jérôme-lacoste'>
140
+ <a href='https://github.com/lacostej'>
141
+ <img src='https://github.com/lacostej.png?size=140'>
148
142
  </a>
149
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
143
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
150
144
  </td>
151
145
  <td id='max-ott'>
152
146
  <a href='https://github.com/max-ott'>
@@ -154,25 +148,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
154
148
  </a>
155
149
  <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
156
150
  </td>
157
- <td id='maksym-grebenets'>
158
- <a href='https://github.com/mgrebenets'>
159
- <img src='https://github.com/mgrebenets.png?size=140'>
160
- </a>
161
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
162
- </td>
163
- </tr>
164
- <tr>
165
151
  <td id='josh-holtz'>
166
152
  <a href='https://github.com/joshdholtz'>
167
153
  <img src='https://github.com/joshdholtz.png?size=140'>
168
154
  </a>
169
155
  <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
170
156
  </td>
171
- <td id='luka-mirosevic'>
172
- <a href='https://github.com/lmirosevic'>
173
- <img src='https://github.com/lmirosevic.png?size=140'>
157
+ <td id='fumiya-nakamura'>
158
+ <a href='https://github.com/nafu'>
159
+ <img src='https://github.com/nafu.png?size=140'>
174
160
  </a>
175
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
161
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
162
+ </td>
163
+ </tr>
164
+ <tr>
165
+ <td id='maksym-grebenets'>
166
+ <a href='https://github.com/mgrebenets'>
167
+ <img src='https://github.com/mgrebenets.png?size=140'>
168
+ </a>
169
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
170
+ </td>
171
+ <td id='kohki-miki'>
172
+ <a href='https://github.com/giginet'>
173
+ <img src='https://github.com/giginet.png?size=140'>
174
+ </a>
175
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
176
176
  </td>
177
177
  </table>
178
178
 
@@ -6,7 +6,6 @@ require_relative 'deliver/runner'
6
6
  require_relative 'deliver/upload_metadata'
7
7
  require_relative 'deliver/upload_screenshots'
8
8
  require_relative 'deliver/upload_price_tier'
9
- require_relative 'deliver/upload_assets'
10
9
  require_relative 'deliver/submit_for_review'
11
10
  require_relative 'deliver/app_screenshot'
12
11
  require_relative 'deliver/html_generator'
@@ -1,6 +1,7 @@
1
1
  require 'fastimage'
2
2
 
3
3
  require_relative 'module'
4
+ require 'spaceship/connect_api/models/app_screenshot_set'
4
5
 
5
6
  module Deliver
6
7
  # AppScreenshot represents one screenshots for one specific locale and
@@ -95,31 +96,31 @@ module Deliver
95
96
  # The iTC API requires a different notation for the device
96
97
  def device_type
97
98
  matching = {
98
- ScreenSize::IOS_35 => "iphone35",
99
- ScreenSize::IOS_40 => "iphone4",
100
- ScreenSize::IOS_47 => "iphone6", # also 7 & 8
101
- ScreenSize::IOS_55 => "iphone6Plus", # also 7 Plus & 8 Plus
102
- ScreenSize::IOS_58 => "iphone58",
103
- ScreenSize::IOS_65 => "iphone65",
104
- ScreenSize::IOS_IPAD => "ipad",
105
- ScreenSize::IOS_IPAD_10_5 => "ipad105",
106
- ScreenSize::IOS_IPAD_11 => "ipadPro11",
107
- ScreenSize::IOS_IPAD_PRO => "ipadPro",
108
- ScreenSize::IOS_IPAD_PRO_12_9 => "ipadPro129",
109
- ScreenSize::IOS_40_MESSAGES => "iphone4",
110
- ScreenSize::IOS_47_MESSAGES => "iphone6", # also 7 & 8
111
- ScreenSize::IOS_55_MESSAGES => "iphone6Plus", # also 7 Plus & 8 Plus
112
- ScreenSize::IOS_58_MESSAGES => "iphone58",
113
- ScreenSize::IOS_65_MESSAGES => "iphone65",
114
- ScreenSize::IOS_IPAD_MESSAGES => "ipad",
115
- ScreenSize::IOS_IPAD_PRO_MESSAGES => "ipadPro",
116
- ScreenSize::IOS_IPAD_PRO_12_9_MESSAGES => "ipadPro129",
117
- ScreenSize::IOS_IPAD_10_5_MESSAGES => "ipad105",
118
- ScreenSize::IOS_IPAD_11_MESSAGES => "ipadPro11",
119
- ScreenSize::MAC => "desktop",
120
- ScreenSize::IOS_APPLE_WATCH => "watch",
121
- ScreenSize::IOS_APPLE_WATCH_SERIES4 => "watchSeries4",
122
- ScreenSize::APPLE_TV => "appleTV"
99
+ ScreenSize::IOS_35 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_35,
100
+ ScreenSize::IOS_40 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_40,
101
+ ScreenSize::IOS_47 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_47, # also 7 & 8
102
+ ScreenSize::IOS_55 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_55, # also 7 Plus & 8 Plus
103
+ ScreenSize::IOS_58 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_58,
104
+ ScreenSize::IOS_65 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_65,
105
+ ScreenSize::IOS_IPAD => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_97,
106
+ ScreenSize::IOS_IPAD_10_5 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_105,
107
+ ScreenSize::IOS_IPAD_11 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_PRO_3GEN_11,
108
+ ScreenSize::IOS_IPAD_PRO => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_PRO_129,
109
+ ScreenSize::IOS_IPAD_PRO_12_9 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_PRO_3GEN_129,
110
+ ScreenSize::IOS_40_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_40,
111
+ ScreenSize::IOS_47_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_47, # also 7 & 8
112
+ ScreenSize::IOS_55_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_55, # also 7 Plus & 8 Plus
113
+ ScreenSize::IOS_58_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_58,
114
+ ScreenSize::IOS_65_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_65,
115
+ ScreenSize::IOS_IPAD_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_97,
116
+ ScreenSize::IOS_IPAD_PRO_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_PRO_129,
117
+ ScreenSize::IOS_IPAD_PRO_12_9_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_PRO_3GEN_129,
118
+ ScreenSize::IOS_IPAD_10_5_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_105,
119
+ ScreenSize::IOS_IPAD_11_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_PRO_3GEN_11,
120
+ ScreenSize::MAC => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_DESKTOP,
121
+ ScreenSize::IOS_APPLE_WATCH => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_3,
122
+ ScreenSize::IOS_APPLE_WATCH_SERIES4 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_4,
123
+ # ScreenSize::APPLE_TV => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::
123
124
  }
124
125
  return matching[self.screen_size]
125
126
  end
@@ -2,7 +2,6 @@ require 'fastlane_core/configuration/config_item'
2
2
  require 'credentials_manager/appfile_config'
3
3
 
4
4
  require_relative 'module'
5
- require_relative 'upload_assets'
6
5
 
7
6
  module Deliver
8
7
  # rubocop:disable Metrics/ClassLength
@@ -206,6 +205,7 @@ module Deliver
206
205
  short_option: "-b",
207
206
  description: "Extra information for the submission (e.g. compliance specifications, IDFA settings)",
208
207
  is_string: false,
208
+ type: Hash,
209
209
  optional: true),
210
210
 
211
211
  # affiliation
@@ -283,6 +283,7 @@ module Deliver
283
283
  FastlaneCore::ConfigItem.new(key: :individual_metadata_items,
284
284
  env_name: "DELIVER_INDIVUDAL_METADATA_ITEMS",
285
285
  description: "An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow",
286
+ deprecated: "Removed after the migration to the new App Store Connect API in June 2020",
286
287
  is_string: false,
287
288
  type: Array,
288
289
  default_value: []),
@@ -291,21 +292,15 @@ module Deliver
291
292
  FastlaneCore::ConfigItem.new(key: :app_icon,
292
293
  env_name: "DELIVER_APP_ICON_PATH",
293
294
  description: "Metadata: The path to the app icon",
295
+ deprecated: "Removed after the migration to the new App Store Connect API in June 2020",
294
296
  optional: true,
295
- short_option: "-l",
296
- verify_block: proc do |value|
297
- UI.user_error!("Could not find png file at path '#{File.expand_path(value)}'") unless File.exist?(value)
298
- UI.user_error!("'#{value}' doesn't seem to be one of the supported files. supported: #{Deliver::UploadAssets::SUPPORTED_ICON_EXTENSIONS.join(',')}") unless Deliver::UploadAssets::SUPPORTED_ICON_EXTENSIONS.include?(File.extname(value).downcase)
299
- end),
297
+ short_option: "-l"),
300
298
  FastlaneCore::ConfigItem.new(key: :apple_watch_app_icon,
301
299
  env_name: "DELIVER_APPLE_WATCH_APP_ICON_PATH",
302
300
  description: "Metadata: The path to the Apple Watch app icon",
301
+ deprecated: "Removed after the migration to the new App Store Connect API in June 2020",
303
302
  optional: true,
304
- short_option: "-q",
305
- verify_block: proc do |value|
306
- UI.user_error!("Could not find png file at path '#{File.expand_path(value)}'") unless File.exist?(value)
307
- UI.user_error!("'#{value}' doesn't seem to be one of the supported files. supported: #{Deliver::UploadAssets::SUPPORTED_ICON_EXTENSIONS.join(',')}") unless Deliver::UploadAssets::SUPPORTED_ICON_EXTENSIONS.include?(File.extname(value).downcase)
308
- end),
303
+ short_option: "-q"),
309
304
  FastlaneCore::ConfigItem.new(key: :copyright,
310
305
  env_name: "DELIVER_COPYRIGHT",
311
306
  description: "Metadata: The copyright notice",
@@ -7,7 +7,6 @@ require 'fastlane_core/itunes_transporter'
7
7
  require 'spaceship'
8
8
  require_relative 'html_generator'
9
9
  require_relative 'submit_for_review'
10
- require_relative 'upload_assets'
11
10
  require_relative 'upload_price_tier'
12
11
  require_relative 'upload_metadata'
13
12
  require_relative 'upload_screenshots'
@@ -87,9 +86,14 @@ module Deliver
87
86
  # If not, the new version will automatically be created
88
87
  def verify_version
89
88
  app_version = options[:app_version]
90
- UI.message("Making sure the latest version on App Store Connect matches '#{app_version}' from the ipa file...")
89
+ UI.message("Making sure the latest version on App Store Connect matches '#{app_version}'...")
91
90
 
92
- changed = options[:app].ensure_version!(app_version, platform: options[:platform])
91
+ legacy_app = options[:app]
92
+ app_id = legacy_app.apple_id
93
+ app = Spaceship::ConnectAPI::App.get(app_id: app_id)
94
+
95
+ platform = Spaceship::ConnectAPI::Platform.map(options[:platform])
96
+ changed = app.ensure_version!(app_version, platform: platform)
93
97
 
94
98
  if changed
95
99
  UI.success("Successfully set the version to '#{app_version}'")
@@ -110,9 +114,6 @@ module Deliver
110
114
  # Assign "default" values to all languages
111
115
  upload_metadata.assign_defaults(options)
112
116
 
113
- # Handle app icon / watch icon
114
- prepare_app_icons(options)
115
-
116
117
  # Validate
117
118
  validate_html(screenshots)
118
119
 
@@ -120,21 +121,6 @@ module Deliver
120
121
  upload_metadata.upload(options)
121
122
  upload_screenshots.upload(options, screenshots)
122
123
  UploadPriceTier.new.upload(options)
123
- UploadAssets.new.upload(options) # e.g. app icon
124
- end
125
-
126
- # If options[:app_icon]/options[:apple_watch_app_icon]
127
- # is supplied value/path will be used.
128
- # If it is unset files (app_icon/watch_icon) exists in
129
- # the fastlane/metadata/ folder, those will be used
130
- def prepare_app_icons(options = {})
131
- return unless options[:metadata_path]
132
-
133
- default_app_icon_path = Dir[File.join(options[:metadata_path], "app_icon.{png,jpg}")].first
134
- options[:app_icon] ||= default_app_icon_path if default_app_icon_path && File.exist?(default_app_icon_path)
135
-
136
- default_watch_icon_path = Dir[File.join(options[:metadata_path], "watch_icon.{png,jpg}")].first
137
- options[:apple_watch_app_icon] ||= default_watch_icon_path if default_watch_icon_path && File.exist?(default_watch_icon_path)
138
124
  end
139
125
 
140
126
  # Upload the binary to App Store Connect
@@ -60,9 +60,9 @@ module Deliver
60
60
  app_details = v.application.details
61
61
 
62
62
  # All the localised metadata
63
- (UploadMetadata::LOCALISED_VERSION_VALUES + UploadMetadata::LOCALISED_APP_VALUES).each do |key|
63
+ (UploadMetadata::LOCALISED_VERSION_VALUES.keys + UploadMetadata::LOCALISED_APP_VALUES.keys).each do |key|
64
64
  v.description.languages.each do |language|
65
- if UploadMetadata::LOCALISED_VERSION_VALUES.include?(key)
65
+ if UploadMetadata::LOCALISED_VERSION_VALUES.keys.include?(key)
66
66
  content = v.send(key)[language].to_s
67
67
  else
68
68
  content = app_details.send(key)[language].to_s
@@ -76,8 +76,8 @@ module Deliver
76
76
  end
77
77
 
78
78
  # All non-localised metadata
79
- (UploadMetadata::NON_LOCALISED_VERSION_VALUES + UploadMetadata::NON_LOCALISED_APP_VALUES).each do |key|
80
- if UploadMetadata::NON_LOCALISED_VERSION_VALUES.include?(key)
79
+ (UploadMetadata::NON_LOCALISED_VERSION_VALUES.keys + UploadMetadata::NON_LOCALISED_APP_VALUES).each do |key|
80
+ if UploadMetadata::NON_LOCALISED_VERSION_VALUES.keys.include?(key)
81
81
  content = v.send(key).to_s
82
82
  else
83
83
  content = app_details.send(key).to_s
@@ -88,19 +88,8 @@ module Deliver
88
88
  UI.message("Writing to '#{resulting_path}'")
89
89
  end
90
90
 
91
- # Trade Representative Contact Information
92
- UploadMetadata::TRADE_REPRESENTATIVE_CONTACT_INFORMATION_VALUES.each do |key, option_name|
93
- content = v.send(key).to_s
94
- content += "\n"
95
- base_dir = File.join(path, UploadMetadata::TRADE_REPRESENTATIVE_CONTACT_INFORMATION_DIR)
96
- FileUtils.mkdir_p(base_dir)
97
- resulting_path = File.join(base_dir, "#{option_name}.txt")
98
- File.write(resulting_path, content)
99
- UI.message("Writing to '#{resulting_path}'")
100
- end
101
-
102
91
  # Review information
103
- UploadMetadata::REVIEW_INFORMATION_VALUES.each do |key, option_name|
92
+ UploadMetadata::REVIEW_INFORMATION_VALUES_LEGACY.each do |key, option_name|
104
93
  content = v.send(key).to_s
105
94
  content += "\n"
106
95
  base_dir = File.join(path, UploadMetadata::REVIEW_INFORMATION_DIR)
@@ -111,20 +100,6 @@ module Deliver
111
100
  end
112
101
 
113
102
  UI.success("Successfully created new configuration files.")
114
-
115
- # get App icon + watch icon
116
- if v.large_app_icon.asset_token
117
- app_icon_extension = File.extname(v.large_app_icon.url)
118
- app_icon_path = File.join(path, "app_icon#{app_icon_extension}")
119
- File.write(app_icon_path, open(v.large_app_icon.url).read)
120
- UI.success("Successfully downloaded large app icon")
121
- end
122
- if v.watch_app_icon.asset_token
123
- watch_app_icon_extension = File.extname(v.watch_app_icon.url)
124
- watch_icon_path = File.join(path, "watch_icon#{watch_app_icon_extension}")
125
- File.write(watch_icon_path, open(v.watch_app_icon.url).read)
126
- UI.success("Successfully downloaded watch icon")
127
- end
128
103
  end
129
104
 
130
105
  def download_screenshots(path, options)