fastlane 2.151.2 → 2.155.0

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 (92) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +82 -82
  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 +1 -3
  7. data/deliver/lib/deliver/html_generator.rb +8 -1
  8. data/deliver/lib/deliver/options.rb +1 -1
  9. data/deliver/lib/deliver/runner.rb +5 -10
  10. data/deliver/lib/deliver/setup.rb +92 -3
  11. data/deliver/lib/deliver/submit_for_review.rb +4 -6
  12. data/deliver/lib/deliver/upload_metadata.rb +51 -30
  13. data/deliver/lib/deliver/upload_price_tier.rb +1 -3
  14. data/deliver/lib/deliver/upload_screenshots.rb +75 -44
  15. data/fastlane/lib/fastlane/{helper/.s3_client_helper.rb.swp → .erb_template_helper.rb.swp} +0 -0
  16. data/{deliver/lib/deliver/.commands_generator.rb.swp → fastlane/lib/fastlane/actions/.git_commit.rb.swp} +0 -0
  17. data/fastlane/lib/fastlane/actions/carthage.rb +7 -0
  18. data/fastlane/lib/fastlane/actions/create_keychain.rb +5 -1
  19. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +3 -1
  20. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +21 -2
  21. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +4 -4
  22. data/fastlane/lib/fastlane/actions/download_dsyms.rb +4 -2
  23. data/fastlane/lib/fastlane/actions/erb.rb +10 -2
  24. data/fastlane/lib/fastlane/actions/git_branch.rb +4 -1
  25. data/fastlane/lib/fastlane/actions/git_pull.rb +13 -2
  26. data/fastlane/lib/fastlane/actions/sync_code_signing.rb +5 -0
  27. data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +11 -3
  28. data/fastlane/lib/fastlane/runner.rb +3 -1
  29. data/fastlane/lib/fastlane/version.rb +1 -1
  30. data/fastlane/swift/Deliverfile.swift +1 -1
  31. data/fastlane/swift/DeliverfileProtocol.swift +3 -3
  32. data/fastlane/swift/Fastlane.swift +419 -192
  33. data/fastlane/swift/Gymfile.swift +1 -1
  34. data/fastlane/swift/GymfileProtocol.swift +1 -1
  35. data/fastlane/swift/Matchfile.swift +1 -1
  36. data/fastlane/swift/MatchfileProtocol.swift +10 -2
  37. data/fastlane/swift/Precheckfile.swift +1 -1
  38. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  39. data/fastlane/swift/Scanfile.swift +1 -1
  40. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  41. data/fastlane/swift/Screengrabfile.swift +1 -1
  42. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  43. data/fastlane/swift/Snapshotfile.swift +1 -1
  44. data/fastlane/swift/SnapshotfileProtocol.swift +9 -1
  45. data/fastlane_core/lib/fastlane_core/device_manager.rb +25 -6
  46. data/frameit/lib/frameit/editor.rb +11 -6
  47. data/gym/lib/gym/detect_values.rb +6 -3
  48. data/gym/lib/gym/module.rb +30 -0
  49. data/gym/lib/gym/runner.rb +23 -18
  50. data/match/lib/match/generator.rb +6 -0
  51. data/match/lib/match/options.rb +16 -4
  52. data/match/lib/match/runner.rb +13 -5
  53. data/match/lib/match/spaceship_ensure.rb +7 -9
  54. data/match/lib/match/storage/git_storage.rb +16 -2
  55. data/match/lib/match/storage/google_cloud_storage.rb +1 -1
  56. data/pilot/lib/pilot/build_manager.rb +9 -0
  57. data/pilot/lib/pilot/options.rb +7 -1
  58. data/scan/lib/scan/runner.rb +19 -6
  59. data/sigh/lib/sigh/download_all.rb +42 -27
  60. data/sigh/lib/sigh/module.rb +26 -0
  61. data/sigh/lib/sigh/options.rb +2 -2
  62. data/sigh/lib/sigh/runner.rb +74 -33
  63. data/snapshot/lib/snapshot/options.rb +10 -0
  64. data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +2 -0
  65. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +5 -0
  66. data/snapshot/lib/snapshot/test_command_generator.rb +3 -2
  67. data/snapshot/lib/snapshot/test_command_generator_xcode_8.rb +4 -1
  68. data/spaceship/lib/spaceship/connect_api.rb +1 -0
  69. data/spaceship/lib/spaceship/connect_api/client.rb +5 -3
  70. data/spaceship/lib/spaceship/connect_api/model.rb +15 -1
  71. data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +1 -0
  72. data/spaceship/lib/spaceship/connect_api/models/app.rb +61 -3
  73. data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +1 -0
  74. data/spaceship/lib/spaceship/connect_api/models/app_preview.rb +1 -0
  75. data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +44 -5
  76. data/spaceship/lib/spaceship/connect_api/models/app_store_review_detail.rb +1 -0
  77. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +12 -0
  78. data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +1 -0
  79. data/spaceship/lib/spaceship/connect_api/models/app_store_version_release_request.rb +12 -0
  80. data/spaceship/lib/spaceship/connect_api/models/build.rb +1 -0
  81. data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +17 -5
  82. data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +41 -7
  83. data/spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb +1 -0
  84. data/spaceship/lib/spaceship/connect_api/models/profile.rb +31 -1
  85. data/spaceship/lib/spaceship/connect_api/provisioning/client.rb +46 -4
  86. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +41 -0
  87. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +32 -1
  88. data/supply/lib/supply/client.rb +2 -1
  89. data/supply/lib/supply/options.rb +8 -1
  90. metadata +34 -61
  91. data/deliver/lib/deliver/.submit_for_review.rb.swp +0 -0
  92. data/frameit/lib/frameit/.editor.rb.swp +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 464c3b50c55d5218b4d201e97b429d41186c250824e8dc4afb147035b22389bd
