fastlane 2.148.0 → 2.150.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +86 -86
  3. data/deliver/lib/deliver.rb +0 -1
  4. data/deliver/lib/deliver/app_screenshot.rb +28 -27
  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 +112 -37
  12. data/fastlane/lib/assets/s3_html_template.erb +1 -1
  13. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +42 -2
  14. data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +1 -1
  15. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +77 -96
  16. data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +3 -2
  17. data/fastlane/lib/fastlane/actions/download_dsyms.rb +7 -1
  18. data/fastlane/lib/fastlane/actions/google_play_track_release_names.rb +74 -0
  19. data/fastlane/lib/fastlane/actions/hipchat.rb +1 -1
  20. data/fastlane/lib/fastlane/actions/set_changelog.rb +23 -20
  21. data/fastlane/lib/fastlane/actions/slack.rb +2 -2
  22. data/fastlane/lib/fastlane/actions/slather.rb +8 -1
  23. data/fastlane/lib/fastlane/actions/spm.rb +7 -0
  24. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +2 -33
  25. data/fastlane/lib/fastlane/documentation/actions_list.rb +1 -1
  26. data/fastlane/lib/fastlane/lane.rb +3 -3
  27. data/fastlane/lib/fastlane/plugins/plugin_manager.rb +1 -1
  28. data/fastlane/lib/fastlane/plugins/template/.github/workflows/test.yml +29 -0
  29. data/fastlane/lib/fastlane/swift_fastlane_function.rb +22 -5
  30. data/fastlane/lib/fastlane/version.rb +1 -1
  31. data/fastlane/swift/ControlCommand.swift +1 -0
  32. data/fastlane/swift/Deliverfile.swift +1 -1
  33. data/fastlane/swift/Fastlane.swift +79 -22
  34. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme +3 -9
  35. data/fastlane/swift/Gymfile.swift +1 -1
  36. data/fastlane/swift/GymfileProtocol.swift +1 -1
  37. data/fastlane/swift/LaneFileProtocol.swift +2 -5
  38. data/fastlane/swift/Matchfile.swift +1 -1
  39. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  40. data/fastlane/swift/Precheckfile.swift +1 -1
  41. data/fastlane/swift/RubyCommand.swift +29 -6
  42. data/fastlane/swift/RubyCommandable.swift +1 -0
  43. data/fastlane/swift/Runner.swift +85 -13
  44. data/fastlane/swift/Scanfile.swift +1 -1
  45. data/fastlane/swift/ScanfileProtocol.swift +2 -2
  46. data/fastlane/swift/Screengrabfile.swift +1 -1
  47. data/fastlane/swift/Snapshotfile.swift +1 -1
  48. data/fastlane/swift/SnapshotfileProtocol.swift +9 -1
  49. data/fastlane/swift/SocketClient.swift +76 -45
  50. data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
  51. data/fastlane/swift/SocketResponse.swift +1 -0
  52. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +1 -3
  53. data/fastlane_core/lib/fastlane_core/pkg_file_analyser.rb +7 -0
  54. data/frameit/lib/frameit/device_types.rb +100 -100
  55. data/gym/lib/gym/options.rb +1 -1
  56. data/match/lib/match/nuke.rb +21 -16
  57. data/match/lib/match/storage/git_storage.rb +4 -0
  58. data/match/lib/match/storage/google_cloud_storage.rb +4 -0
  59. data/match/lib/match/storage/interface.rb +4 -0
  60. data/match/lib/match/storage/s3_storage.rb +4 -0
  61. data/produce/lib/produce/itunes_connect.rb +32 -21
  62. data/produce/lib/produce/options.rb +3 -3
  63. data/scan/lib/scan/options.rb +1 -1
  64. data/scan/lib/scan/test_result_parser.rb +9 -2
  65. data/sigh/lib/assets/resign.sh +7 -7
  66. data/snapshot/lib/assets/SnapshotHelper.swift +5 -5
  67. data/snapshot/lib/assets/SnapshotHelperXcode8.swift +3 -3
  68. data/snapshot/lib/snapshot/options.rb +11 -1
  69. data/snapshot/lib/snapshot/reports_generator.rb +8 -1
  70. data/snapshot/lib/snapshot/test_command_generator.rb +8 -3
  71. data/spaceship/lib/spaceship/.DS_Store +0 -0
  72. data/spaceship/lib/spaceship/client.rb +13 -4
  73. data/spaceship/lib/spaceship/connect_api.rb +25 -2
  74. data/spaceship/lib/spaceship/connect_api/client.rb +97 -31
  75. data/spaceship/lib/spaceship/connect_api/file_uploader.rb +66 -0
  76. data/spaceship/lib/spaceship/connect_api/model.rb +1 -1
  77. data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +113 -0
  78. data/spaceship/lib/spaceship/connect_api/models/app.rb +117 -3
  79. data/spaceship/lib/spaceship/connect_api/models/app_category.rb +94 -0
  80. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +66 -0
  81. data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +38 -0
  82. data/spaceship/lib/spaceship/connect_api/models/app_preview.rb +77 -0
  83. data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +71 -0
  84. data/spaceship/lib/spaceship/connect_api/models/app_price.rb +22 -0
  85. data/spaceship/lib/spaceship/connect_api/models/app_price_tier.rb +12 -0
  86. data/spaceship/lib/spaceship/connect_api/models/app_review_attachment.rb +81 -0
  87. data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +97 -0
  88. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +101 -0
  89. data/spaceship/lib/spaceship/connect_api/models/app_store_review_detail.rb +51 -0
  90. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +182 -0
  91. data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +86 -0
  92. data/spaceship/lib/spaceship/connect_api/models/app_store_version_phased_release.rb +36 -0
  93. data/spaceship/lib/spaceship/connect_api/models/app_store_version_submission.rb +26 -0
  94. data/spaceship/lib/spaceship/connect_api/models/build.rb +4 -0
  95. data/spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb +40 -0
  96. data/spaceship/lib/spaceship/connect_api/models/reset_ratings_request.rb +26 -0
  97. data/spaceship/lib/spaceship/connect_api/models/territory.rb +27 -0
  98. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +10 -3
  99. data/spaceship/lib/spaceship/connect_api/tunes/client.rb +33 -0
  100. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +832 -0
  101. data/spaceship/lib/spaceship/errors.rb +3 -0
  102. data/spaceship/lib/spaceship/spaceauth_runner.rb +2 -2
  103. data/supply/lib/supply/client.rb +19 -0
  104. data/supply/lib/supply/reader.rb +16 -0
  105. metadata +50 -42
  106. data/deliver/lib/deliver/upload_assets.rb +0 -27
  107. data/snapshot/lib/snapshot/.options.rb.swp +0 -0
  108. data/snapshot/lib/snapshot/.test_command_generator_base.rb.swp +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e52174fca031a1354ef266d0115af976073559fb5df38d653d12e80e0c7f1d80
