fastlane 2.150.3 → 2.153.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +86 -86
  3. data/deliver/lib/deliver/app_screenshot.rb +1 -1
  4. data/deliver/lib/deliver/commands_generator.rb +7 -4
  5. data/deliver/lib/deliver/detect_values.rb +9 -3
  6. data/deliver/lib/deliver/download_screenshots.rb +36 -31
  7. data/deliver/lib/deliver/options.rb +8 -2
  8. data/deliver/lib/deliver/runner.rb +5 -10
  9. data/deliver/lib/deliver/setup.rb +94 -3
  10. data/deliver/lib/deliver/submit_for_review.rb +11 -13
  11. data/deliver/lib/deliver/upload_metadata.rb +34 -30
  12. data/deliver/lib/deliver/upload_price_tier.rb +1 -3
  13. data/deliver/lib/deliver/upload_screenshots.rb +76 -45
  14. data/{deliver/lib/deliver/.download_screenshots.rb.swp → fastlane/lib/fastlane/.erb_template_helper.rb.swp} +0 -0
  15. data/{spaceship/lib/spaceship/connect_api/.file_uploader.rb.swp → fastlane/lib/fastlane/actions/.git_commit.rb.swp} +0 -0
  16. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +3 -1
  17. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +1 -1
  18. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +3 -0
  19. data/fastlane/lib/fastlane/actions/download_dsyms.rb +4 -2
  20. data/fastlane/lib/fastlane/actions/erb.rb +10 -2
  21. data/fastlane/lib/fastlane/actions/git_branch.rb +4 -1
  22. data/fastlane/lib/fastlane/actions/notarize.rb +13 -3
  23. data/fastlane/lib/fastlane/actions/pod_push.rb +10 -1
  24. data/fastlane/lib/fastlane/actions/resign.rb +1 -1
  25. data/fastlane/lib/fastlane/actions/setup_ci.rb +5 -0
  26. data/fastlane/lib/fastlane/actions/setup_circle_ci.rb +1 -1
  27. data/fastlane/lib/fastlane/actions/setup_travis.rb +1 -1
  28. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +10 -2
  29. data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +11 -3
  30. data/fastlane/lib/fastlane/documentation/docs_generator.rb +1 -1
  31. data/fastlane/lib/fastlane/helper/s3_client_helper.rb +28 -11
  32. data/fastlane/lib/fastlane/runner.rb +3 -1
  33. data/fastlane/lib/fastlane/server/socket_server.rb +7 -1
  34. data/fastlane/lib/fastlane/swift_fastlane_function.rb +1 -1
  35. data/fastlane/lib/fastlane/version.rb +1 -1
  36. data/fastlane/swift/Actions.swift +1 -1
  37. data/fastlane/swift/ArgumentProcessor.swift +24 -24
  38. data/fastlane/swift/ControlCommand.swift +3 -3
  39. data/fastlane/swift/Deliverfile.swift +4 -8
  40. data/fastlane/swift/DeliverfileProtocol.swift +181 -182
  41. data/fastlane/swift/Fastlane.swift +2829 -2806
  42. data/fastlane/swift/Gymfile.swift +4 -8
  43. data/fastlane/swift/GymfileProtocol.swift +133 -134
  44. data/fastlane/swift/LaneFileProtocol.swift +17 -17
  45. data/fastlane/swift/Matchfile.swift +4 -8
  46. data/fastlane/swift/MatchfileProtocol.swift +115 -112
  47. data/fastlane/swift/Plugins.swift +1 -1
  48. data/fastlane/swift/Precheckfile.swift +4 -8
  49. data/fastlane/swift/PrecheckfileProtocol.swift +22 -23
  50. data/fastlane/swift/RubyCommand.swift +34 -37
  51. data/fastlane/swift/RubyCommandable.swift +3 -1
  52. data/fastlane/swift/Runner.swift +76 -69
  53. data/fastlane/swift/Scanfile.swift +4 -8
  54. data/fastlane/swift/ScanfileProtocol.swift +190 -191
  55. data/fastlane/swift/Screengrabfile.swift +4 -8
  56. data/fastlane/swift/ScreengrabfileProtocol.swift +67 -68
  57. data/fastlane/swift/Snapshotfile.swift +4 -8
  58. data/fastlane/swift/SnapshotfileProtocol.swift +127 -128
  59. data/fastlane/swift/SocketClient.swift +84 -90
  60. data/fastlane/swift/SocketResponse.swift +14 -14
  61. data/fastlane/swift/formatting/Brewfile +1 -0
  62. data/fastlane/swift/formatting/Brewfile.lock.json +39 -0
  63. data/fastlane/swift/formatting/Rakefile +18 -0
  64. data/fastlane/swift/main.swift +5 -6
  65. data/fastlane_core/lib/fastlane_core/device_manager.rb +20 -6
  66. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +21 -10
  67. data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +1 -1
  68. data/frameit/lib/frameit/editor.rb +8 -5
  69. data/match/lib/assets/READMETemplate.md +5 -2
  70. data/match/lib/match/options.rb +4 -0
  71. data/match/lib/match/runner.rb +5 -4
  72. data/match/lib/match/storage/git_storage.rb +1 -1
  73. data/match/lib/match/storage/s3_storage.rb +25 -7
  74. data/pilot/lib/pilot/options.rb +6 -0
  75. data/scan/lib/scan/runner.rb +19 -6
  76. data/sigh/lib/assets/resign.sh +18 -0
  77. data/spaceship/lib/spaceship/client.rb +1 -2
  78. data/spaceship/lib/spaceship/connect_api.rb +1 -0
  79. data/spaceship/lib/spaceship/connect_api/client.rb +2 -3
  80. data/spaceship/lib/spaceship/connect_api/file_uploader.rb +0 -1
  81. data/spaceship/lib/spaceship/connect_api/model.rb +10 -0
  82. data/spaceship/lib/spaceship/connect_api/models/.app_screenshot.rb.swp +0 -0
  83. data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +1 -0
  84. data/spaceship/lib/spaceship/connect_api/models/app.rb +40 -2
  85. data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +1 -0
  86. data/spaceship/lib/spaceship/connect_api/models/app_preview.rb +5 -4
  87. data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +44 -5
  88. data/spaceship/lib/spaceship/connect_api/models/app_store_review_detail.rb +1 -0
  89. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +11 -1
  90. data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +1 -0
  91. data/spaceship/lib/spaceship/connect_api/models/app_store_version_release_request.rb +12 -0
  92. data/spaceship/lib/spaceship/connect_api/models/build.rb +1 -0
  93. data/spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb +1 -0
  94. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +32 -1
  95. metadata +49 -84
  96. data/deliver/lib/deliver/.commands_generator.rb.swp +0 -0
  97. data/deliver/lib/deliver/.submit_for_review.rb.swp +0 -0
  98. data/deliver/lib/deliver/.upload_metadata.rb.swp +0 -0
  99. data/deliver/lib/deliver/.upload_screenshots.rb.swp +0 -0
  100. data/spaceship/lib/spaceship/babosa_fix.rb +0 -30
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef23a0fed00e3ec93bc286b3f34b22302da611a889c315013c63d929f218ecd7
4
- data.tar.gz: e9155805e43cb051508414d3cf19db7b16c50fc5a1e280e944a5416a98dba32d
3
+ metadata.gz: '0738d9e2b7948bc5c029fff4cc5314accc0285c7e9fa0652c7526c58d4512dbd'
4
+ data.tar.gz: 2999ba6d7c1c5784969196e9d2efe9da82561c74ac218af83e5533a7c28babaa
5
5
  SHA512:
