fastlane 2.212.1 → 2.219.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 (227) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +100 -100
  3. data/deliver/lib/deliver/app_screenshot.rb +22 -12
  4. data/deliver/lib/deliver/app_screenshot_iterator.rb +2 -2
  5. data/deliver/lib/deliver/detect_values.rb +1 -1
  6. data/deliver/lib/deliver/languages.rb +1 -1
  7. data/deliver/lib/deliver/loader.rb +2 -2
  8. data/deliver/lib/deliver/options.rb +4 -4
  9. data/deliver/lib/deliver/runner.rb +10 -9
  10. data/deliver/lib/deliver/submit_for_review.rb +13 -0
  11. data/deliver/lib/deliver/sync_screenshots.rb +2 -2
  12. data/deliver/lib/deliver/upload_metadata.rb +60 -15
  13. data/deliver/lib/deliver/upload_price_tier.rb +2 -2
  14. data/deliver/lib/deliver/upload_screenshots.rb +3 -3
  15. data/fastlane/lib/assets/custom_action_template.rb +18 -12
  16. data/fastlane/lib/fastlane/action.rb +1 -1
  17. data/fastlane/lib/fastlane/actions/appledoc.rb +1 -1
  18. data/fastlane/lib/fastlane/actions/apteligent.rb +1 -1
  19. data/fastlane/lib/fastlane/actions/backup_xcarchive.rb +1 -1
  20. data/fastlane/lib/fastlane/actions/commit_github_file.rb +2 -2
  21. data/fastlane/lib/fastlane/actions/copy_artifacts.rb +1 -1
  22. data/fastlane/lib/fastlane/actions/create_app_online.rb +1 -1
  23. data/fastlane/lib/fastlane/actions/create_pull_request.rb +1 -1
  24. data/fastlane/lib/fastlane/actions/docs/build_app.md +2 -2
  25. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +8 -8
  26. data/fastlane/lib/fastlane/actions/docs/check_app_store_metadata.md +3 -3
  27. data/fastlane/lib/fastlane/actions/docs/get_push_certificate.md +2 -2
  28. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +6 -4
  29. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +1 -1
  30. data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +6 -2
  31. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +1 -1
  32. data/fastlane/lib/fastlane/actions/download_universal_apk_from_google_play.rb +124 -0
  33. data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +44 -5
  34. data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +4 -0
  35. data/fastlane/lib/fastlane/actions/get_certificates.rb +1 -1
  36. data/fastlane/lib/fastlane/actions/get_github_release.rb +1 -1
  37. data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +1 -1
  38. data/fastlane/lib/fastlane/actions/git_branch.rb +1 -1
  39. data/fastlane/lib/fastlane/actions/github_api.rb +1 -1
  40. data/fastlane/lib/fastlane/actions/gradle.rb +1 -1
  41. data/fastlane/lib/fastlane/actions/install_on_device.rb +2 -2
  42. data/fastlane/lib/fastlane/actions/ipa.rb +1 -1
  43. data/fastlane/lib/fastlane/actions/jazzy.rb +1 -1
  44. data/fastlane/lib/fastlane/actions/nexus_upload.rb +1 -0
  45. data/fastlane/lib/fastlane/actions/notarize.rb +17 -2
  46. data/fastlane/lib/fastlane/actions/oclint.rb +3 -3
  47. data/fastlane/lib/fastlane/actions/opt_out_crash_reporting.rb +2 -2
  48. data/fastlane/lib/fastlane/actions/restore_file.rb +1 -1
  49. data/fastlane/lib/fastlane/actions/set_github_release.rb +1 -1
  50. data/fastlane/lib/fastlane/actions/slather.rb +18 -5
  51. data/fastlane/lib/fastlane/actions/sonar.rb +12 -3
  52. data/fastlane/lib/fastlane/actions/splunkmint.rb +1 -1
  53. data/fastlane/lib/fastlane/actions/spm.rb +76 -2
  54. data/fastlane/lib/fastlane/actions/update_info_plist.rb +1 -1
  55. data/fastlane/lib/fastlane/actions/update_urban_airship_configuration.rb +1 -1
  56. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +1 -0
  57. data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +1 -1
  58. data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +2 -2
  59. data/fastlane/lib/fastlane/actions/verify_build.rb +7 -4
  60. data/fastlane/lib/fastlane/actions/xcov.rb +1 -1
  61. data/fastlane/lib/fastlane/cli_tools_distributor.rb +1 -1
  62. data/fastlane/lib/fastlane/command_line_handler.rb +2 -4
  63. data/fastlane/lib/fastlane/commands_generator.rb +2 -2
  64. data/fastlane/lib/fastlane/fast_file.rb +1 -1
  65. data/fastlane/lib/fastlane/helper/dotenv_helper.rb +1 -1
  66. data/fastlane/lib/fastlane/helper/git_helper.rb +3 -0
  67. data/fastlane/lib/fastlane/helper/xcodes_helper.rb +0 -3
  68. data/fastlane/lib/fastlane/junit_generator.rb +1 -1
  69. data/fastlane/lib/fastlane/lane.rb +9 -1
  70. data/fastlane/lib/fastlane/lane_manager.rb +1 -2
  71. data/fastlane/lib/fastlane/new_action.rb +1 -1
  72. data/fastlane/lib/fastlane/plugins/plugin_info_collector.rb +3 -3
  73. data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +1 -13
  74. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +9 -1
  75. data/fastlane/lib/fastlane/plugins/template/Gemfile.erb +27 -0
  76. data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/helper/%plugin_name%_helper.rb.erb +1 -1
  77. data/fastlane/lib/fastlane/runner.rb +2 -2
  78. data/fastlane/lib/fastlane/setup/setup.rb +1 -1
  79. data/fastlane/lib/fastlane/swift_lane_manager.rb +2 -5
  80. data/fastlane/lib/fastlane/swift_runner_upgrader.rb +7 -4
  81. data/fastlane/lib/fastlane/version.rb +2 -2
  82. data/fastlane/swift/Actions.swift +1 -1
  83. data/fastlane/swift/Appfile.swift +1 -1
  84. data/fastlane/swift/ArgumentProcessor.swift +1 -1
  85. data/fastlane/swift/Atomic.swift +1 -1
  86. data/fastlane/swift/ControlCommand.swift +1 -1
  87. data/fastlane/swift/Deliverfile.swift +2 -2
  88. data/fastlane/swift/DeliverfileProtocol.swift +4 -4
  89. data/fastlane/swift/Fastlane.swift +227 -36
  90. data/fastlane/swift/Gymfile.swift +2 -2
  91. data/fastlane/swift/GymfileProtocol.swift +2 -2
  92. data/fastlane/swift/LaneFileProtocol.swift +5 -5
  93. data/fastlane/swift/MainProcess.swift +1 -1
  94. data/fastlane/swift/Matchfile.swift +2 -2
  95. data/fastlane/swift/MatchfileProtocol.swift +22 -2
  96. data/fastlane/swift/OptionalConfigValue.swift +1 -1
  97. data/fastlane/swift/Plugins.swift +1 -1
  98. data/fastlane/swift/Precheckfile.swift +2 -2
  99. data/fastlane/swift/PrecheckfileProtocol.swift +2 -2
  100. data/fastlane/swift/RubyCommand.swift +1 -1
  101. data/fastlane/swift/RubyCommandable.swift +1 -1
  102. data/fastlane/swift/Runner.swift +1 -1
  103. data/fastlane/swift/RunnerArgument.swift +1 -1
  104. data/fastlane/swift/Scanfile.swift +2 -2
  105. data/fastlane/swift/ScanfileProtocol.swift +6 -2
  106. data/fastlane/swift/Screengrabfile.swift +2 -2
  107. data/fastlane/swift/ScreengrabfileProtocol.swift +2 -2
  108. data/fastlane/swift/Snapshotfile.swift +2 -2
  109. data/fastlane/swift/SnapshotfileProtocol.swift +2 -2
  110. data/fastlane/swift/SocketClient.swift +1 -1
  111. data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
  112. data/fastlane/swift/SocketResponse.swift +1 -1
  113. data/fastlane/swift/formatting/Brewfile.lock.json +31 -23
  114. data/fastlane/swift/main.swift +1 -1
  115. data/fastlane_core/lib/fastlane_core/build_watcher.rb +1 -1
  116. data/fastlane_core/lib/fastlane_core/cert_checker.rb +4 -9
  117. data/fastlane_core/lib/fastlane_core/configuration/configuration_file.rb +1 -1
  118. data/fastlane_core/lib/fastlane_core/device_manager.rb +17 -15
  119. data/fastlane_core/lib/fastlane_core/fastlane_pty.rb +34 -12
  120. data/fastlane_core/lib/fastlane_core/helper.rb +1 -1
  121. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +53 -16
  122. data/fastlane_core/lib/fastlane_core/project.rb +7 -2
  123. data/fastlane_core/lib/fastlane_core/queue_worker.rb +2 -2
  124. data/fastlane_core/lib/fastlane_core/string_filters.rb +6 -6
  125. data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +2 -2
  126. data/frameit/lib/frameit/device_types.rb +1 -1
  127. data/frameit/lib/frameit/editor.rb +4 -4
  128. data/frameit/lib/frameit/trim_box.rb +1 -1
  129. data/gym/lib/gym/error_handler.rb +1 -1
  130. data/gym/lib/gym/generators/build_command_generator.rb +1 -1
  131. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +3 -3
  132. data/gym/lib/gym/module.rb +13 -2
  133. data/gym/lib/gym/options.rb +1 -1
  134. data/gym/lib/gym/runner.rb +1 -1
  135. data/gym/lib/gym/xcodebuild_fixes/README.md +1 -1
  136. data/match/lib/match/change_password.rb +3 -9
  137. data/match/lib/match/commands_generator.rb +3 -6
  138. data/match/lib/match/encryption.rb +1 -1
  139. data/match/lib/match/generator.rb +9 -1
  140. data/match/lib/match/importer.rb +3 -30
  141. data/match/lib/match/migrate.rb +6 -2
  142. data/match/lib/match/module.rb +2 -1
  143. data/match/lib/match/nuke.rb +3 -24
  144. data/match/lib/match/options.rb +25 -0
  145. data/match/lib/match/portal_cache.rb +106 -0
  146. data/match/lib/match/portal_fetcher.rb +72 -0
  147. data/match/lib/match/profile_includes.rb +120 -0
  148. data/match/lib/match/runner.rb +93 -209
  149. data/match/lib/match/setup.rb +1 -1
  150. data/match/lib/match/spaceship_ensure.rb +15 -11
  151. data/match/lib/match/storage/git_storage.rb +17 -4
  152. data/match/lib/match/storage/gitlab/client.rb +40 -14
  153. data/match/lib/match/storage/gitlab_secure_files.rb +18 -7
  154. data/match/lib/match/storage/interface.rb +1 -1
  155. data/match/lib/match/storage/s3_storage.rb +7 -1
  156. data/match/lib/match/storage.rb +56 -5
  157. data/match/lib/match.rb +3 -0
  158. data/pilot/lib/pilot/build_manager.rb +4 -4
  159. data/precheck/lib/precheck/rules/unreachable_urls_rule.rb +1 -1
  160. data/produce/lib/produce/itunes_connect.rb +1 -1
  161. data/scan/lib/scan/detect_values.rb +86 -21
  162. data/scan/lib/scan/options.rb +6 -1
  163. data/scan/lib/scan/runner.rb +1 -1
  164. data/scan/lib/scan/test_command_generator.rb +1 -1
  165. data/screengrab/lib/screengrab/runner.rb +1 -1
  166. data/sigh/lib/assets/resign.sh +10 -10
  167. data/sigh/lib/sigh/commands_generator.rb +1 -1
  168. data/sigh/lib/sigh/module.rb +98 -0
  169. data/sigh/lib/sigh/options.rb +55 -1
  170. data/sigh/lib/sigh/resign.rb +1 -1
  171. data/sigh/lib/sigh/runner.rb +36 -112
  172. data/snapshot/lib/assets/SnapshotHelper.swift +13 -9
  173. data/snapshot/lib/snapshot/latest_os_version.rb +2 -5
  174. data/snapshot/lib/snapshot/reports_generator.rb +48 -7
  175. data/snapshot/lib/snapshot/setup.rb +2 -2
  176. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +23 -22
  177. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +2 -2
  178. data/snapshot/lib/snapshot/test_command_generator.rb +1 -1
  179. data/spaceship/lib/spaceship/client.rb +1 -2
  180. data/spaceship/lib/spaceship/connect_api/api_client.rb +22 -3
  181. data/spaceship/lib/spaceship/connect_api/client.rb +4 -4
  182. data/spaceship/lib/spaceship/connect_api/models/app.rb +5 -4
  183. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +15 -9
  184. data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +2 -0
  185. data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +2 -2
  186. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +7 -0
  187. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +1 -0
  188. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +3 -1
  189. data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +5 -5
  190. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +3 -3
  191. data/spaceship/lib/spaceship/connect_api/models/device.rb +83 -4
  192. data/spaceship/lib/spaceship/connect_api/models/profile.rb +5 -3
  193. data/spaceship/lib/spaceship/connect_api/models/user.rb +38 -0
  194. data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +5 -15
  195. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +14 -8
  196. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +8 -2
  197. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +3 -6
  198. data/spaceship/lib/spaceship/connect_api/users/users.rb +34 -0
  199. data/spaceship/lib/spaceship/connect_api.rb +2 -0
  200. data/spaceship/lib/spaceship/portal/app.rb +1 -1
  201. data/spaceship/lib/spaceship/portal/app_group.rb +1 -1
  202. data/spaceship/lib/spaceship/test_flight/client.rb +1 -1
  203. data/spaceship/lib/spaceship/test_flight/tester.rb +1 -1
  204. data/spaceship/lib/spaceship/tunes/app_details.rb +2 -2
  205. data/spaceship/lib/spaceship/tunes/app_image.rb +1 -1
  206. data/spaceship/lib/spaceship/tunes/app_review_attachment.rb +1 -1
  207. data/spaceship/lib/spaceship/tunes/app_submission.rb +1 -1
  208. data/spaceship/lib/spaceship/tunes/app_version.rb +5 -5
  209. data/spaceship/lib/spaceship/tunes/build_details.rb +1 -1
  210. data/spaceship/lib/spaceship/tunes/iap.rb +3 -3
  211. data/spaceship/lib/spaceship/tunes/iap_detail.rb +2 -2
  212. data/spaceship/lib/spaceship/tunes/iap_families.rb +1 -1
  213. data/spaceship/lib/spaceship/tunes/iap_family_details.rb +2 -2
  214. data/spaceship/lib/spaceship/tunes/iap_family_list.rb +1 -1
  215. data/spaceship/lib/spaceship/tunes/tunes_client.rb +3 -3
  216. data/supply/lib/supply/client.rb +80 -21
  217. data/supply/lib/supply/generated_universal_apk.rb +24 -0
  218. data/supply/lib/supply/image_listing.rb +15 -0
  219. data/supply/lib/supply/options.rb +5 -0
  220. data/supply/lib/supply/setup.rb +2 -2
  221. data/supply/lib/supply/uploader.rb +60 -18
  222. data/supply/lib/supply.rb +2 -0
  223. data/trainer/lib/trainer/junit_generator.rb +1 -1
  224. data/trainer/lib/trainer/test_parser.rb +1 -1
  225. data/trainer/lib/trainer/xcresult.rb +1 -1
  226. metadata +205 -431
  227. data/fastlane/lib/fastlane/plugins/template/Gemfile +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 244364fbe5e40c851dc1afbb79fe8c79ba76fedee6e607d7cf950f043ba7b921
