fastlane 2.196.0 → 2.212.2

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 (211) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +88 -81
  4. data/cert/lib/cert/runner.rb +19 -8
  5. data/deliver/lib/assets/ScreenshotsHelp +29 -6
  6. data/deliver/lib/deliver/app_screenshot.rb +30 -4
  7. data/deliver/lib/deliver/app_screenshot_iterator.rb +1 -1
  8. data/deliver/lib/deliver/options.rb +6 -2
  9. data/deliver/lib/deliver/runner.rb +88 -24
  10. data/deliver/lib/deliver/submit_for_review.rb +25 -3
  11. data/deliver/lib/deliver/upload_price_tier.rb +3 -1
  12. data/deliver/lib/deliver/upload_screenshots.rb +2 -2
  13. data/fastlane/lib/assets/AppfileTemplate +1 -1
  14. data/fastlane/lib/assets/AppfileTemplate.swift +1 -1
  15. data/fastlane/lib/fastlane/actions/badge.rb +1 -1
  16. data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +1 -1
  17. data/fastlane/lib/fastlane/actions/danger.rb +14 -0
  18. data/fastlane/lib/fastlane/actions/docs/build_app.md +5 -5
  19. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +19 -2
  20. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +1 -1
  21. data/fastlane/lib/fastlane/actions/docs/run_tests.md +1 -1
  22. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +1 -1
  23. data/fastlane/lib/fastlane/actions/download_dsyms.rb +62 -46
  24. data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +15 -4
  25. data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +1 -1
  26. data/fastlane/lib/fastlane/actions/get_push_certificate.rb +1 -1
  27. data/fastlane/lib/fastlane/actions/get_version_number.rb +8 -3
  28. data/fastlane/lib/fastlane/actions/git_commit.rb +4 -6
  29. data/fastlane/lib/fastlane/actions/import_certificate.rb +1 -1
  30. data/fastlane/lib/fastlane/actions/notarize.rb +29 -11
  31. data/fastlane/lib/fastlane/actions/pod_lib_lint.rb +1 -1
  32. data/fastlane/lib/fastlane/actions/pod_push.rb +19 -1
  33. data/fastlane/lib/fastlane/actions/read_podspec.rb +1 -1
  34. data/fastlane/lib/fastlane/actions/run_tests.rb +19 -9
  35. data/fastlane/lib/fastlane/actions/set_github_release.rb +11 -5
  36. data/fastlane/lib/fastlane/actions/setup_ci.rb +13 -4
  37. data/fastlane/lib/fastlane/actions/trainer.rb +49 -0
  38. data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +31 -4
  39. data/fastlane/lib/fastlane/actions/update_info_plist.rb +1 -1
  40. data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +10 -1
  41. data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +1 -1
  42. data/fastlane/lib/fastlane/actions/verify_build.rb +1 -1
  43. data/fastlane/lib/fastlane/actions/xcode_install.rb +5 -1
  44. data/fastlane/lib/fastlane/actions/xcode_select.rb +1 -1
  45. data/fastlane/lib/fastlane/actions/xcodebuild.rb +8 -2
  46. data/fastlane/lib/fastlane/actions/xcodes.rb +152 -0
  47. data/fastlane/lib/fastlane/actions/xcov.rb +5 -0
  48. data/fastlane/lib/fastlane/actions/xcversion.rb +17 -7
  49. data/fastlane/lib/fastlane/cli_tools_distributor.rb +5 -0
  50. data/fastlane/lib/fastlane/commands_generator.rb +2 -1
  51. data/fastlane/lib/fastlane/documentation/docs_generator.rb +17 -12
  52. data/fastlane/lib/fastlane/fast_file.rb +18 -5
  53. data/fastlane/lib/fastlane/features.rb +3 -0
  54. data/fastlane/lib/fastlane/helper/xcodebuild_formatter_helper.rb +9 -0
  55. data/fastlane/lib/fastlane/helper/xcodes_helper.rb +28 -0
  56. data/fastlane/lib/fastlane/helper/xcversion_helper.rb +0 -9
  57. data/fastlane/lib/fastlane/lane_manager.rb +1 -1
  58. data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +1 -1
  59. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +5 -1
  60. data/fastlane/lib/fastlane/setup/setup_ios.rb +1 -1
  61. data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +1 -1
  62. data/fastlane/lib/fastlane/swift_lane_manager.rb +11 -3
  63. data/fastlane/lib/fastlane/swift_runner_upgrader.rb +54 -1
  64. data/fastlane/lib/fastlane/tools.rb +18 -1
  65. data/fastlane/lib/fastlane/version.rb +1 -1
  66. data/fastlane/swift/Actions.swift +1 -1
  67. data/fastlane/swift/Appfile.swift +2 -2
  68. data/fastlane/swift/ArgumentProcessor.swift +1 -1
  69. data/fastlane/swift/Atomic.swift +150 -0
  70. data/fastlane/swift/ControlCommand.swift +1 -1
  71. data/fastlane/swift/Deliverfile.swift +2 -2
  72. data/fastlane/swift/DeliverfileProtocol.swift +8 -4
  73. data/fastlane/swift/Fastlane.swift +570 -239
  74. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +30 -20
  75. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme +1 -1
  76. data/fastlane/swift/Gymfile.swift +2 -2
  77. data/fastlane/swift/GymfileProtocol.swift +20 -8
  78. data/fastlane/swift/LaneFileProtocol.swift +2 -2
  79. data/fastlane/swift/MainProcess.swift +3 -3
  80. data/fastlane/swift/Matchfile.swift +2 -2
  81. data/fastlane/swift/MatchfileProtocol.swift +21 -5
  82. data/fastlane/swift/OptionalConfigValue.swift +1 -1
  83. data/fastlane/swift/Plugins.swift +1 -1
  84. data/fastlane/swift/Precheckfile.swift +2 -2
  85. data/fastlane/swift/PrecheckfileProtocol.swift +3 -3
  86. data/fastlane/swift/RubyCommand.swift +1 -1
  87. data/fastlane/swift/RubyCommandable.swift +1 -1
  88. data/fastlane/swift/Runner.swift +13 -9
  89. data/fastlane/swift/RunnerArgument.swift +1 -1
  90. data/fastlane/swift/Scanfile.swift +2 -2
  91. data/fastlane/swift/ScanfileProtocol.swift +31 -11
  92. data/fastlane/swift/Screengrabfile.swift +2 -2
  93. data/fastlane/swift/ScreengrabfileProtocol.swift +3 -3
  94. data/fastlane/swift/Snapshotfile.swift +2 -2
  95. data/fastlane/swift/SnapshotfileProtocol.swift +12 -8
  96. data/fastlane/swift/SocketClient.swift +9 -5
  97. data/fastlane/swift/SocketClientDelegateProtocol.swift +2 -2
  98. data/fastlane/swift/SocketResponse.swift +1 -1
  99. data/fastlane/swift/formatting/Brewfile.lock.json +46 -23
  100. data/fastlane/swift/main.swift +1 -1
  101. data/fastlane/swift/upgrade_manifest.json +1 -1
  102. data/fastlane_core/README.md +1 -0
  103. data/fastlane_core/lib/fastlane_core/cert_checker.rb +79 -17
  104. data/fastlane_core/lib/fastlane_core/device_manager.rb +5 -1
  105. data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +10 -5
  106. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +409 -26
  107. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +1 -0
  108. data/fastlane_core/lib/fastlane_core/project.rb +19 -2
  109. data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +7 -0
  110. data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +4 -2
  111. data/frameit/lib/frameit/device.rb +1 -1
  112. data/frameit/lib/frameit/device_types.rb +9 -0
  113. data/frameit/lib/frameit/editor.rb +16 -18
  114. data/frameit/lib/frameit/frame_downloader.rb +1 -1
  115. data/frameit/lib/frameit/trim_box.rb +6 -0
  116. data/gym/lib/gym/generators/build_command_generator.rb +70 -23
  117. data/gym/lib/gym/options.rb +30 -5
  118. data/match/lib/match/change_password.rb +2 -0
  119. data/match/lib/match/commands_generator.rb +2 -1
  120. data/match/lib/match/encryption/openssl.rb +1 -1
  121. data/match/lib/match/encryption.rb +3 -0
  122. data/match/lib/match/generator.rb +1 -0
  123. data/match/lib/match/importer.rb +10 -1
  124. data/match/lib/match/migrate.rb +4 -3
  125. data/match/lib/match/module.rb +54 -2
  126. data/match/lib/match/nuke.rb +114 -47
  127. data/match/lib/match/options.rb +22 -1
  128. data/match/lib/match/runner.rb +25 -6
  129. data/match/lib/match/setup.rb +1 -1
  130. data/match/lib/match/spaceship_ensure.rb +5 -2
  131. data/match/lib/match/storage/gitlab/client.rb +102 -0
  132. data/match/lib/match/storage/gitlab/secure_file.rb +65 -0
  133. data/match/lib/match/storage/gitlab_secure_files.rb +182 -0
  134. data/match/lib/match/storage/google_cloud_storage.rb +7 -6
  135. data/match/lib/match/storage/s3_storage.rb +3 -3
  136. data/match/lib/match/storage.rb +4 -0
  137. data/match/lib/match/table_printer.rb +2 -1
  138. data/match/lib/match/utils.rb +15 -2
  139. data/pem/lib/pem/manager.rb +30 -7
  140. data/pem/lib/pem/options.rb +9 -0
  141. data/pilot/lib/pilot/build_manager.rb +34 -14
  142. data/pilot/lib/pilot/options.rb +6 -1
  143. data/scan/lib/scan/detect_values.rb +6 -0
  144. data/scan/lib/scan/error_handler.rb +9 -0
  145. data/scan/lib/scan/options.rb +49 -9
  146. data/scan/lib/scan/runner.rb +171 -25
  147. data/scan/lib/scan/test_command_generator.rb +65 -5
  148. data/sigh/lib/sigh/download_all.rb +14 -2
  149. data/sigh/lib/sigh/module.rb +3 -1
  150. data/sigh/lib/sigh/options.rb +5 -0
  151. data/sigh/lib/sigh/runner.rb +12 -2
  152. data/snapshot/lib/assets/SnapshotHelper.swift +3 -3
  153. data/snapshot/lib/snapshot/latest_os_version.rb +2 -5
  154. data/snapshot/lib/snapshot/options.rb +24 -8
  155. data/snapshot/lib/snapshot/reports_generator.rb +1 -0
  156. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +10 -3
  157. data/snapshot/lib/snapshot/test_command_generator.rb +37 -2
  158. data/spaceship/lib/spaceship/client.rb +71 -40
  159. data/spaceship/lib/spaceship/commands_generator.rb +1 -1
  160. data/spaceship/lib/spaceship/connect_api/api_client.rb +10 -5
  161. data/spaceship/lib/spaceship/connect_api/models/actor.rb +26 -0
  162. data/spaceship/lib/spaceship/connect_api/models/app.rb +52 -6
  163. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +1 -0
  164. data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +5 -0
  165. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +7 -0
  166. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +1 -1
  167. data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +27 -10
  168. data/spaceship/lib/spaceship/connect_api/models/build.rb +4 -2
  169. data/spaceship/lib/spaceship/connect_api/models/build_bundle.rb +68 -0
  170. data/spaceship/lib/spaceship/connect_api/models/build_bundle_file_sizes.rb +34 -0
  171. data/spaceship/lib/spaceship/connect_api/models/build_delivery.rb +2 -1
  172. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +4 -0
  173. data/spaceship/lib/spaceship/connect_api/models/device.rb +47 -4
  174. data/spaceship/lib/spaceship/connect_api/models/profile.rb +4 -0
  175. data/spaceship/lib/spaceship/connect_api/models/resolution_center_message.rb +29 -0
  176. data/spaceship/lib/spaceship/connect_api/models/resolution_center_thread.rb +67 -0
  177. data/spaceship/lib/spaceship/connect_api/models/review_rejection.rb +19 -0
  178. data/spaceship/lib/spaceship/connect_api/models/review_submission.rb +86 -0
  179. data/spaceship/lib/spaceship/connect_api/models/review_submission_item.rb +40 -0
  180. data/spaceship/lib/spaceship/connect_api/models/user.rb +5 -0
  181. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +19 -0
  182. data/spaceship/lib/spaceship/connect_api/response.rb +23 -6
  183. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +33 -2
  184. data/spaceship/lib/spaceship/connect_api/token.rb +5 -2
  185. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +124 -8
  186. data/spaceship/lib/spaceship/connect_api.rb +9 -0
  187. data/spaceship/lib/spaceship/errors.rb +34 -0
  188. data/spaceship/lib/spaceship/globals.rb +9 -0
  189. data/spaceship/lib/spaceship/hashcash.rb +52 -0
  190. data/spaceship/lib/spaceship/portal/certificate.rb +4 -3
  191. data/spaceship/lib/spaceship/spaceauth_runner.rb +1 -1
  192. data/spaceship/lib/spaceship/tunes/app_ratings.rb +6 -6
  193. data/spaceship/lib/spaceship/tunes/iap_families.rb +1 -1
  194. data/spaceship/lib/spaceship/tunes/tunes.rb +0 -1
  195. data/spaceship/lib/spaceship/tunes/tunes_client.rb +79 -21
  196. data/spaceship/lib/spaceship/two_step_or_factor_client.rb +11 -3
  197. data/spaceship/lib/spaceship.rb +1 -0
  198. data/supply/lib/supply/client.rb +2 -7
  199. data/supply/lib/supply/options.rb +8 -0
  200. data/supply/lib/supply/uploader.rb +6 -2
  201. data/trainer/lib/assets/junit.xml.erb +28 -0
  202. data/trainer/lib/trainer/commands_generator.rb +51 -0
  203. data/trainer/lib/trainer/junit_generator.rb +31 -0
  204. data/trainer/lib/trainer/module.rb +10 -0
  205. data/trainer/lib/trainer/options.rb +66 -0
  206. data/trainer/lib/trainer/test_parser.rb +398 -0
  207. data/trainer/lib/trainer/xcresult.rb +403 -0
  208. data/trainer/lib/trainer.rb +7 -0
  209. metadata +49 -24
  210. data/spaceship/lib/spaceship/connect_api/testflight/.testflight.rb.swp +0 -0
  211. data/spaceship/lib/spaceship/tunes/user_detail.rb +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 470f259a547c6b79dcb0015c1688edcdedd67fce63d7a53d5fe47caee659b233