4
- data.tar.gz: c35acfea1e85651b11715ed5c65031901ebf4f27af7040a7c9d51bc3a98b665f
3
+ metadata.gz: 0a5dd73db52643b353f17026fd0cfae042ef1586aa20770a0ed4b60d29f7454e
4
+ data.tar.gz: 8d01ca66b6b52465320701478986038cf2416f43dfa307a84504740fa25cc967
5
5
  SHA512:
6
- metadata.gz: 592bc1a051f1ed0c64138e92eb3eb8abb5085156d4d0cfd7d85f10e0e2d0c08a13ad06fbbbd93221454753ff17d5fcad3c28e8ee5df03b3c367062661eaa71de
7
- data.tar.gz: 258865c997cc7be2e60f8face998ea89f0b2a31124dc38cc74cc8ae1aa6bf2c5313ae36898b19732b1ebb41bd2366e84983e50e524e239c58901f665f6ba97b8
6
+ metadata.gz: 66f423b88a3d7fb5b9e7634f0918e5d13685dbc01ec4a332fa3eac07ab092efb392e84f3247fd70818a32665af5c70aa39baac6d533f122956b6c45b515462d7
7
+ data.tar.gz: 96d81a5f13c8df5f196f91607d6be870bc57ad8c4fcfdcc515c2eddb80cb83a28b02357cc0ce4319b6259b764167804c7c3d55418449343c6db5acb523d99dca
data/README.md CHANGED
@@ -34,49 +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='fumiya-nakamura'>
38
- <a href='https://github.com/nafu'>
39
- <img src='https://github.com/nafu.png?size=140'>
40
- </a>
41
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
42
- </td>
43
- <td id='maksym-grebenets'>
44
- <a href='https://github.com/mgrebenets'>
45
- <img src='https://github.com/mgrebenets.png?size=140'>
46
- </a>
47
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
48
- </td>
49
- <td id='daniel-jankowski'>
50
- <a href='https://github.com/mollyIV'>
51
- <img src='https://github.com/mollyIV.png?size=140'>
52
- </a>
53
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
54
- </td>
55
- <td id='kohki-miki'>
56
- <a href='https://github.com/giginet'>
57
- <img src='https://github.com/giginet.png?size=140'>
58
- </a>
59
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
60
- </td>
61
- <td id='danielle-tomlinson'>
62
- <a href='https://github.com/endocrimes'>
63
- <img src='https://github.com/endocrimes.png?size=140'>
64
- </a>
65
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
66
- </td>
67
- </tr>
68
- <tr>
69
- <td id='jérôme-lacoste'>
70
- <a href='https://github.com/lacostej'>
71
- <img src='https://github.com/lacostej.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'>
72
40
  </a>