4
- data.tar.gz: 5f4f4f4462eb64a87ed63df0ece646c100ae8d3a0c37a84eff9cbad76f51c2a8
3
+ metadata.gz: fc5ecf6d8cf5ad100811fa9a386cf6bdc02d8e4054663e2c3a59d94624a7cda8
4
+ data.tar.gz: 4bf38a96eba5cf4cb1918155136ead760e2462e8b2bdbd19bf2f7f29afbb39a3
5
5
  SHA512:
6
- metadata.gz: ae5c7a99e698db70b74516d415601ee4368fa864cd114a867d44098e0e52a2b68a361fc0178f902c0f0e6fefe3618639a259c92bde33906cb6a0501aa82d18e2
7
- data.tar.gz: b736ceec481316c6d9cde333299bff4c8145e5b11f5e802acb60a9c59028c9a9444a7a771dcf8f21f952a3cd64e2959e7a87ae224fecad503e34a1d032481123
6
+ metadata.gz: 67749a0ada8ac8654b5d3b42221e41562249a014435e9f0bf8354e441370b072e34a25e422d40c81266a1395969d56c8898e6e0492d7d17b82e2c98864d97791
7
+ data.tar.gz: 7e9d404f597ad89a09df94ca1c51b4f1bf6a894493cf66c6efb69eefd93bce34e429407d80cdb289a2170b70f9619ef4f8f77af1065c78aa3ba6a6602540b034
data/README.md CHANGED
@@ -35,43 +35,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
35
35
  <!-- This table is regenerated and resorted on each release -->