4
- data.tar.gz: 60decb80f61f2690c2a21917dcffc03e5a09e15885abc7f26aa53d8db7bbf27f
3
+ metadata.gz: d05003197423c1e94c2728d49100fbacb7d5f5b657491b94e90f34432d2774ba
4
+ data.tar.gz: 99b28cc3d83ec3500d9a90554db8464ee479a7e533141e9246164d26fef8edba
5
5
  SHA512:
6
- metadata.gz: 86eb7c64a1f3bae172c3741700305415337779bcf6fdfd0ad044de2fe1bcafb373579e229637837c90653237d469f1b896023dedb1e7c6cf6a6a04cdd23efe1c
7
- data.tar.gz: 39dd908d4e3bb4d8d2bf7bbe569289967818059fdd990665762509f1d28bbdb500069cdddc56dc52889f0f1c58087cf89e906b1966c25748bc7c65c5e94e8184
6
+ metadata.gz: 9a7b6ce2df7348ad80f366ad54a619ad1d966348e3e2a0f616f43d160681c1ba15625f7c16923d4b0bbfa3c873b3936891001f53c5349abba1e0a3c0a6bb4704
7
+ data.tar.gz: c75739db5b1e8dcea81230f67effe0d1b46de274cab20d85183aa3dafb64088ed85a7260f2aa47e14e802c8a81879b541d7ba4fbca55f56a2c84c1cb09fbeae0
data/README.md CHANGED
@@ -34,23 +34,43 @@ 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='daniel-jankowski'>
38
- <a href='https://github.com/mollyIV'>
39
- <img src='https://github.com/mollyIV.png?size=140'>
37
+ <td id='danielle-tomlinson'>
38
+ <a href='https://github.com/endocrimes'>
39
+ <img src='https://github.com/endocrimes.png?size=140'>
40
40
  </a>
41
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
41
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
42
42
  </td>
43
- <td id='luka-mirosevic'>
44
- <a href='https://github.com/lmirosevic'>
45
- <img src='https://github.com/lmirosevic.png?size=140'>
43
+ <td id='olivier-halligon'>
44
+ <a href='https://github.com/AliSoftware'>
45
+ <img src='https://github.com/AliSoftware.png?size=140'>
46
46
  </a>
47
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
47
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
48
48
  </td>
49
- <td id='maksym-grebenets'>
50
- <a href='https://github.com/mgrebenets'>
51
- <img src='https://github.com/mgrebenets.png?size=140'>
49
+ <td id='max-ott'>
50
+ <a href='https://github.com/max-ott'>
51
+ <img src='https://github.com/max-ott.png?size=140'>
52
52
  </a>