4
- data.tar.gz: 0dfac1fb999ccf2b25ebfd301dcd1347c9d6f67b469b8d785424fa8b26f9a0fb
3
+ metadata.gz: 698222da63360e54a4d41e791a7ab1b2ac9331b348ef8626831d61a7261872de
4
+ data.tar.gz: c89309b1a27610bd6f51dfad0b471ac908bbec30e981edf7b56485e5f83738f4
5
5
  SHA512:
6
- metadata.gz: 8a7e5dec51ab3c6baebc067b7549429947bf471e112251a8eadbee68ac4f2ea79c096e4664321f54e614184d2303d2163e339d2b6d8856c807ed382bf8620d47
7
- data.tar.gz: 66090dc209412cce666bf4b29a0bf2f7103ed1dcec60097e01607f46e812d278c70c288a6ba615e891bc857f6ca0dda340e02d882849ab3e642aabd5a9013016
6
+ metadata.gz: fc46b26354a94f87f630a434fcb0f8387f9d84661da4b01aa9ea72f565a97f864d6fb6f2124a7a9342ae91c3f3c59657452f99c255bf0c418ae5da33d821af32
7
+ data.tar.gz: 7198cdb4e60bf1c3c5b495307306a2888be696dd924a0e63aae7d787bdbfa5b4468d8a7f661f8fc741b79740801efcc603b32f912d9940a35373ec7230da5bd3
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2015-2021 The Fastlane Authors
3
+ Copyright (c) 2015-2022 The Fastlane Authors
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -35,23 +35,29 @@ 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='stefan-natchev'>
39
- <a href='https://github.com/snatchev'>
40
- <img src='https://github.com/snatchev.png' width='140px;'>
38
+ <td id='maksym-grebenets'>
39
+ <a href='https://github.com/mgrebenets'>
40
+ <img src='https://github.com/mgrebenets.png' width='140px;'>
41
41
  </a>