6
- metadata.gz: 7b5fc44bdda30345ee8f9034e3fadaf03db8689a032a9982db7afa979e1d148becdad574dd202b81a682d98a1a712f15a88575e31c392102e6287d8b0639c04c
7
- data.tar.gz: 3019b6947b830e43e7214fcf0caf375e4f48d874bb168f52c146988dc86973e8cd7425bee83847808958c698c7eca3a9b8147ecc70092c444b10783e4a189f70
6
+ metadata.gz: 94463ea90394a490270ec45cd7a47123cd8da45f7aa1649f302fdabc3e315864bd1366861730ca57a31748f7bd90cc39a5f6d61c67a7ecfb29eccb0be99f457e
7
+ data.tar.gz: a23b7a7e5e74c7301222b9700b8cc6b73124842530fc417987eb95b62ae7d0be65c88b190f0d22c5b847bbb9ed55ad413d1f25c6eb3a20b011ade15af119088b
data/README.md CHANGED
@@ -34,55 +34,61 @@ 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='matthew-ellis'>
38
- <a href='https://github.com/matthewellis'>
39
- <img src='https://github.com/matthewellis.png?size=140'>
37
+ <td id='andrew-mcburney'>
38
+ <a href='https://github.com/armcburney'>
39
+ <img src='https://github.com/armcburney.png?size=140'>
40
40
  </a>