53
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
53
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
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'>
58
+ </a>
59
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
60
+ </td>
61
+ <td id='andrew-mcburney'>
62
+ <a href='https://github.com/armcburney'>
63
+ <img src='https://github.com/armcburney.png?size=140'>
64
+ </a>
65
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</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'>
72
+ </a>
73
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
54
74
  </td>
55
75
  <td id='josh-holtz'>
56
76
  <a href='https://github.com/joshdholtz'>
@@ -58,11 +78,23 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
58
78
  </a>
59
79
  <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
60
80
  </td>
61
- <td id='joshua-liebowitz'>
62
- <a href='https://github.com/taquitos'>
63
- <img src='https://github.com/taquitos.png?size=140'>
81
+ <td id='manu-wallner'>
82
+ <a href='https://github.com/milch'>
83
+ <img src='https://github.com/milch.png?size=140'>
64
84
  </a>
65
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
85
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
86
+ </td>
87
+ <td id='fumiya-nakamura'>
88
+ <a href='https://github.com/nafu'>
89
+ <img src='https://github.com/nafu.png?size=140'>
90
+ </a>
91
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
92
+ </td>
93
+ <td id='felix-krause'>
94
+ <a href='https://github.com/KrauseFx'>
95
+ <img src='https://github.com/KrauseFx.png?size=140'>
96
+ </a>
97
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
66
98
  </td>
67
99
  </tr>
68
100
  <tr>
@@ -72,17 +104,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
72
104
  </a>
73
105
  <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
74
106
  </td>
75
- <td id='andrew-mcburney'>
76
- <a href='https://github.com/armcburney'>
77
- <img src='https://github.com/armcburney.png?size=140'>
107
+ <td id='matthew-ellis'>
108
+ <a href='https://github.com/matthewellis'>
109
+ <img src='https://github.com/matthewellis.png?size=140'>
78
110
  </a>
79
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
111
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
80
112
  </td>
81
- <td id='jorge-revuelta-h'>
82
- <a href='https://github.com/minuscorp'>
83
- <img src='https://github.com/minuscorp.png?size=140'>
113
+ <td id='daniel-jankowski'>
114
+ <a href='https://github.com/mollyIV'>
115
+ <img src='https://github.com/mollyIV.png?size=140'>
84
116
  </a>
85
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
117
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
86
118
  </td>
87
119
  <td id='jimmy-dee'>
88
120
  <a href='https://github.com/jdee'>
@@ -90,69 +122,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
90
122
  </a>
91
123
  <h4 align='center'>Jimmy Dee</h4>
92
124
  </td>
93
- <td id='iulian-onofrei'>
94
- <a href='https://github.com/revolter'>
95
- <img src='https://github.com/revolter.png?size=140'>
96
- </a>
97
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
98
- </td>
99
- </tr>
100
- <tr>
101
125
  <td id='jan-piotrowski'>
102
126
  <a href='https://github.com/janpio'>
103
127
  <img src='https://github.com/janpio.png?size=140'>
104
128
  </a>
105
129
  <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
106
130
  </td>
107
- <td id='danielle-tomlinson'>
108
- <a href='https://github.com/endocrimes'>
109
- <img src='https://github.com/endocrimes.png?size=140'>
110
- </a>
111
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
112
- </td>
113
- <td id='kohki-miki'>
114
- <a href='https://github.com/giginet'>
115
- <img src='https://github.com/giginet.png?size=140'>
116
- </a>
117
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
118
- </td>
119
- <td id='aaron-brager'>
120
- <a href='https://github.com/getaaron'>
121
- <img src='https://github.com/getaaron.png?size=140'>
122
- </a>
123
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
124
- </td>
125
- <td id='manu-wallner'>
126
- <a href='https://github.com/milch'>
127
- <img src='https://github.com/milch.png?size=140'>
128
- </a>
129
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
130
- </td>
131
131
  </tr>
132
132
  <tr>