42
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
42
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
43
43
  </td>
44
- <td id='jorge-revuelta-h'>
45
- <a href='https://github.com/minuscorp'>
46
- <img src='https://github.com/minuscorp.png' width='140px;'>
44
+ <td id='iulian-onofrei'>
45
+ <a href='https://github.com/revolter'>
46
+ <img src='https://github.com/revolter.png' width='140px;'>
47
47
  </a>
48
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
48
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
49
49
  </td>
50
- <td id='jérôme-lacoste'>
51
- <a href='https://github.com/lacostej'>
52
- <img src='https://github.com/lacostej.png' width='140px;'>
50
+ <td id='josh-holtz'>
51
+ <a href='https://github.com/joshdholtz'>
52
+ <img src='https://github.com/joshdholtz.png' width='140px;'>
53
53
  </a>
54
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
54
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
55
+ </td>
56
+ <td id='max-ott'>
57
+ <a href='https://github.com/max-ott'>
58
+ <img src='https://github.com/max-ott.png' width='140px;'>
59
+ </a>
60
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
55
61
  </td>
56
62
  <td id='olivier-halligon'>
57
63
  <a href='https://github.com/AliSoftware'>
@@ -59,25 +65,13 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
59
65
  </a>
60
66
  <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
61
67
  </td>