41
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
41
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</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='josh-holtz'>
44
+ <a href='https://github.com/joshdholtz'>
45
+ <img src='https://github.com/joshdholtz.png?size=140'>
46
46
  </a>
47
- <h4 align='center'>Jimmy Dee</h4>
47
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
48
48
  </td>
49
- <td id='luka-mirosevic'>
50
- <a href='https://github.com/lmirosevic'>
51
- <img src='https://github.com/lmirosevic.png?size=140'>
49
+ <td id='daniel-jankowski'>
50
+ <a href='https://github.com/mollyIV'>
51
+ <img src='https://github.com/mollyIV.png?size=140'>
52
52
  </a>
53
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
53
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
54
54
  </td>
55
- <td id='jorge-revuelta-h'>
56
- <a href='https://github.com/minuscorp'>
57
- <img src='https://github.com/minuscorp.png?size=140'>
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
58
  </a>
59
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
59
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
60
60
  </td>
61
- <td id='jérôme-lacoste'>
62
- <a href='https://github.com/lacostej'>
63
- <img src='https://github.com/lacostej.png?size=140'>
61
+ <td id='helmut-januschka'>
62
+ <a href='https://github.com/hjanuschka'>
63
+ <img src='https://github.com/hjanuschka.png?size=140'>
64
64
  </a>
65
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
65
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
66
66
  </td>
67
67
  </tr>
68
68
  <tr>
69
- <td id='stefan-natchev'>
70
- <a href='https://github.com/snatchev'>
71
- <img src='https://github.com/snatchev.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/snatchev'>Stefan Natchev</a></h4>
73
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
74
74
  </td>
75
- <td id='daniel-jankowski'>
76
- <a href='https://github.com/mollyIV'>
77
- <img src='https://github.com/mollyIV.png?size=140'>
75
+ <td id='fumiya-nakamura'>
76
+ <a href='https://github.com/nafu'>
77
+ <img src='https://github.com/nafu.png?size=140'>
78
78
  </a>
79
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
79
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
80
80
  </td>
81
- <td id='iulian-onofrei'>
82
- <a href='https://github.com/revolter'>
83
- <img src='https://github.com/revolter.png?size=140'>
81
+ <td id='olivier-halligon'>
82
+ <a href='https://github.com/AliSoftware'>
83
+ <img src='https://github.com/AliSoftware.png?size=140'>
84
84
  </a>
85
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
85
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
86
+ </td>
87
+ <td id='kohki-miki'>
88
+ <a href='https://github.com/giginet'>
89
+ <img src='https://github.com/giginet.png?size=140'>
90
+ </a>
91
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
86
92
  </td>
87
93
  <td id='felix-krause'>
88
94
  <a href='https://github.com/KrauseFx'>
@@ -90,89 +96,83 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
90
96
  </a>
91
97
  <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
92
98
  </td>
93
- <td id='maksym-grebenets'>
94
- <a href='https://github.com/mgrebenets'>
95
- <img src='https://github.com/mgrebenets.png?size=140'>
96
- </a>
97
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
98
- </td>
99
99
  </tr>
100
100
  <tr>
101
- <td id='helmut-januschka'>
102
- <a href='https://github.com/hjanuschka'>
103
- <img src='https://github.com/hjanuschka.png?size=140'>
101
+ <td id='stefan-natchev'>
102
+ <a href='https://github.com/snatchev'>
103
+ <img src='https://github.com/snatchev.png?size=140'>
104
104
  </a>
105
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
105
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
106
106
  </td>
107
- <td id='joshua-liebowitz'>
108
- <a href='https://github.com/taquitos'>
109
- <img src='https://github.com/taquitos.png?size=140'>
107
+ <td id='jorge-revuelta-h'>
108
+ <a href='https://github.com/minuscorp'>
109
+ <img src='https://github.com/minuscorp.png?size=140'>
110
110
  </a>
111
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
111
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
112
112
  </td>
113
- <td id='olivier-halligon'>
114
- <a href='https://github.com/AliSoftware'>
115
- <img src='https://github.com/AliSoftware.png?size=140'>
113
+ <td id='jimmy-dee'>
114
+ <a href='https://github.com/jdee'>
115
+ <img src='https://github.com/jdee.png?size=140'>
116
116
  </a>
117
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
117
+ <h4 align='center'>Jimmy Dee</h4>
118
118
  </td>
