fastlane 2.196.0 → 2.212.2

Sign up to get free protection for your applications and to get access to all the features.
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",