62
- <td id='roger-oba'>
63
- <a href='https://github.com/rogerluan'>
64
- <img src='https://github.com/rogerluan.png' width='140px;'>
65
- </a>
66
- <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
67
- </td>
68
68
  </tr>
69
69
  <tr>
70
- <td id='maksym-grebenets'>
71
- <a href='https://github.com/mgrebenets'>
72
- <img src='https://github.com/mgrebenets.png' width='140px;'>
73
- </a>
74
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
75
- </td>
76
- <td id='manish-rathi'>
77
- <a href='https://github.com/crazymanish'>
78
- <img src='https://github.com/crazymanish.png' width='140px;'>
70
+ <td id='matthew-ellis'>
71
+ <a href='https://github.com/matthewellis'>
72
+ <img src='https://github.com/matthewellis.png' width='140px;'>
79
73
  </a>
80
- <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
74
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
81
75
  </td>
82
76
  <td id='helmut-januschka'>
83
77
  <a href='https://github.com/hjanuschka'>
@@ -85,11 +79,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
85
79
  </a>
86
80
  <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
87
81
  </td>
88
- <td id='matthew-ellis'>
89
- <a href='https://github.com/matthewellis'>
90
- <img src='https://github.com/matthewellis.png' width='140px;'>
82
+ <td id='luka-mirosevic'>
83
+ <a href='https://github.com/lmirosevic'>
84
+ <img src='https://github.com/lmirosevic.png' width='140px;'>
91
85
  </a>
92
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
86
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
87
+ </td>
88
+ <td id='roger-oba'>
89
+ <a href='https://github.com/rogerluan'>
90
+ <img src='https://github.com/rogerluan.png' width='140px;'>
91
+ </a>
92
+ <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
93
+ </td>
94
+ <td id='łukasz-grabowski'>
95
+ <a href='https://github.com/lucgrabowski'>
96
+ <img src='https://github.com/lucgrabowski.png' width='140px;'>
97
+ </a>
98
+ <h4 align='center'>Łukasz Grabowski</h4>
99
+ </td>
100
+ </tr>
101
+ <tr>
102
+ <td id='jan-piotrowski'>
103
+ <a href='https://github.com/janpio'>
104
+ <img src='https://github.com/janpio.png' width='140px;'>
105
+ </a>
106
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
93
107
  </td>