119
- <td id='fumiya-nakamura'>
120
- <a href='https://github.com/nafu'>
121
- <img src='https://github.com/nafu.png?size=140'>
119
+ <td id='danielle-tomlinson'>
120
+ <a href='https://github.com/endocrimes'>
121
+ <img src='https://github.com/endocrimes.png?size=140'>
122
122
  </a>
123
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
123
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
124
124
  </td>
125
- <td id='aaron-brager'>
126
- <a href='https://github.com/getaaron'>
127
- <img src='https://github.com/getaaron.png?size=140'>
125
+ <td id='matthew-ellis'>
126
+ <a href='https://github.com/matthewellis'>
127
+ <img src='https://github.com/matthewellis.png?size=140'>
128
128
  </a>
129
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
129
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
130
130
  </td>
131
131
  </tr>
132
132
  <tr>
133
- <td id='josh-holtz'>
134
- <a href='https://github.com/joshdholtz'>
135
- <img src='https://github.com/joshdholtz.png?size=140'>
133
+ <td id='manu-wallner'>
134
+ <a href='https://github.com/milch'>
135
+ <img src='https://github.com/milch.png?size=140'>
136
136
  </a>
137
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
137
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
138
138
  </td>
139
- <td id='danielle-tomlinson'>
140
- <a href='https://github.com/endocrimes'>
141
- <img src='https://github.com/endocrimes.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'>
142
142
  </a>
143
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
143
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
144
144
  </td>
145
- <td id='max-ott'>
146
- <a href='https://github.com/max-ott'>
147
- <img src='https://github.com/max-ott.png?size=140'>
145
+ <td id='iulian-onofrei'>
146
+ <a href='https://github.com/revolter'>
147
+ <img src='https://github.com/revolter.png?size=140'>
148
148
  </a>
149
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
149
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
150
150
  </td>
151
- <td id='andrew-mcburney'>
152
- <a href='https://github.com/armcburney'>
153
- <img src='https://github.com/armcburney.png?size=140'>
151
+ <td id='maksym-grebenets'>
152
+ <a href='https://github.com/mgrebenets'>
153
+ <img src='https://github.com/mgrebenets.png?size=140'>
154
154
  </a>
155
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
155
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</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='joshua-liebowitz'>
158
+ <a href='https://github.com/taquitos'>
159
+ <img src='https://github.com/taquitos.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/taquitos'>Joshua Liebowitz</a></h4>
162
162
  </td>
163
163
  </tr>
164
164
  <tr>
165
- <td id='manu-wallner'>
166
- <a href='https://github.com/milch'>
167
- <img src='https://github.com/milch.png?size=140'>
165
+ <td id='aaron-brager'>
166
+ <a href='https://github.com/getaaron'>
167
+ <img src='https://github.com/getaaron.png?size=140'>
168
168
  </a>
169
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
169
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
170
170
  </td>
171
- <td id='kohki-miki'>
172
- <a href='https://github.com/giginet'>
173
- <img src='https://github.com/giginet.png?size=140'>
171
+ <td id='jan-piotrowski'>
172
+ <a href='https://github.com/janpio'>
173
+ <img src='https://github.com/janpio.png?size=140'>
174
174
  </a>
175
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
175
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
176
176
  </td>
177
177
  </table>
178
178
 
@@ -120,7 +120,7 @@ module Deliver
120
120
  ScreenSize::MAC => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_DESKTOP,
121
121
  ScreenSize::IOS_APPLE_WATCH => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_3,
122
122
  ScreenSize::IOS_APPLE_WATCH_SERIES4 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_4,
123
- # ScreenSize::APPLE_TV => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::
123
+ ScreenSize::APPLE_TV => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_APPLE_TV
124
124
  }
125
125
  return matching[self.screen_size]
126
126
  end
@@ -40,6 +40,7 @@ module Deliver
40
40
  res
41
41
  end
42
42
 
43
+ # rubocop:disable Metrics/PerceivedComplexity
43
44
  def run
44
45
  program :name, 'deliver'
45
46
  program :version, Fastlane::VERSION
@@ -166,15 +167,17 @@ module Deliver
166
167
  return 0 unless res
167
168
 
168
169
  require 'deliver/setup'
169
- v = options[:app].latest_version
170
+ app = options[:app]
171
+ platform = Spaceship::ConnectAPI::Platform.map(options[:platform])
172
+ v = app.get_latest_app_store_version(platform: platform)
170
173
  if options[:app_version].to_s.length > 0