133
- <td id='jérôme-lacoste'>
134
- <a href='https://github.com/lacostej'>
135
- <img src='https://github.com/lacostej.png?size=140'>
136
- </a>
137
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
138
- </td>
139
- <td id='fumiya-nakamura'>
140
- <a href='https://github.com/nafu'>
141
- <img src='https://github.com/nafu.png?size=140'>
133
+ <td id='luka-mirosevic'>
134
+ <a href='https://github.com/lmirosevic'>
135
+ <img src='https://github.com/lmirosevic.png?size=140'>
142
136
  </a>
143
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
137
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
144
138
  </td>
145
- <td id='matthew-ellis'>
146
- <a href='https://github.com/matthewellis'>
147
- <img src='https://github.com/matthewellis.png?size=140'>
139
+ <td id='maksym-grebenets'>
140
+ <a href='https://github.com/mgrebenets'>
141
+ <img src='https://github.com/mgrebenets.png?size=140'>
148
142
  </a>
149
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
143
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
150
144
  </td>
151
- <td id='felix-krause'>
152
- <a href='https://github.com/KrauseFx'>
153
- <img src='https://github.com/KrauseFx.png?size=140'>
145
+ <td id='kohki-miki'>
146
+ <a href='https://github.com/giginet'>
147
+ <img src='https://github.com/giginet.png?size=140'>
154
148
  </a>
155
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
149
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
156
150
  </td>
157
151
  <td id='helmut-januschka'>
158
152
  <a href='https://github.com/hjanuschka'>
@@ -160,19 +154,25 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
160
154
  </a>
161
155
  <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
162
156
  </td>
157
+ <td id='aaron-brager'>
158
+ <a href='https://github.com/getaaron'>
159
+ <img src='https://github.com/getaaron.png?size=140'>
160
+ </a>
161
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
162
+ </td>
163
163
  </tr>
164
164
  <tr>
165
- <td id='olivier-halligon'>
166
- <a href='https://github.com/AliSoftware'>
167
- <img src='https://github.com/AliSoftware.png?size=140'>
165
+ <td id='iulian-onofrei'>
166
+ <a href='https://github.com/revolter'>
167
+ <img src='https://github.com/revolter.png?size=140'>
168
168
  </a>
169
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
169
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
170
170
  </td>
171
- <td id='max-ott'>
172
- <a href='https://github.com/max-ott'>
173
- <img src='https://github.com/max-ott.png?size=140'>
171
+ <td id='joshua-liebowitz'>
172
+ <a href='https://github.com/taquitos'>
173
+ <img src='https://github.com/taquitos.png?size=140'>
174
174
  </a>
175
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
175
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</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]
@@ -1,3 +1,5 @@
1
+ require 'spaceship'
2
+
1
3
  require_relative 'module'
2
4
 
3
5
  module Deliver
@@ -51,7 +53,12 @@ module Deliver
51
53
  @app_name ||= options[:app].name
52
54
 
53
55
  @languages = options[:description].keys if options[:description]
54
- @languages ||= options[:app].latest_version.description.languages
56
+ @languages ||= begin
57
+ platform = Spaceship::ConnectAPI::Platform.map(options[:platform])
58
+ version = options[:app].get_edit_app_store_version(platform: platform)
59
+
60
+ version.get_app_store_version_localizations.collect(&:locale)
61
+ end
55
62
 
56
63
  html_path = File.join(Deliver::ROOT, "lib/assets/summary.html.erb")
57
64
  html = ERB.new(File.read(html_path)).result(binding) # https://web.archive.org/web/20160430190141/www.rrn.dk/rubys-erb-templating-system
@@ -292,7 +292,7 @@ module Deliver
292
292
  deprecated: "Removed after the migration to the new App Store Connect API in June 2020",
293
293
  is_string: false,
294
294
  type: Array,
295
- default_value: []),
295
+ optional: true),
296
296
 
297
297
  # Non Localised
298
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!")
@@ -40,9 +40,13 @@ module Deliver
40
40
  # This method takes care of creating a new 'deliver' folder, containing the app metadata
41
41
  # and screenshots folders
42
42
  def generate_deliver_file(deliver_path, options)
43
- v = options[:app].latest_version
43
+ app = options[:app]
44
+
45
+ platform = Spaceship::ConnectAPI::Platform.map(options[:platform])
46
+ v = app.get_latest_app_store_version(platform: platform)
47
+
44
48
  metadata_path = options[:metadata_path] || File.join(deliver_path, 'metadata')