94
108
  <td id='kohki-miki'>
95
109
  <a href='https://github.com/giginet'>
@@ -97,14 +111,26 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
97
111
  </a>
98
112
  <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
99
113
  </td>
100
- </tr>
101
- <tr>
114
+ <td id='aaron-brager'>
115
+ <a href='https://github.com/getaaron'>
116
+ <img src='https://github.com/getaaron.png' width='140px;'>
117
+ </a>
118
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
119
+ </td>
102
120
  <td id='daniel-jankowski'>
103
121
  <a href='https://github.com/mollyIV'>
104
122
  <img src='https://github.com/mollyIV.png' width='140px;'>
105
123
  </a>
106
124
  <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
107
125
  </td>
126
+ <td id='jorge-revuelta-h'>
127
+ <a href='https://github.com/minuscorp'>
128
+ <img src='https://github.com/minuscorp.png' width='140px;'>
129
+ </a>
130
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
131
+ </td>
132
+ </tr>
133
+ <tr>
108
134
  <td id='danielle-tomlinson'>
109
135
  <a href='https://github.com/endocrimes'>
110
136
  <img src='https://github.com/endocrimes.png' width='140px;'>
@@ -117,83 +143,64 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
117
143
  </a>
118
144
  <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
119
145
  </td>
120
- <td id='jan-piotrowski'>
121
- <a href='https://github.com/janpio'>
122
- <img src='https://github.com/janpio.png' width='140px;'>
123
- </a>
124
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
125
- </td>
126
- <td id='satoshi-namai'>
127
- <a href='https://github.com/ainame'>
128
- <img src='https://github.com/ainame.png' width='140px;'>
129
- </a>
130
- <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
131
- </td>
132
- </tr>
133
- <tr>
134
- <td id='luka-mirosevic'>
135
- <a href='https://github.com/lmirosevic'>
136
- <img src='https://github.com/lmirosevic.png' width='140px;'>
137
- </a>
138
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
139
- </td>
140
146
  <td id='felix-krause'>
141
147
  <a href='https://github.com/KrauseFx'>
142
148
  <img src='https://github.com/KrauseFx.png' width='140px;'>
143
149
  </a>
144
150
  <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
145
151
  </td>
146
- <td id='josh-holtz'>
147
- <a href='https://github.com/joshdholtz'>
148
- <img src='https://github.com/joshdholtz.png' width='140px;'>
152
+ <td id='satoshi-namai'>
153
+ <a href='https://github.com/ainame'>
154
+ <img src='https://github.com/ainame.png' width='140px;'>
149
155
  </a>
150
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
156
+ <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
151
157
  </td>
152
- <td id='aaron-brager'>
153
- <a href='https://github.com/getaaron'>
154
- <img src='https://github.com/getaaron.png' width='140px;'>
158
+ <td id='stefan-natchev'>
159
+ <a href='https://github.com/snatchev'>
160
+ <img src='https://github.com/snatchev.png' width='140px;'>
155
161
  </a>
156
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
162
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
157
163
  </td>
164
+ </tr>
165
+ <tr>
158
166
  <td id='jimmy-dee'>
159
167
  <a href='https://github.com/jdee'>
160
168
  <img src='https://github.com/jdee.png' width='140px;'>
161
169
  </a>
162
170
  <h4 align='center'>Jimmy Dee</h4>
163
171
  </td>
164
- </tr>
165
- <tr>
166
- <td id='max-ott'>
167
- <a href='https://github.com/max-ott'>
168
- <img src='https://github.com/max-ott.png' width='140px;'>
169
- </a>
170
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
171
- </td>
172
- <td id='andrew-mcburney'>
173
- <a href='https://github.com/armcburney'>
174
- <img src='https://github.com/armcburney.png' width='140px;'>
175
- </a>
176
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
177
- </td>
178
172
  <td id='manu-wallner'>
179
173
  <a href='https://github.com/milch'>
180
174
  <img src='https://github.com/milch.png' width='140px;'>
181
175
  </a>
182
176
  <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
183
177
  </td>
178
+ <td id='jérôme-lacoste'>
179
+ <a href='https://github.com/lacostej'>
180
+ <img src='https://github.com/lacostej.png' width='140px;'>
181
+ </a>
182
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
183
+ </td>
184
+ <td id='manish-rathi'>
185
+ <a href='https://github.com/crazymanish'>
186
+ <img src='https://github.com/crazymanish.png' width='140px;'>
187
+ </a>
188
+ <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
189
+ </td>
184
190
  <td id='joshua-liebowitz'>
185
191
  <a href='https://github.com/taquitos'>
186
192
  <img src='https://github.com/taquitos.png' width='140px;'>
187
193
  </a>
188
194
  <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
189
195
  </td>