171
- v = options[:app].live_version if v.version != options[:app_version]
172
- if v.version != options[:app_version]
174
+ v = app.get_live_app_store_version(platform: platform) if v.version_string != options[:app_version]
175
+ if v.nil? || v.version_string != options[:app_version]
173
176
  raise "Neither the current nor live version match specified app_version \"#{options[:app_version]}\""
174
177
  end
175
178
  end
176
179
 
177
- Deliver::Setup.new.generate_metadata_files(v, path)
180
+ Deliver::Setup.new.generate_metadata_files(app, v, path)
178
181
  end
179
182
  end
180
183
 
@@ -36,9 +36,15 @@ module Deliver
36
36
  end
37
37
 
38
38
  def find_app(options)
39
- search_by = options[:app_identifier]
40
- search_by = options[:app] if search_by.to_s.length == 0
41
- app = Spaceship::Tunes::Application.find(search_by, mac: options[:platform] == "osx")
39
+ app_identifier = options[:app_identifier]
40
+ app_id = options[:app] if app_identifier.to_s.empty?
41
+
42
+ if !app_identifier.to_s.empty?
43
+ app = Spaceship::ConnectAPI::App.find(app_identifier)
44
+ elsif !app_id.kind_of?(Spaceship::ConnectAPI::App) && !app_id.to_s.empty?
45
+ app = Spaceship::ConnectAPI::App.get(app_id: app_id)
46
+ end
47
+
42
48
  if app
43
49
  options[:app] = app
44
50
  else
@@ -14,9 +14,7 @@ module Deliver
14
14
  end
15
15
 
16
16
  def self.download(options, folder_path)
17
- legacy_app = options[:app]
18
- app_id = legacy_app.apple_id
19
- app = Spaceship::ConnectAPI::App.get(app_id: app_id)
17
+ app = options[:app]
20
18
 
21
19
  platform = Spaceship::ConnectAPI::Platform.map(options[:platform])
22
20
  if options[:use_live_version]
@@ -28,42 +26,49 @@ module Deliver
28
26
  end
29
27
 
30
28
  localizations = version.get_app_store_version_localizations
29
+ threads = []
31
30
  localizations.each do |localization|
32
- screenshot_sets = localization.get_app_screenshot_sets
33
- screenshot_sets.each do |screenshot_set|
34
- screenshot_set.app_screenshots.each_with_index do |screenshot, index|
35
- file_name = [index, screenshot_set.screenshot_display_type, index].join("_")
36
- original_file_extension = File.extname(screenshot.file_name).strip.downcase[1..-1]
37
- file_name += "." + original_file_extension
38
-
39
- url = screenshot.image_asset_url(type: original_file_extension)
40
- next if url.nil?
31
+ threads << Thread.new do
32
+ download_screenshots(folder_path, localization)
33
+ end
34
+ end
35
+ threads.each(&:join)
36
+ end
41
37
 
42
- language = localization.locale
38
+ def self.download_screenshots(folder_path, localization)
39
+ language = localization.locale
40
+ screenshot_sets = localization.get_app_screenshot_sets
41
+ screenshot_sets.each do |screenshot_set|
42
+ screenshot_set.app_screenshots.each_with_index do |screenshot, index|
43
+ file_name = [index, screenshot_set.screenshot_display_type, index].join("_")
44
+ original_file_extension = File.extname(screenshot.file_name).strip.downcase[1..-1]
45
+ file_name += "." + original_file_extension
43
46
 
44
- UI.message("Downloading existing screenshot '#{file_name}' for language '#{language}'")
47
+ url = screenshot.image_asset_url(type: original_file_extension)
48
+ next if url.nil?
45
49
 
46
- # If the screen shot is for an appleTV we need to store it in a way that we'll know it's an appleTV
47
- # screen shot later as the screen size is the same as an iPhone 6 Plus in landscape.
48
- if screenshot_set.apple_tv?
49
- containing_folder = File.join(folder_path, "appleTV", language)
50
- else
51
- containing_folder = File.join(folder_path, language)
52
- end
50
+ UI.message("Downloading existing screenshot '#{file_name}' for language '#{language}'")
53
51
 