45
- generate_metadata_files(v, metadata_path)
49
+ generate_metadata_files(app, v, metadata_path)
46
50
 
47
51
  # Generate the final Deliverfile here
48
52
  return File.read(deliverfile_path)
@@ -56,7 +60,92 @@ module Deliver
56
60
  end
57
61
  end
58
62
 
59
- def generate_metadata_files(v, path)
63
+ def generate_metadata_files(app, version, path)
64
+ # App info localizations
65
+ app_info = app.fetch_live_app_info || app.fetch_edit_app_info
66
+ app_info_localizations = app_info.get_app_info_localizations
67
+ app_info_localizations.each do |localization|
68
+ language = localization.locale
69
+
70
+ UploadMetadata::LOCALISED_APP_VALUES.each do |file_key, attribute_name|
71
+ content = localization.send(attribute_name.to_slug) || ""
72
+ content += "\n"
73
+
74
+ resulting_path = File.join(path, language, "#{file_key}.txt")
75
+ FileUtils.mkdir_p(File.expand_path('..', resulting_path))
76
+ File.write(resulting_path, content)
77
+
78
+ UI.message("Writing to '#{resulting_path}'")
79
+ end
80
+ end
81
+
82
+ # Version localizations
83
+ version_localizations = version.get_app_store_version_localizations
84
+ version_localizations.each do |localization|
85
+ language = localization.locale
86
+
87
+ UploadMetadata::LOCALISED_VERSION_VALUES.each do |file_key, attribute_name|
88
+ content = localization.send(attribute_name) || ""
89
+ content += "\n"
90
+
91
+ resulting_path = File.join(path, language, "#{file_key}.txt")
92
+ FileUtils.mkdir_p(File.expand_path('..', resulting_path))
93
+ File.write(resulting_path, content)
94
+
95
+ UI.message("Writing to '#{resulting_path}'")
96
+ end
97
+ end
98
+
99
+ # App info (categories)
100
+ UploadMetadata::NON_LOCALISED_APP_VALUES.each do |file_key, attribute_name|
101
+ category = app_info.send(attribute_name)
102
+
103
+ content = category ? category.id.to_s : ""
104
+ content += "\n"
105
+
106
+ resulting_path = File.join(path, "#{file_key}.txt")
107
+ FileUtils.mkdir_p(File.expand_path('..', resulting_path))
108
+ File.write(resulting_path, content)
109
+
110
+ UI.message("Writing to '#{resulting_path}'")
111
+ end
112
+
113
+ # Version
114
+ UploadMetadata::NON_LOCALISED_VERSION_VALUES.each do |file_key, attribute_name|
115
+ content = version.send(attribute_name) || ""
116
+ content += "\n"
117
+
118
+ resulting_path = File.join(path, "#{file_key}.txt")
119
+ FileUtils.mkdir_p(File.expand_path('..', resulting_path))
120
+ File.write(resulting_path, content)
121
+
122
+ UI.message("Writing to '#{resulting_path}'")
123
+ end
124
+
125
+ # Review information
126
+ app_store_review_detail = begin
127
+ version.fetch_app_store_review_detail
128
+ rescue
129
+ nil
130
+ end # errors if doesn't exist
131
+ UploadMetadata::REVIEW_INFORMATION_VALUES.each do |file_key, attribute_name|
132
+ if app_store_review_detail
133
+ content = app_store_review_detail.send(attribute_name) || ""
134
+ else
135
+ content = ""
136
+ end
137
+ content += "\n"
138
+
139
+ base_dir = File.join(path, UploadMetadata::REVIEW_INFORMATION_DIR)
140
+ resulting_path = File.join(base_dir, "#{file_key}.txt")
141
+ FileUtils.mkdir_p(File.expand_path('..', resulting_path))
142
+ File.write(resulting_path, content)
143
+
144
+ UI.message("Writing to '#{resulting_path}'")
145
+ end
146
+ end
147
+
148
+ def generate_metadata_files_old(v, path)
60
149
  app_details = v.application.details
61
150
 
62
151
  # All the localised metadata