190
- <td id='iulian-onofrei'>
191
- <a href='https://github.com/revolter'>
192
- <img src='https://github.com/revolter.png' width='140px;'>
196
+ </tr>
197
+ <tr>
198
+ <td id='andrew-mcburney'>
199
+ <a href='https://github.com/armcburney'>
200
+ <img src='https://github.com/armcburney.png' width='140px;'>
193
201
  </a>
194
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
202
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
195
203
  </td>
196
- </tr>
197
204
  </table>
198
205
 
199
206
  Special thanks to all [contributors](https://github.com/fastlane/fastlane/graphs/contributors) for extending and improving _fastlane_.
@@ -138,24 +138,35 @@ module Cert
138
138
  # All certificates of this type
139
139
  def certificates
140
140
  filter = {
141
- certificateType: certificate_type
141
+ certificateType: certificate_types.join(",")
142
142
  }
143
143
  return Spaceship::ConnectAPI::Certificate.all(filter: filter)
144
144
  end
145
145
 
146
- # The kind of certificate we're interested in
146
+ # The kind of certificate we're interested in (for creating)
147
147
  def certificate_type
148
+ return certificate_types.first
149
+ end
150
+
151
+ # The kind of certificates we're interested in (for listing)
152
+ def certificate_types
148
153
  if Cert.config[:type]
149
154
  case Cert.config[:type].to_sym
150
155
  when :mac_installer_distribution
151
- return Spaceship::ConnectAPI::Certificate::CertificateType::MAC_INSTALLER_DISTRIBUTION
156
+ return [Spaceship::ConnectAPI::Certificate::CertificateType::MAC_INSTALLER_DISTRIBUTION]
152
157
  when :developer_id_application
153
- return Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_APPLICATION
158
+ return [
159
+ Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_APPLICATION_G2,
160
+ Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_APPLICATION
161
+ ]
154
162
  when :developer_id_kext
155
- return Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_KEXT
163
+ return [Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_KEXT]
156
164
  when :developer_id_installer
157
- raise "Cannot do with ASC API?"
158
- # return Spaceship.certificate.developer_id_installer
165
+ if !Spaceship::ConnectAPI.token.nil?
166
+ raise "As of 2021-11-09, the App Store Connect API does not allow accessing DEVELOPER_ID_INSTALLER with the API Key. Please file an issue on GitHub if this has changed and needs to be updated"
167
+ else
168
+ return [Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_INSTALLER]
169
+ end
159
170
  else
160
171
  UI.user_error("Unaccepted value for :type - #{Cert.config[:type]}")
161
172
  end
@@ -179,7 +190,7 @@ module Cert
179
190
  end
180
191
  end
181
192
 
182
- return cert_type
193
+ return [cert_type]
183
194
  end
184
195
 
185
196
  def create_certificate
@@ -1,7 +1,30 @@
1
- Put all screenshots you want to use inside the folder of its language (e.g. en-US).
2
- The device type will automatically be recognized using the image resolution. Apple TV screenshots
3
- should be stored in a subdirectory named appleTV with language folders inside of it. iMessage
4
- screenshots, like Apple TV screenshots, should also be stored in a subdirectory named iMessage
5
- with language folders inside of it.
1
+ ## Screenshots Naming Rules
6
2
 
7
- The screenshots can be named whatever you want, but keep in mind they are sorted alphabetically.
3
+ Put all screenshots you want to use inside the folder of its language (e.g. `en-US`).
4
+ The device type will automatically be recognized using the image resolution.
5
+
6
+ The screenshots can be named whatever you want, but keep in mind they are sorted
7
+ alphabetically, in a human-friendly way. See https://github.com/fastlane/fastlane/pull/18200 for more details.
8
+
9
+ ### Exceptions
10
+
11
+ #### iPad Pro (3rd Gen) 12.9"
12
+
13
+ Since iPad Pro (3rd Gen) 12.9" and iPad Pro (2nd Gen) 12.9" have the same image
14
+ resolution, screenshots of the iPad Pro (3rd gen) 12.9" must contain either the
15
+ string `iPad Pro (12.9-inch) (3rd generation)`, `IPAD_PRO_3GEN_129`, or `ipadPro129`
16
+ (App Store Connect's internal naming of the display family for the 3rd generation iPad Pro)
17
+ in its filename to be assigned the correct display family and to be uploaded to
18
+ the correct screenshot slot in your app's metadata.
19
+
20
+ ### Other Platforms
21
+
22
+ #### Apple TV
23
+
24
+ Apple TV screenshots should be stored in a subdirectory named `appleTV` with language
25
+ folders inside of it.
26
+
27
+ #### iMessage
28
+
29
+ iMessage screenshots, like the Apple TV ones, should also be stored in a subdirectory
30
+ named `iMessage`, with language folders inside of it.
@@ -23,6 +23,8 @@ module Deliver
23
23
  IOS_61 = "iOS-6.1-in"
24
24
  # iPhone XS Max
25
25
  IOS_65 = "iOS-6.5-in"
26
+ # iPhone 14 Pro Max
27
+ IOS_67 = "iOS-6.7-in"
26
28
 
27
29
  # iPad
28
30
  IOS_IPAD = "iOS-iPad"
@@ -47,6 +49,8 @@ module Deliver
47
49
  IOS_61_MESSAGES = "iOS-6.1-in-messages"
48
50
  # iPhone XS Max iMessage
49
51
  IOS_65_MESSAGES = "iOS-6.5-in-messages"
52
+ # iPhone 14 Pro Max iMessage
53
+ IOS_67_MESSAGES = "iOS-6.7-in-messages"
50
54
 
51
55
  # iPad iMessage
52
56
  IOS_IPAD_MESSAGES = "iOS-iPad-messages"
@@ -63,6 +67,8 @@ module Deliver
63
67
  IOS_APPLE_WATCH = "iOS-Apple-Watch"
64
68
  # Apple Watch Series 4
65
69
  IOS_APPLE_WATCH_SERIES4 = "iOS-Apple-Watch-Series4"
70
+ # Apple Watch Series 7
71
+ IOS_APPLE_WATCH_SERIES7 = "iOS-Apple-Watch-Series7"
66
72
 
67
73
  # Apple TV
68
74
  APPLE_TV = "Apple-TV"
@@ -99,6 +105,7 @@ module Deliver
99
105
  ScreenSize::IOS_55 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_55, # also 7 Plus & 8 Plus
100
106
  ScreenSize::IOS_58 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_58,
101
107
  ScreenSize::IOS_65 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_65,
108
+ ScreenSize::IOS_67 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_67,
102
109
  ScreenSize::IOS_IPAD => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_97,
103
110
  ScreenSize::IOS_IPAD_10_5 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_105,
104
111
  ScreenSize::IOS_IPAD_11 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_PRO_3GEN_11,
@@ -109,6 +116,7 @@ module Deliver
109
116
  ScreenSize::IOS_55_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_55, # also 7 Plus & 8 Plus
110
117
  ScreenSize::IOS_58_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_58,
111
118
  ScreenSize::IOS_65_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_65,
119
+ ScreenSize::IOS_67_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_67,
112
120
  ScreenSize::IOS_IPAD_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_97,
113
121
  ScreenSize::IOS_IPAD_PRO_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_PRO_129,
114
122
  ScreenSize::IOS_IPAD_PRO_12_9_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_PRO_3GEN_129,
@@ -117,6 +125,7 @@ module Deliver
117
125
  ScreenSize::MAC => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_DESKTOP,
118
126
  ScreenSize::IOS_APPLE_WATCH => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_3,
119
127
  ScreenSize::IOS_APPLE_WATCH_SERIES4 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_4,
128
+ ScreenSize::IOS_APPLE_WATCH_SERIES7 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_7,
120
129
  ScreenSize::APPLE_TV => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_APPLE_TV
121
130
  }
122
131
  return matching[self.screen_size]
@@ -132,6 +141,7 @@ module Deliver
132
141
  ScreenSize::IOS_58 => "iPhone XS",
133
142
  ScreenSize::IOS_61 => "iPhone XR",
134
143
  ScreenSize::IOS_65 => "iPhone XS Max",
144
+ ScreenSize::IOS_67 => "iPhone 14 Pro Max",
135
145
  ScreenSize::IOS_IPAD => "iPad",
136
146
  ScreenSize::IOS_IPAD_10_5 => "iPad 10.5",
137
147
  ScreenSize::IOS_IPAD_11 => "iPad 11",
@@ -143,6 +153,7 @@ module Deliver
143
153
  ScreenSize::IOS_58_MESSAGES => "iPhone XS (iMessage)",
144
154
  ScreenSize::IOS_61_MESSAGES => "iPhone XR (iMessage)",
145
155
  ScreenSize::IOS_65_MESSAGES => "iPhone XS Max (iMessage)",
156
+ ScreenSize::IOS_67_MESSAGES => "iPhone 14 Pro Max (iMessage)",
146
157
  ScreenSize::IOS_IPAD_MESSAGES => "iPad (iMessage)",
147
158
  ScreenSize::IOS_IPAD_PRO_MESSAGES => "iPad Pro (iMessage)",
148
159
  ScreenSize::IOS_IPAD_PRO_12_9_MESSAGES => "iPad Pro (12.9-inch) (3rd generation) (iMessage)",
@@ -151,6 +162,7 @@ module Deliver
151
162
  ScreenSize::MAC => "Mac",
152
163
  ScreenSize::IOS_APPLE_WATCH => "Watch",
153
164
  ScreenSize::IOS_APPLE_WATCH_SERIES4 => "Watch Series4",
165
+ ScreenSize::IOS_APPLE_WATCH_SERIES7 => "Watch Series7",
154
166
  ScreenSize::APPLE_TV => "Apple TV"
155
167
  }