36
36
  <table id='team'>
37
37
  <tr>
38
- <td id='roger-oba'>
39
- <a href='https://github.com/rogerluan'>
40
- <img src='https://github.com/rogerluan.png' width='140px;'>
41
- </a>
42
- <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
43
- </td>
44
- <td id='fumiya-nakamura'>
45
- <a href='https://github.com/nafu'>
46
- <img src='https://github.com/nafu.png' width='140px;'>
47
- </a>
48
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
49
- </td>
50
- <td id='josh-holtz'>
51
- <a href='https://github.com/joshdholtz'>
52
- <img src='https://github.com/joshdholtz.png' width='140px;'>
53
- </a>
54
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
55
- </td>
56
- <td id='daniel-jankowski'>
57
- <a href='https://github.com/mollyIV'>
58
- <img src='https://github.com/mollyIV.png' width='140px;'>
59
- </a>
60
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
61
- </td>
62
- <td id='jan-piotrowski'>
63
- <a href='https://github.com/janpio'>
64
- <img src='https://github.com/janpio.png' width='140px;'>
38
+ <td id='manu-wallner'>
39
+ <a href='https://github.com/milch'>
40
+ <img src='https://github.com/milch.png' width='140px;'>
65
41
  </a>
66
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
42
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
67
43
  </td>