73
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
41
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
74
42
  </td>
75
- <td id='jan-piotrowski'>
76
- <a href='https://github.com/janpio'>
77
- <img src='https://github.com/janpio.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'>
78
46
  </a>
79
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
47
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
80
48
  </td>
81
49
  <td id='joshua-liebowitz'>
82
50
  <a href='https://github.com/taquitos'>
@@ -84,89 +52,95 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
84
52
  </a>
85
53
  <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
86
54
  </td>
87
- <td id='felix-krause'>
88
- <a href='https://github.com/KrauseFx'>
89
- <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'>
90
58
  </a>
91
- <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>
92
60
  </td>
93
- <td id='matthew-ellis'>
94
- <a href='https://github.com/matthewellis'>
95
- <img src='https://github.com/matthewellis.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'>
96
64
  </a>
97
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
65
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
98
66
  </td>
99
67
  </tr>
100
68
  <tr>
101
- <td id='josh-holtz'>
102
- <a href='https://github.com/joshdholtz'>
103
- <img src='https://github.com/joshdholtz.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'>
104
72
  </a>
105
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
73
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
106
74
  </td>
107
- <td id='iulian-onofrei'>
108
- <a href='https://github.com/revolter'>
109
- <img src='https://github.com/revolter.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'>
110
78
  </a>
111
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
79
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
112
80
  </td>
113
- <td id='helmut-januschka'>
114
- <a href='https://github.com/hjanuschka'>
115
- <img src='https://github.com/hjanuschka.png?size=140'>
81
+ <td id='jan-piotrowski'>
82
+ <a href='https://github.com/janpio'>
83
+ <img src='https://github.com/janpio.png?size=140'>
116
84
  </a>
117
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
85
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
118
86
  </td>
119
- <td id='luka-mirosevic'>
120
- <a href='https://github.com/lmirosevic'>
121
- <img src='https://github.com/lmirosevic.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'>
122
90
  </a>
123
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
91
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
124
92
  </td>
125
- <td id='stefan-natchev'>
126
- <a href='https://github.com/snatchev'>
127
- <img src='https://github.com/snatchev.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'>
128
96
  </a>