54
- if screenshot_set.imessage?
55
- containing_folder = File.join(folder_path, "iMessage", language)
56
- end
52
+ # If the screen shot is for an appleTV we need to store it in a way that we'll know it's an appleTV
53
+ # screen shot later as the screen size is the same as an iPhone 6 Plus in landscape.
54
+ if screenshot_set.apple_tv?
55
+ containing_folder = File.join(folder_path, "appleTV", language)
56
+ else
57
+ containing_folder = File.join(folder_path, language)
58
+ end
57
59
 
58
- begin
59
- FileUtils.mkdir_p(containing_folder)
60
- rescue
61
- # if it's already there
62
- end
60
+ if screenshot_set.imessage?
61
+ containing_folder = File.join(folder_path, "iMessage", language)
62
+ end
63
63
 
64
- path = File.join(containing_folder, file_name)
65
- File.binwrite(path, open(url).read)
64
+ begin
65
+ FileUtils.mkdir_p(containing_folder)
66
+ rescue
67
+ # if it's already there
66
68
  end
69
+
70
+ path = File.join(containing_folder, file_name)
71
+ File.binwrite(path, open(url).read)
67
72
  end
68
73
  end
69
74
  end
@@ -165,11 +165,17 @@ module Deliver
165
165
  FastlaneCore::ConfigItem.new(key: :auto_release_date,
166
166
  env_name: "DELIVER_AUTO_RELEASE_DATE",
167
167
  description: "Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)",
168
- is_string: false,
168
+ type: Integer,
169
169
  optional: true,
170
170
  conflicting_options: [:automatic_release],
171
171
  conflict_block: proc do |value|
172
172
  UI.user_error!("You can't use 'auto_release_date' and '#{value.key}' options together.")
173
+ end,
174
+ verify_block: proc do |value|
175
+ now_in_ms = Time.now.to_i * 1000
176
+ if value < now_in_ms
177
+ UI.user_error!("'#{value}' needs to be in the future and in milliseonds (current time is '#{now_in_ms}')")
178
+ end
173
179
  end),
174
180
  FastlaneCore::ConfigItem.new(key: :phased_release,
175
181
  env_name: "DELIVER_PHASED_RELEASE",
@@ -286,7 +292,7 @@ module Deliver
286
292
  deprecated: "Removed after the migration to the new App Store Connect API in June 2020",
287
293
  is_string: false,
288
294
  type: Array,
289
- default_value: []),
295
+ optional: true),
290
296
 
291
297
  # Non Localised
292
298
  FastlaneCore::ConfigItem.new(key: :app_icon,
@@ -91,9 +91,7 @@ module Deliver
91
91
  app_version = options[:app_version]
92
92
  UI.message("Making sure the latest version on App Store Connect matches '#{app_version}'...")
93
93
 
94
- legacy_app = options[:app]
95
- app_id = legacy_app.apple_id
96
- app = Spaceship::ConnectAPI::App.get(app_id: app_id)
94
+ app = options[:app]
97
95
 
98
96
  platform = Spaceship::ConnectAPI::Platform.map(options[:platform])
99
97
  changed = app.ensure_version!(app_version, platform: platform)
@@ -142,14 +140,14 @@ module Deliver
142
140
 
143
141
  if upload_ipa
144
142
  package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(
145
- app_id: options[:app].apple_id,
143
+ app_id: options[:app].id,
146
144
  ipa_path: options[:ipa],
147
145
  package_path: "/tmp",
148
146
  platform: options[:platform]
149
147
  )
150
148
  elsif upload_pkg
151
149
  package_path = FastlaneCore::PkgUploadPackageBuilder.new.generate(
152
- app_id: options[:app].apple_id,
150
+ app_id: options[:app].id,
153
151
  pkg_path: options[:pkg],
154
152
  package_path: "/tmp",
155
153
  platform: options[:platform]
@@ -157,15 +155,12 @@ module Deliver
157
155
  end
158
156
 
159
157
  transporter = transporter_for_selected_team
160
- result = transporter.upload(options[:app].apple_id, package_path)
158
+ result = transporter.upload(options[:app].id, package_path)
161
159
  UI.user_error!("Could not upload binary to App Store Connect. Check out the error above", show_github_issues: true) unless result
162
160
  end
163
161
 
164
162
  def reject_version_if_possible
165
- legacy_app = options[:app]
166
- app_id = legacy_app.apple_id
167
- app = Spaceship::ConnectAPI::App.get(app_id: app_id)
168
-
163
+ app = options[:app]
169
164
  platform = Spaceship::ConnectAPI::Platform.map(options[:platform])
170
165
  if app.reject_version_if_possible!(platform: platform)
171
166
  UI.success("Successfully rejected previous version!")