68
- </tr>
69
- <tr>
70
- <td id='satoshi-namai'>
71
- <a href='https://github.com/ainame'>
72
- <img src='https://github.com/ainame.png' width='140px;'>
44
+ <td id='joshua-liebowitz'>
45
+ <a href='https://github.com/taquitos'>
46
+ <img src='https://github.com/taquitos.png' width='140px;'>
73
47
  </a>
74
- <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
48
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
75
49
  </td>
76
50
  <td id='danielle-tomlinson'>
77
51
  <a href='https://github.com/endocrimes'>
@@ -79,31 +53,25 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
79
53
  </a>
80
54
  <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
81
55
  </td>
82
- <td id='stefan-natchev'>
83
- <a href='https://github.com/snatchev'>
84
- <img src='https://github.com/snatchev.png' width='140px;'>
85
- </a>
86
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
87
- </td>
88
- <td id='matthew-ellis'>
89
- <a href='https://github.com/matthewellis'>
90
- <img src='https://github.com/matthewellis.png' width='140px;'>
56
+ <td id='satoshi-namai'>
57
+ <a href='https://github.com/ainame'>
58
+ <img src='https://github.com/ainame.png' width='140px;'>
91
59
  </a>
92
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
60
+ <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
93
61
  </td>
94
- <td id='iulian-onofrei'>
95
- <a href='https://github.com/revolter'>
96
- <img src='https://github.com/revolter.png' width='140px;'>
62
+ <td id='felix-krause'>
63
+ <a href='https://github.com/KrauseFx'>
64
+ <img src='https://github.com/KrauseFx.png' width='140px;'>
97
65
  </a>
98
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
66
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
99
67
  </td>
100
68
  </tr>
101
69
  <tr>
102
- <td id='jorge-revuelta-h'>
103
- <a href='https://github.com/minuscorp'>
104
- <img src='https://github.com/minuscorp.png' width='140px;'>
70
+ <td id='łukasz-grabowski'>
71
+ <a href='https://github.com/lucgrabowski'>
72
+ <img src='https://github.com/lucgrabowski.png' width='140px;'>
105
73
  </a>
106
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
74
+ <h4 align='center'>Łukasz Grabowski</h4>
107
75
  </td>
108
76
  <td id='maksym-grebenets'>
109
77
  <a href='https://github.com/mgrebenets'>
@@ -111,23 +79,23 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
111
79
  </a>
112
80
  <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
113
81
  </td>
114
- <td id='luka-mirosevic'>
115
- <a href='https://github.com/lmirosevic'>
116
- <img src='https://github.com/lmirosevic.png' width='140px;'>
82
+ <td id='fumiya-nakamura'>
83
+ <a href='https://github.com/nafu'>
84
+ <img src='https://github.com/nafu.png' width='140px;'>
117
85
  </a>
118
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
86
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
119
87
  </td>
120
- <td id='manish-rathi'>
121
- <a href='https://github.com/crazymanish'>
122
- <img src='https://github.com/crazymanish.png' width='140px;'>
88
+ <td id='jérôme-lacoste'>
89
+ <a href='https://github.com/lacostej'>
90
+ <img src='https://github.com/lacostej.png' width='140px;'>
123
91
  </a>
124
- <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
92
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
125
93
  </td>
126
- <td id='felix-krause'>
127
- <a href='https://github.com/KrauseFx'>
128
- <img src='https://github.com/KrauseFx.png' width='140px;'>
94
+ <td id='stefan-natchev'>
95
+ <a href='https://github.com/snatchev'>
96
+ <img src='https://github.com/snatchev.png' width='140px;'>
129
97
  </a>
130
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
98
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
131
99
  </td>
132
100
  </tr>
133
101
  <tr>
@@ -137,43 +105,75 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
137
105
  </a>
138
106
  <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
139
107
  </td>
140
- <td id='olivier-halligon'>
141
- <a href='https://github.com/AliSoftware'>
142
- <img src='https://github.com/AliSoftware.png' width='140px;'>
108
+ <td id='manish-rathi'>
109
+ <a href='https://github.com/crazymanish'>
110
+ <img src='https://github.com/crazymanish.png' width='140px;'>
143
111
  </a>
144
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
112
+ <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
145
113
  </td>
146
- <td id='łukasz-grabowski'>
147
- <a href='https://github.com/lucgrabowski'>
148
- <img src='https://github.com/lucgrabowski.png' width='140px;'>
114
+ <td id='max-ott'>
115
+ <a href='https://github.com/max-ott'>
116
+ <img src='https://github.com/max-ott.png' width='140px;'>
149
117
  </a>
150
- <h4 align='center'>Łukasz Grabowski</h4>
118
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
151
119
  </td>
152
- <td id='kohki-miki'>
153
- <a href='https://github.com/giginet'>
154
- <img src='https://github.com/giginet.png' width='140px;'>
120
+ <td id='jimmy-dee'>
121
+ <a href='https://github.com/jdee'>
122
+ <img src='https://github.com/jdee.png' width='140px;'>
155
123
  </a>
156
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
124
+ <h4 align='center'>Jimmy Dee</h4>
157
125
  </td>
158
- <td id='joshua-liebowitz'>
159
- <a href='https://github.com/taquitos'>
160
- <img src='https://github.com/taquitos.png' width='140px;'>
126
+ <td id='roger-oba'>
127
+ <a href='https://github.com/rogerluan'>
128
+ <img src='https://github.com/rogerluan.png' width='140px;'>
161
129
  </a>