129
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
97
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
130
98
  </td>
131
99
  </tr>
132
100
  <tr>
133
- <td id='jorge-revuelta-h'>
134
- <a href='https://github.com/minuscorp'>
135
- <img src='https://github.com/minuscorp.png?size=140'>
136
- </a>
137
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
138
- </td>
139
101
  <td id='jimmy-dee'>
140
102
  <a href='https://github.com/jdee'>
141
103
  <img src='https://github.com/jdee.png?size=140'>
142
104
  </a>
143
105
  <h4 align='center'>Jimmy Dee</h4>
144
106
  </td>
107
+ <td id='daniel-jankowski'>
108
+ <a href='https://github.com/mollyIV'>
109
+ <img src='https://github.com/mollyIV.png?size=140'>
110
+ </a>
111
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
112
+ </td>
113
+ <td id='felix-krause'>
114
+ <a href='https://github.com/KrauseFx'>
115
+ <img src='https://github.com/KrauseFx.png?size=140'>
116
+ </a>
117
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
118
+ </td>
119
+ <td id='matthew-ellis'>
120
+ <a href='https://github.com/matthewellis'>
121
+ <img src='https://github.com/matthewellis.png?size=140'>
122
+ </a>
123
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
124
+ </td>
145
125
  <td id='manu-wallner'>
146
126
  <a href='https://github.com/milch'>
147
127
  <img src='https://github.com/milch.png?size=140'>
148
128
  </a>
149
129
  <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
150
130
  </td>
131
+ </tr>
132
+ <tr>
151
133
  <td id='andrew-mcburney'>
152
134
  <a href='https://github.com/armcburney'>
153
135
  <img src='https://github.com/armcburney.png?size=140'>
154
136
  </a>
155
137
  <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
156
138
  </td>
157
- <td id='olivier-halligon'>
158
- <a href='https://github.com/AliSoftware'>
159
- <img src='https://github.com/AliSoftware.png?size=140'>
160
- </a>
161
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
162
- </td>
163
- </tr>
164
- <tr>
165
- <td id='aaron-brager'>
166
- <a href='https://github.com/getaaron'>
167
- <img src='https://github.com/getaaron.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'>
168
142
  </a>
169
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
143
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
170
144
  </td>
171
145
  <td id='max-ott'>
172
146
  <a href='https://github.com/max-ott'>
@@ -174,6 +148,32 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
174
148
  </a>
175
149
  <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
176
150
  </td>
151
+ <td id='josh-holtz'>
152
+ <a href='https://github.com/joshdholtz'>
153
+ <img src='https://github.com/joshdholtz.png?size=140'>
154
+ </a>
155
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
156
+ </td>
157
+ <td id='fumiya-nakamura'>
158
+ <a href='https://github.com/nafu'>
159
+ <img src='https://github.com/nafu.png?size=140'>
160
+ </a>
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
+ </td>
177
177
  </table>
178
178
 
179
179
  Special thanks to all [contributors](https://github.com/fastlane/fastlane/graphs/contributors) for extending and improving _fastlane_.
@@ -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 and 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
@@ -129,8 +130,8 @@ module Deliver
129
130
  matching = {
130
131
  ScreenSize::IOS_35 => "iPhone 4",
131
132
  ScreenSize::IOS_40 => "iPhone 5",
132
- ScreenSize::IOS_47 => "iPhone 6", # and 7
133
- ScreenSize::IOS_55 => "iPhone 6 Plus", # and 7 Plus
133
+ ScreenSize::IOS_47 => "iPhone 6", # also 7 & 8
134
+ ScreenSize::IOS_55 => "iPhone 6 Plus", # also 7 Plus & 8 Plus
134
135
  ScreenSize::IOS_58 => "iPhone XS",
135
136
  ScreenSize::IOS_61 => "iPhone XR",
136
137
  ScreenSize::IOS_65 => "iPhone XS Max",
@@ -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)