156
168
  return matching[self.screen_size]
@@ -171,6 +183,7 @@ module Deliver
171
183
  ScreenSize::IOS_55_MESSAGES,
172
184
  ScreenSize::IOS_58_MESSAGES,
173
185
  ScreenSize::IOS_65_MESSAGES,
186
+ ScreenSize::IOS_67_MESSAGES,
174
187
  ScreenSize::IOS_IPAD_MESSAGES,
175
188
  ScreenSize::IOS_IPAD_PRO_MESSAGES,
176
189
  ScreenSize::IOS_IPAD_PRO_12_9_MESSAGES,
@@ -183,6 +196,10 @@ module Deliver
183
196
  # This list does not include iPad Pro 12.9-inch (3rd generation)
184
197
  # because it has same resoluation as IOS_IPAD_PRO and will clobber
185
198
  return {
199
+ ScreenSize::IOS_67_MESSAGES => [
200
+ [1290, 2796],
201
+ [2796, 1290]
202
+ ],
186
203
  ScreenSize::IOS_65_MESSAGES => [
187
204
  [1242, 2688],
188
205
  [2688, 1242],
@@ -243,6 +260,10 @@ module Deliver
243
260
  # This list does not include iPad Pro 12.9-inch (3rd generation)
244
261
  # because it has same resoluation as IOS_IPAD_PRO and will clobber
245
262
  return {
263
+ ScreenSize::IOS_67 => [
264
+ [1290, 2796],
265
+ [2796, 1290]
266
+ ],
246
267
  ScreenSize::IOS_65 => [
247
268
  [1242, 2688],
248
269
  [2688, 1242],
@@ -313,6 +334,9 @@ module Deliver
313
334
  ScreenSize::IOS_APPLE_WATCH_SERIES4 => [
314
335
  [368, 448]
315
336
  ],
337
+ ScreenSize::IOS_APPLE_WATCH_SERIES7 => [
338
+ [396, 484]
339
+ ],
316
340
  ScreenSize::APPLE_TV => [
317
341
  [1920, 1080],
318
342
  [3840, 2160]
@@ -322,10 +346,12 @@ module Deliver
322
346
 
323
347
  def self.resolve_ipadpro_conflict_if_needed(screen_size, filename)
324
348
  is_3rd_gen = [
325
- "iPad Pro (12.9-inch) (3rd generation)", # default simulator name has this
326
- "iPad Pro (12.9-inch) (4th generation)", # default simulator name has this
327
- "ipadPro129", # downloaded screenshots name has this,
328
- "3GEN" # downloaded screenshots name from App Store Connect API has this
349
+ "iPad Pro (12.9-inch) (3rd generation)", # Default simulator has this name
350
+ "iPad Pro (12.9-inch) (4th generation)", # Default simulator has this name
351
+ "iPad Pro (12.9-inch) (5th generation)", # Default simulator has this name
352
+ "iPad Pro (12.9-inch) (6th generation)", # Default simulator has this name
353
+ "IPAD_PRO_3GEN_129", # Screenshots downloaded from App Store Connect has this name
354
+ "ipadPro129" # Legacy: screenshots downloaded from iTunes Connect used to have this name
329
355
  ].any? { |key| filename.include?(key) }
330
356
  if is_3rd_gen
331
357
  if screen_size == ScreenSize::IOS_IPAD_PRO
@@ -80,7 +80,7 @@ module Deliver
80
80
  screenshots_per_display_type = screenshots_for_language.reject { |screenshot| screenshot.device_type.nil? }.group_by(&:device_type)
81
81
 
82
82
  screenshots_per_display_type.each do |display_type, screenshots|
83
- # create AppScreenshotSet for given display_type if it doesn't exsit
83
+ # create AppScreenshotSet for given display_type if it doesn't exist
84
84
  app_screenshot_set = (app_screenshot_set_per_locale_and_display_type[language] || {})[display_type]
85
85
  app_screenshot_set ||= localization.create_app_screenshot_set(attributes: { screenshotDisplayType: display_type })
86
86
 
@@ -164,8 +164,7 @@ module Deliver
164
164
  default_value: false),
165
165
  FastlaneCore::ConfigItem.new(key: :sync_screenshots,
166
166
  env_name: "DELIVER_SYNC_SCREENSHOTS",
167
- description: "Sync screenshots with local ones. This is currently beta option" \
168
- "so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well",
167
+ description: "Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well",
169
168
  type: Boolean,
170
169
  default_value: false),
171
170
  FastlaneCore::ConfigItem.new(key: :submit_for_review,
@@ -173,6 +172,11 @@ module Deliver
173
172
  description: "Submit the new version for Review after uploading everything",
174
173
  type: Boolean,
175
174
  default_value: false),
175
+ FastlaneCore::ConfigItem.new(key: :verify_only,
176
+ env_name: "DELIVER_VERIFY_ONLY",
177
+ description: "Verifies archive with App Store Connect without uploading",
178
+ type: Boolean,
179
+ default_value: false),
176
180
  FastlaneCore::ConfigItem.new(key: :reject_if_possible,
177
181
  env_name: "DELIVER_REJECT_IF_POSSIBLE",
178
182
  description: "Rejects the previously submitted build if it's in a state where it's possible",