162
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
130
+ <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
163
131
  </td>
164
132
  </tr>
165
133
  <tr>
166
- <td id='jimmy-dee'>
167
- <a href='https://github.com/jdee'>
168
- <img src='https://github.com/jdee.png' width='140px;'>
134
+ <td id='iulian-onofrei'>
135
+ <a href='https://github.com/revolter'>
136
+ <img src='https://github.com/revolter.png' width='140px;'>
169
137
  </a>
170
- <h4 align='center'>Jimmy Dee</h4>
138
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
171
139
  </td>
172
- <td id='manu-wallner'>
173
- <a href='https://github.com/milch'>
174
- <img src='https://github.com/milch.png' width='140px;'>
140
+ <td id='josh-holtz'>
141
+ <a href='https://github.com/joshdholtz'>
142
+ <img src='https://github.com/joshdholtz.png' width='140px;'>
175
143
  </a>
176
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
144
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
145
+ </td>
146
+ <td id='daniel-jankowski'>
147
+ <a href='https://github.com/mollyIV'>
148
+ <img src='https://github.com/mollyIV.png' width='140px;'>
149
+ </a>
150
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
151
+ </td>
152
+ <td id='andrew-mcburney'>
153
+ <a href='https://github.com/armcburney'>
154
+ <img src='https://github.com/armcburney.png' width='140px;'>
155
+ </a>
156
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
157
+ </td>
158
+ <td id='jan-piotrowski'>
159
+ <a href='https://github.com/janpio'>
160
+ <img src='https://github.com/janpio.png' width='140px;'>
161
+ </a>
162
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
163
+ </td>
164
+ </tr>
165
+ <tr>
166
+ <td id='luka-mirosevic'>
167
+ <a href='https://github.com/lmirosevic'>
168
+ <img src='https://github.com/lmirosevic.png' width='140px;'>
169
+ </a>
170
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
171
+ </td>
172
+ <td id='kohki-miki'>
173
+ <a href='https://github.com/giginet'>
174
+ <img src='https://github.com/giginet.png' width='140px;'>
175
+ </a>
176
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
177
177
  </td>
178
178
  <td id='aaron-brager'>
179
179
  <a href='https://github.com/getaaron'>
@@ -181,25 +181,25 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
181
181
  </a>
182
182
  <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
183
183
  </td>
184
- <td id='max-ott'>
185
- <a href='https://github.com/max-ott'>
186
- <img src='https://github.com/max-ott.png' width='140px;'>
184
+ <td id='olivier-halligon'>
185
+ <a href='https://github.com/AliSoftware'>
186
+ <img src='https://github.com/AliSoftware.png' width='140px;'>
187
187
  </a>
188
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
188
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
189
189
  </td>
190
- <td id='andrew-mcburney'>
191
- <a href='https://github.com/armcburney'>
192
- <img src='https://github.com/armcburney.png' width='140px;'>
190
+ <td id='jorge-revuelta-h'>
191
+ <a href='https://github.com/minuscorp'>
192
+ <img src='https://github.com/minuscorp.png' width='140px;'>
193
193
  </a>
194
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
194
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
195
195
  </td>
196
196
  </tr>
197
197
  <tr>
198
- <td id='jérôme-lacoste'>
199
- <a href='https://github.com/lacostej'>
200
- <img src='https://github.com/lacostej.png' width='140px;'>
198
+ <td id='matthew-ellis'>
199
+ <a href='https://github.com/matthewellis'>
200
+ <img src='https://github.com/matthewellis.png' width='140px;'>
201
201
  </a>
202
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
202
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
203
203
  </td>
204
204
  </table>
205
205
 
@@ -19,9 +19,9 @@ module Deliver
19
19
  IOS_55 = "iOS-5.5-in"
20
20
  # iPhone XS
21
21
  IOS_58 = "iOS-5.8-in"
22
- # iPhone XR
22
+ # iPhone 14 Pro
23
23
  IOS_61 = "iOS-6.1-in"
24
- # iPhone XS Max
24
+ # iPhone 14 Plus, iPhone 13 Pro Max, iPhone 12 Pro Max, iPhone 11 Pro Max, iPhone 11, iPhone XS Max, iPhone XR
25
25
  IOS_65 = "iOS-6.5-in"
26
26
  # iPhone 14 Pro Max
27
27
  IOS_67 = "iOS-6.7-in"
@@ -45,9 +45,9 @@ module Deliver
45
45
  IOS_55_MESSAGES = "iOS-5.5-in-messages"
46
46
  # iPhone XS iMessage
47
47
  IOS_58_MESSAGES = "iOS-5.8-in-messages"
48
- # iPhone XR iMessage
48
+ # iPhone 14 Pro iMessage
49
49
  IOS_61_MESSAGES = "iOS-6.1-in-messages"
50
- # iPhone XS Max iMessage
50
+ # iPhone 14 Plus, iPhone 13 Pro Max, iPhone 12 Pro Max, iPhone 11 Pro Max, iPhone 11, iPhone XS Max, iPhone XR iMessage
51
51
  IOS_65_MESSAGES = "iOS-6.5-in-messages"
52
52
  # iPhone 14 Pro Max iMessage
53
53
  IOS_67_MESSAGES = "iOS-6.7-in-messages"
@@ -69,6 +69,8 @@ module Deliver
69
69
  IOS_APPLE_WATCH_SERIES4 = "iOS-Apple-Watch-Series4"
70
70
  # Apple Watch Series 7
71
71
  IOS_APPLE_WATCH_SERIES7 = "iOS-Apple-Watch-Series7"
72
+ # Apple Watch Ultra
73
+ IOS_APPLE_WATCH_ULTRA = "iOS-Apple-Watch-Ultra"
72
74
 
73
75
  # Apple TV
74
76
  APPLE_TV = "Apple-TV"
@@ -104,6 +106,7 @@ module Deliver
104
106
  ScreenSize::IOS_47 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_47, # also 7 & 8
105
107
  ScreenSize::IOS_55 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_55, # also 7 Plus & 8 Plus
106
108
  ScreenSize::IOS_58 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_58,
109
+ ScreenSize::IOS_61 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_61,
107
110
  ScreenSize::IOS_65 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_65,
108
111
  ScreenSize::IOS_67 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_67,
109
112
  ScreenSize::IOS_IPAD => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_97,
@@ -115,6 +118,7 @@ module Deliver
115
118
  ScreenSize::IOS_47_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_47, # also 7 & 8
116
119
  ScreenSize::IOS_55_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_55, # also 7 Plus & 8 Plus
117
120
  ScreenSize::IOS_58_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_58,
121
+ ScreenSize::IOS_61_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_61,
118
122
  ScreenSize::IOS_65_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_65,
119
123
  ScreenSize::IOS_67_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_67,
120
124
  ScreenSize::IOS_IPAD_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_97,
@@ -126,6 +130,7 @@ module Deliver
126
130
  ScreenSize::IOS_APPLE_WATCH => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_3,
127
131
  ScreenSize::IOS_APPLE_WATCH_SERIES4 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_4,
128
132
  ScreenSize::IOS_APPLE_WATCH_SERIES7 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_7,
133
+ ScreenSize::IOS_APPLE_WATCH_ULTRA => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_ULTRA,
129
134
  ScreenSize::APPLE_TV => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_APPLE_TV
130
135
  }
131
136
  return matching[self.screen_size]
@@ -139,7 +144,7 @@ module Deliver
139
144
  ScreenSize::IOS_47 => "iPhone 6", # also 7 & 8
140
145
  ScreenSize::IOS_55 => "iPhone 6 Plus", # also 7 Plus & 8 Plus
141
146
  ScreenSize::IOS_58 => "iPhone XS",
142
- ScreenSize::IOS_61 => "iPhone XR",
147
+ ScreenSize::IOS_61 => "iPhone 14 Pro",
143
148
  ScreenSize::IOS_65 => "iPhone XS Max",
144
149
  ScreenSize::IOS_67 => "iPhone 14 Pro Max",
145
150
  ScreenSize::IOS_IPAD => "iPad",
@@ -151,7 +156,7 @@ module Deliver
151
156
  ScreenSize::IOS_47_MESSAGES => "iPhone 6 (iMessage)", # also 7 & 8
152
157
  ScreenSize::IOS_55_MESSAGES => "iPhone 6 Plus (iMessage)", # also 7 Plus & 8 Plus
153
158
  ScreenSize::IOS_58_MESSAGES => "iPhone XS (iMessage)",
154
- ScreenSize::IOS_61_MESSAGES => "iPhone XR (iMessage)",
159
+ ScreenSize::IOS_61_MESSAGES => "iPhone 14 Pro (iMessage)",
155
160
  ScreenSize::IOS_65_MESSAGES => "iPhone XS Max (iMessage)",
156
161
  ScreenSize::IOS_67_MESSAGES => "iPhone 14 Pro Max (iMessage)",
157
162
  ScreenSize::IOS_IPAD_MESSAGES => "iPad (iMessage)",
@@ -163,6 +168,7 @@ module Deliver
163
168
  ScreenSize::IOS_APPLE_WATCH => "Watch",
164
169
  ScreenSize::IOS_APPLE_WATCH_SERIES4 => "Watch Series4",
165
170
  ScreenSize::IOS_APPLE_WATCH_SERIES7 => "Watch Series7",
171
+ ScreenSize::IOS_APPLE_WATCH_ULTRA => "Watch Ultra",
166
172
  ScreenSize::APPLE_TV => "Apple TV"
167
173
  }
168
174
  return matching[self.screen_size]
@@ -182,6 +188,7 @@ module Deliver
182
188
  ScreenSize::IOS_47_MESSAGES,
183
189
  ScreenSize::IOS_55_MESSAGES,
184
190
  ScreenSize::IOS_58_MESSAGES,
191
+ ScreenSize::IOS_61_MESSAGES,
185
192
  ScreenSize::IOS_65_MESSAGES,
186
193
  ScreenSize::IOS_67_MESSAGES,
187
194
  ScreenSize::IOS_IPAD_MESSAGES,
@@ -194,7 +201,7 @@ module Deliver
194
201
 
195
202
  def self.device_messages
196
203
  # This list does not include iPad Pro 12.9-inch (3rd generation)
197
- # because it has same resoluation as IOS_IPAD_PRO and will clobber
204
+ # because it has same resolution as IOS_IPAD_PRO and will clobber
198
205
  return {
199
206
  ScreenSize::IOS_67_MESSAGES => [
200
207
  [1290, 2796],
@@ -207,8 +214,8 @@ module Deliver
207
214
  [2778, 1284]
208
215
  ],
209
216
  ScreenSize::IOS_61_MESSAGES => [
210
- [828, 1792],
211
- [1792, 828]
217
+ [1179, 2556],
218
+ [2556, 1179]
212
219
  ],
213
220
  ScreenSize::IOS_58_MESSAGES => [
214
221
  [1125, 2436],
@@ -258,7 +265,7 @@ module Deliver
258
265
  # reference: https://help.apple.com/app-store-connect/#/devd274dd925
259
266
  def self.devices
260
267
  # This list does not include iPad Pro 12.9-inch (3rd generation)
261
- # because it has same resoluation as IOS_IPAD_PRO and will clobber
268
+ # because it has same resolution as IOS_IPAD_PRO and will clobber
262
269
  return {
263
270
  ScreenSize::IOS_67 => [
264
271
  [1290, 2796],
@@ -271,8 +278,8 @@ module Deliver
271
278
  [2778, 1284]
272
279
  ],
273
280
  ScreenSize::IOS_61 => [
274
- [828, 1792],
275
- [1792, 828]
281
+ [1179, 2556],
282
+ [2556, 1179]
276
283
  ],
277
284
  ScreenSize::IOS_58 => [
278
285
  [1125, 2436],
@@ -337,6 +344,9 @@ module Deliver
337
344
  ScreenSize::IOS_APPLE_WATCH_SERIES7 => [
338
345
  [396, 484]
339
346
  ],
347
+ ScreenSize::IOS_APPLE_WATCH_ULTRA => [
348
+ [410, 502]
349
+ ],
340
350
  ScreenSize::APPLE_TV => [
341
351
  [1920, 1080],
342
352
  [3840, 2160]
@@ -1,5 +1,5 @@
1
1
  module Deliver
2
- # This is a convinient class that enumerates app store connect's screenshots in various degrees.
2
+ # This is a convenient class that enumerates app store connect's screenshots in various degrees.
3
3
  class AppScreenshotIterator
4
4
  NUMBER_OF_THREADS = Helper.test? ? 1 : [ENV.fetch("DELIVER_NUMBER_OF_THREADS", 10).to_i, 10].min
5
5
 
@@ -59,7 +59,7 @@ module Deliver
59
59
  # @yieldparam [optional, Spaceship::ConnectAPI::AppStoreVersionLocalization] localization
60
60
  # @yieldparam [optional, Spaceship::ConnectAPI::AppStoreScreenshotSet] app_screenshot_set
61
61
  # @yieldparam [optional, Deliver::AppScreenshot] screenshot
62
- # @yieldparam [optional, Integer] index a number reperesents which position the screenshot will be
62
+ # @yieldparam [optional, Integer] index a number represents which position the screenshot will be
63
63
  def each_local_screenshot(screenshots_per_language, &block)
64
64
  return enum_for(__method__, screenshots_per_language) unless block_given?
65
65
 
@@ -92,7 +92,7 @@ module Deliver
92
92
  return unless languages
93
93
 
94
94
  # 2020-08-24 - Available locales are not available as an endpoint in App Store Connect
95
- # Update with Spaceship::Tunes.client.available_languages.sort (as long as endpoint is avilable)
95
+ # Update with Spaceship::Tunes.client.available_languages.sort (as long as endpoint is available)
96
96
  all_languages = Deliver::Languages::ALL_LANGUAGES
97
97
  diff = languages - all_languages
98
98
 
@@ -1,7 +1,7 @@
1
1
  module Deliver
2
2
  module Languages
3
3
  # 2020-08-24 - Available locales are not available as an endpoint in App Store Connect
4
- # Update with Spaceship::Tunes.client.available_languages.sort (as long as endpoint is avilable)
4
+ # Update with Spaceship::Tunes.client.available_languages.sort (as long as endpoint is available)
5
5
  ALL_LANGUAGES = %w[ar-SA ca cs da de-DE el en-AU en-CA en-GB en-US es-ES es-MX fi fr-CA fr-FR he hi hr hu id it ja ko ms nl-NL no pl pt-BR pt-PT ro ru sk sv th tr uk vi zh-Hans zh-Hant]
6
6
  end
7
7
  end
@@ -31,7 +31,7 @@ module Deliver
31
31
 
32
32
  def self.available_languages
33
33
  # 2020-08-24 - Available locales are not available as an endpoint in App Store Connect
34
- # Update with Spaceship::Tunes.client.available_languages.sort (as long as endpoint is avilable)
34
+ # Update with Spaceship::Tunes.client.available_languages.sort (as long as endpoint is available)
35
35
  Deliver::Languages::ALL_LANGUAGES
36
36
  end
37
37
 
@@ -40,7 +40,7 @@ module Deliver
40
40
  end
41
41
 
42
42
  # @param path [String] A directory path otherwise this initializer fails
43
- # @param nested [Boolan] Whether given path is nested of another special directory.
43
+ # @param nested [Boolean] Whether given path is nested of another special directory.
44
44
  # This affects `expandable?` to return `false` when this set to `true`.
45
45
  def initialize(path, nested: false)
46
46
  raise(ArgumentError, "Given path must be a directory path - #{path}") unless File.directory?(path)
@@ -186,12 +186,12 @@ module Deliver
186
186
  # release
187
187
  FastlaneCore::ConfigItem.new(key: :automatic_release,
188
188
  env_name: "DELIVER_AUTOMATIC_RELEASE",
189
- description: "Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)",
189
+ description: "Should the app be automatically released once it's approved? (Cannot be used together with `auto_release_date`)",
190
190
  type: Boolean,
191
191
  optional: true),
192
192
  FastlaneCore::ConfigItem.new(key: :auto_release_date,
193
193
  env_name: "DELIVER_AUTO_RELEASE_DATE",
194
- description: "Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)",
194
+ description: "Date in milliseconds for automatically releasing on pending approval (Cannot be used together with `automatic_release`)",
195
195
  type: Integer,
196
196
  optional: true,
197
197
  conflicting_options: [:automatic_release],
@@ -201,7 +201,7 @@ module Deliver
201
201
  verify_block: proc do |value|
202
202
  now_in_ms = Time.now.to_i * 1000
203
203
  if value < now_in_ms
204
- UI.user_error!("'#{value}' needs to be in the future and in milliseonds (current time is '#{now_in_ms}')")
204
+ UI.user_error!("'#{value}' needs to be in the future and in milliseconds (current time is '#{now_in_ms}')")
205
205
  end
206
206
  end),
207
207
  FastlaneCore::ConfigItem.new(key: :phased_release,
@@ -311,7 +311,7 @@ module Deliver
311
311
 
312
312
  # App Metadata
313
313
  FastlaneCore::ConfigItem.new(key: :individual_metadata_items,
314
- env_name: "DELIVER_INDIVUDAL_METADATA_ITEMS",
314
+ env_names: ["DELIVER_INDIVUDAL_METADATA_ITEMS", "DELIVER_INDIVIDUAL_METADATA_ITEMS"], # The version with typo must be deprecated
315
315
  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",
316
316
  deprecated: "Removed after the migration to the new App Store Connect API in June 2020",
317
317
  type: Array,
@@ -55,7 +55,7 @@ module Deliver
55
55
  verify_version if options[:app_version].to_s.length > 0 && !options[:skip_app_version_update]
56
56
 
57
57
  # Rejecting before upload meta
58
- # Screenshots can not be update/deleted if in waiting for review
58
+ # Screenshots cannot be updated or deleted if the app is in the "waiting for review" state
59
59
  reject_version_if_possible if options[:reject_if_possible]
60
60
 
61
61
  upload_metadata
@@ -179,7 +179,7 @@ module Deliver
179
179
  package_path: "/tmp",
180
180
  platform: platform
181
181
  )
182
- result = transporter.verify(package_path: package_path)
182
+ result = transporter.verify(package_path: package_path, asset_path: ipa_path, platform: platform)
183
183
  when "osx"
184
184
  package_path = FastlaneCore::PkgUploadPackageBuilder.new.generate(
185
185
  app_id: Deliver.cache[:app].id,
@@ -187,7 +187,7 @@ module Deliver
187
187
  package_path: "/tmp",
188
188
  platform: platform
189
189
  )
190
- result = transporter.verify(package_path: package_path)
190
+ result = transporter.verify(package_path: package_path, asset_path: pkg_path, platform: platform)
191
191
  else
192
192
  UI.user_error!("No suitable file found for verify for platform: #{options[:platform]}")
193
193
  end
@@ -206,7 +206,7 @@ module Deliver
206
206
  pkg_path = options[:pkg]
207
207
 
208
208
  platform = options[:platform]
209
- transporter = transporter_for_selected_team(upload: true)
209
+ transporter = transporter_for_selected_team
210
210
 
211
211
  case platform
212
212
  when "ios", "appletvos"
@@ -231,7 +231,8 @@ module Deliver
231
231
 
232
232
  unless result
233
233
  transporter_errors = transporter.displayable_errors
234
- UI.user_error!("Error uploading ipa file: \n #{transporter_errors}")
234
+ file_type = platform == "osx" ? "pkg" : "ipa"
235
+ UI.user_error!("Error uploading #{file_type} file: \n #{transporter_errors}")
235
236
  end
236
237
  end
237
238
 
@@ -266,7 +267,7 @@ module Deliver
266
267
  # If itc_provider was explicitly specified, use it.
267
268
  # If there are multiple teams, infer the provider from the selected team name.
268
269
  # If there are fewer than two teams, don't infer the provider.
269
- def transporter_for_selected_team(upload: false)
270
+ def transporter_for_selected_team
270
271
  # Use JWT auth
271
272
  api_token = Spaceship::ConnectAPI.token
272
273
  api_key = if options[:api_key].nil? && !api_token.nil?
@@ -281,12 +282,12 @@ module Deliver
281
282
 
282
283
  unless api_token.nil?
283
284
  api_token.refresh! if api_token.expired?
284
- return FastlaneCore::ItunesTransporter.new(nil, nil, false, nil, api_token.text, upload: upload, api_key: api_key)
285
+ return FastlaneCore::ItunesTransporter.new(nil, nil, false, nil, api_token.text, altool_compatible_command: true, api_key: api_key)
285
286
  end
286
287
 
287
288
  tunes_client = Spaceship::ConnectAPI.client.tunes_client
288
289
 
289
- generic_transporter = FastlaneCore::ItunesTransporter.new(options[:username], nil, false, options[:itc_provider], upload: upload, api_key: api_key)
290
+ generic_transporter = FastlaneCore::ItunesTransporter.new(options[:username], nil, false, options[:itc_provider], altool_compatible_command: true, api_key: api_key)
290
291
  return generic_transporter unless options[:itc_provider].nil? && tunes_client.teams.count > 1
291
292
 
292
293
  begin
@@ -294,7 +295,7 @@ module Deliver
294
295
  name = team['name']
295
296
  provider_id = generic_transporter.provider_ids[name]
296
297
  UI.verbose("Inferred provider id #{provider_id} for team #{name}.")
297
- return FastlaneCore::ItunesTransporter.new(options[:username], nil, false, provider_id, upload: upload, api_key: api_key)
298
+ return FastlaneCore::ItunesTransporter.new(options[:username], nil, false, provider_id, altool_compatible_command: true, api_key: api_key)
298
299
  rescue => ex
299
300
  UI.verbose("Couldn't infer a provider short name for team with id #{tunes_client.team_id} automatically: #{ex}. Proceeding without provider short name.")
300
301
  return generic_transporter
@@ -47,6 +47,19 @@ module Deliver
47
47
  end
48
48
 
49
49
  submission.add_app_store_version_to_review_items(app_store_version_id: version.id)
50
+
51
+ 10.times do
52
+ version_with_latest_info = Spaceship::ConnectAPI::AppStoreVersion.get(app_store_version_id: version.id)
53
+
54
+ if version_with_latest_info.app_store_state == Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::READY_FOR_REVIEW
55
+ break
56
+ end
57
+
58
+ UI.message("Waiting for the state of the version to become #{Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::READY_FOR_REVIEW}...")
59
+
60
+ sleep(15)
61
+ end
62
+
50
63
  submission.submit_for_review
51
64
  end
52
65
 
@@ -45,7 +45,7 @@ module Deliver
45
45
 
46
46
  unless FastlaneCore::Feature.enabled?('FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS')
47
47
  UI.user_error!('Please set a value to "FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS" environment variable ' \
48
- 'if you acknowleage the risk and try this out.')
48
+ 'if you acknowledge the risk and try this out.')
49
49
  end
50
50
 
51
51
  UI.important("Will begin uploading snapshots for '#{version.version_string}' on App Store Connect")
@@ -106,7 +106,7 @@ module Deliver
106
106
  local_screenshots = iterator.each_local_screenshot(screenshots.group_by(&:language)).map do |localization, app_screenshot_set, screenshot, index|
107
107
  if index >= 10
108
108
  UI.user_error!("Found #{localization.locale} has more than 10 screenshots for #{app_screenshot_set.screenshot_display_type}. "\
109
- "Make sure containts only necessary screenshots.")
109
+ "Make sure contains only necessary screenshots.")
110
110
  end
111
111
  ScreenshotComparable.create_from_local(screenshot: screenshot, app_screenshot_set: app_screenshot_set)
112
112
  end