fastlane 2.202.0 → 2.212.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (184) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +98 -98
  3. data/cert/lib/cert/runner.rb +15 -7
  4. data/deliver/lib/deliver/app_screenshot.rb +18 -0
  5. data/deliver/lib/deliver/options.rb +6 -2
  6. data/deliver/lib/deliver/runner.rb +76 -29
  7. data/deliver/lib/deliver/upload_price_tier.rb +3 -1
  8. data/deliver/lib/deliver/upload_screenshots.rb +1 -1
  9. data/fastlane/lib/assets/AppfileTemplate +1 -1
  10. data/fastlane/lib/assets/AppfileTemplate.swift +1 -1
  11. data/fastlane/lib/fastlane/actions/badge.rb +1 -1
  12. data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +1 -1
  13. data/fastlane/lib/fastlane/actions/danger.rb +14 -0
  14. data/fastlane/lib/fastlane/actions/docs/build_app.md +5 -5
  15. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +19 -2
  16. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +1 -1
  17. data/fastlane/lib/fastlane/actions/docs/run_tests.md +1 -1
  18. data/fastlane/lib/fastlane/actions/get_version_number.rb +1 -1
  19. data/fastlane/lib/fastlane/actions/git_commit.rb +4 -6
  20. data/fastlane/lib/fastlane/actions/import_certificate.rb +1 -1
  21. data/fastlane/lib/fastlane/actions/pod_lib_lint.rb +1 -1
  22. data/fastlane/lib/fastlane/actions/pod_push.rb +19 -1
  23. data/fastlane/lib/fastlane/actions/read_podspec.rb +1 -1
  24. data/fastlane/lib/fastlane/actions/run_tests.rb +11 -9
  25. data/fastlane/lib/fastlane/actions/setup_ci.rb +13 -4
  26. data/fastlane/lib/fastlane/actions/trainer.rb +2 -2
  27. data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +14 -4
  28. data/fastlane/lib/fastlane/actions/update_info_plist.rb +1 -1
  29. data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +10 -1
  30. data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +1 -1
  31. data/fastlane/lib/fastlane/actions/verify_build.rb +1 -1
  32. data/fastlane/lib/fastlane/actions/xcode_install.rb +5 -1
  33. data/fastlane/lib/fastlane/actions/xcode_select.rb +1 -1
  34. data/fastlane/lib/fastlane/actions/xcodebuild.rb +8 -2
  35. data/fastlane/lib/fastlane/actions/xcodes.rb +152 -0
  36. data/fastlane/lib/fastlane/actions/xcversion.rb +10 -15
  37. data/fastlane/lib/fastlane/cli_tools_distributor.rb +5 -0
  38. data/fastlane/lib/fastlane/commands_generator.rb +2 -1
  39. data/fastlane/lib/fastlane/fast_file.rb +18 -5
  40. data/fastlane/lib/fastlane/features.rb +3 -0
  41. data/fastlane/lib/fastlane/helper/xcodes_helper.rb +28 -0
  42. data/fastlane/lib/fastlane/helper/xcversion_helper.rb +0 -9
  43. data/fastlane/lib/fastlane/lane_manager.rb +1 -1
  44. data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +1 -1
  45. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +5 -1
  46. data/fastlane/lib/fastlane/setup/setup_ios.rb +1 -1
  47. data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +1 -1
  48. data/fastlane/lib/fastlane/swift_lane_manager.rb +11 -3
  49. data/fastlane/lib/fastlane/swift_runner_upgrader.rb +54 -1
  50. data/fastlane/lib/fastlane/tools.rb +16 -0
  51. data/fastlane/lib/fastlane/version.rb +1 -1
  52. data/fastlane/swift/Actions.swift +1 -1
  53. data/fastlane/swift/Appfile.swift +2 -2
  54. data/fastlane/swift/ArgumentProcessor.swift +1 -1
  55. data/fastlane/swift/Atomic.swift +150 -0
  56. data/fastlane/swift/ControlCommand.swift +1 -1
  57. data/fastlane/swift/Deliverfile.swift +2 -2
  58. data/fastlane/swift/DeliverfileProtocol.swift +8 -4
  59. data/fastlane/swift/Fastlane.swift +363 -184
  60. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +30 -20
  61. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme +1 -1
  62. data/fastlane/swift/Gymfile.swift +2 -2
  63. data/fastlane/swift/GymfileProtocol.swift +7 -3
  64. data/fastlane/swift/LaneFileProtocol.swift +2 -2
  65. data/fastlane/swift/MainProcess.swift +3 -3
  66. data/fastlane/swift/Matchfile.swift +2 -2
  67. data/fastlane/swift/MatchfileProtocol.swift +21 -5
  68. data/fastlane/swift/OptionalConfigValue.swift +1 -1
  69. data/fastlane/swift/Plugins.swift +1 -1
  70. data/fastlane/swift/Precheckfile.swift +2 -2
  71. data/fastlane/swift/PrecheckfileProtocol.swift +3 -3
  72. data/fastlane/swift/RubyCommand.swift +1 -1
  73. data/fastlane/swift/RubyCommandable.swift +1 -1
  74. data/fastlane/swift/Runner.swift +10 -2
  75. data/fastlane/swift/RunnerArgument.swift +1 -1
  76. data/fastlane/swift/Scanfile.swift +2 -2
  77. data/fastlane/swift/ScanfileProtocol.swift +11 -3
  78. data/fastlane/swift/Screengrabfile.swift +2 -2
  79. data/fastlane/swift/ScreengrabfileProtocol.swift +3 -3
  80. data/fastlane/swift/Snapshotfile.swift +2 -2
  81. data/fastlane/swift/SnapshotfileProtocol.swift +4 -4
  82. data/fastlane/swift/SocketClient.swift +9 -5
  83. data/fastlane/swift/SocketClientDelegateProtocol.swift +2 -2
  84. data/fastlane/swift/SocketResponse.swift +1 -1
  85. data/fastlane/swift/formatting/Brewfile.lock.json +42 -24
  86. data/fastlane/swift/main.swift +1 -1
  87. data/fastlane/swift/upgrade_manifest.json +1 -1
  88. data/fastlane_core/README.md +1 -0
  89. data/fastlane_core/lib/fastlane_core/cert_checker.rb +79 -17
  90. data/fastlane_core/lib/fastlane_core/device_manager.rb +5 -1
  91. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +335 -20
  92. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +1 -0
  93. data/fastlane_core/lib/fastlane_core/project.rb +19 -2
  94. data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +4 -2
  95. data/frameit/lib/frameit/device.rb +1 -1
  96. data/frameit/lib/frameit/device_types.rb +9 -0
  97. data/frameit/lib/frameit/frame_downloader.rb +1 -1
  98. data/gym/lib/gym/generators/build_command_generator.rb +1 -0
  99. data/gym/lib/gym/options.rb +7 -0
  100. data/match/lib/match/change_password.rb +2 -0
  101. data/match/lib/match/commands_generator.rb +2 -1
  102. data/match/lib/match/encryption/openssl.rb +1 -1
  103. data/match/lib/match/encryption.rb +3 -0
  104. data/match/lib/match/generator.rb +1 -0
  105. data/match/lib/match/importer.rb +10 -1
  106. data/match/lib/match/migrate.rb +4 -3
  107. data/match/lib/match/module.rb +54 -2
  108. data/match/lib/match/nuke.rb +36 -47
  109. data/match/lib/match/options.rb +22 -1
  110. data/match/lib/match/runner.rb +25 -6
  111. data/match/lib/match/setup.rb +1 -1
  112. data/match/lib/match/spaceship_ensure.rb +4 -2
  113. data/match/lib/match/storage/gitlab/client.rb +102 -0
  114. data/match/lib/match/storage/gitlab/secure_file.rb +65 -0
  115. data/match/lib/match/storage/gitlab_secure_files.rb +182 -0
  116. data/match/lib/match/storage/google_cloud_storage.rb +7 -6
  117. data/match/lib/match/storage/s3_storage.rb +3 -3
  118. data/match/lib/match/storage.rb +4 -0
  119. data/match/lib/match/table_printer.rb +2 -1
  120. data/match/lib/match/utils.rb +15 -2
  121. data/pem/lib/pem/manager.rb +1 -1
  122. data/pilot/lib/pilot/build_manager.rb +33 -13
  123. data/pilot/lib/pilot/options.rb +6 -1
  124. data/scan/lib/scan/detect_values.rb +6 -0
  125. data/scan/lib/scan/options.rb +16 -1
  126. data/scan/lib/scan/runner.rb +33 -14
  127. data/scan/lib/scan/test_command_generator.rb +7 -1
  128. data/sigh/lib/sigh/download_all.rb +14 -2
  129. data/sigh/lib/sigh/module.rb +3 -1
  130. data/sigh/lib/sigh/options.rb +5 -0
  131. data/sigh/lib/sigh/runner.rb +12 -2
  132. data/snapshot/lib/assets/SnapshotHelper.swift +3 -3
  133. data/snapshot/lib/snapshot/options.rb +1 -1
  134. data/snapshot/lib/snapshot/reports_generator.rb +1 -0
  135. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +9 -2
  136. data/spaceship/lib/spaceship/client.rb +36 -25
  137. data/spaceship/lib/spaceship/connect_api/api_client.rb +10 -5
  138. data/spaceship/lib/spaceship/connect_api/models/actor.rb +26 -0
  139. data/spaceship/lib/spaceship/connect_api/models/app.rb +7 -5
  140. data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +5 -0
  141. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +5 -0
  142. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +1 -1
  143. data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +27 -10
  144. data/spaceship/lib/spaceship/connect_api/models/build_bundle.rb +9 -0
  145. data/spaceship/lib/spaceship/connect_api/models/build_bundle_file_sizes.rb +34 -0
  146. data/spaceship/lib/spaceship/connect_api/models/build_delivery.rb +2 -1
  147. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +1 -0
  148. data/spaceship/lib/spaceship/connect_api/models/device.rb +47 -4
  149. data/spaceship/lib/spaceship/connect_api/models/profile.rb +4 -0
  150. data/spaceship/lib/spaceship/connect_api/models/resolution_center_message.rb +29 -0
  151. data/spaceship/lib/spaceship/connect_api/models/resolution_center_thread.rb +67 -0
  152. data/spaceship/lib/spaceship/connect_api/models/review_rejection.rb +19 -0
  153. data/spaceship/lib/spaceship/connect_api/models/review_submission.rb +13 -0
  154. data/spaceship/lib/spaceship/connect_api/models/user.rb +5 -0
  155. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +19 -0
  156. data/spaceship/lib/spaceship/connect_api/response.rb +10 -6
  157. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +33 -2
  158. data/spaceship/lib/spaceship/connect_api/token.rb +5 -2
  159. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +41 -8
  160. data/spaceship/lib/spaceship/connect_api.rb +6 -0
  161. data/spaceship/lib/spaceship/errors.rb +34 -0
  162. data/spaceship/lib/spaceship/hashcash.rb +52 -0
  163. data/spaceship/lib/spaceship/portal/certificate.rb +4 -3
  164. data/spaceship/lib/spaceship/tunes/app_ratings.rb +6 -6
  165. data/spaceship/lib/spaceship/tunes/iap_families.rb +1 -1
  166. data/spaceship/lib/spaceship/tunes/tunes.rb +0 -1
  167. data/spaceship/lib/spaceship/tunes/tunes_client.rb +79 -21
  168. data/spaceship/lib/spaceship/two_step_or_factor_client.rb +11 -3
  169. data/spaceship/lib/spaceship.rb +1 -0
  170. data/supply/lib/supply/client.rb +2 -7
  171. data/trainer/lib/assets/junit.xml.erb +9 -1
  172. data/trainer/lib/trainer/junit_generator.rb +2 -2
  173. data/trainer/lib/trainer/options.rb +1 -1
  174. data/trainer/lib/trainer/test_parser.rb +25 -3
  175. metadata +36 -33
  176. data/deliver/lib/deliver/.runner.rb.swp +0 -0
  177. data/deliver/lib/deliver/.submit_for_review.rb.swp +0 -0
  178. data/fastlane/lib/.DS_Store +0 -0
  179. data/fastlane/lib/fastlane/.DS_Store +0 -0
  180. data/fastlane/lib/fastlane/actions/.DS_Store +0 -0
  181. data/spaceship/lib/spaceship/connect_api/models/.app.rb.swp +0 -0
  182. data/spaceship/lib/spaceship/connect_api/testflight/.testflight.rb.swp +0 -0
  183. data/spaceship/lib/spaceship/tunes/user_detail.rb +0 -15
  184. data/trainer/lib/.DS_Store +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5d4567dd6f8c7aabb3d575822340afb7e2fafa0563eacbcbfe079992eab5a6ec
4
- data.tar.gz: 1fb4e0cbe6e54f38c0bcc425a8f42dcde2ac00b3e8febb9132a0402a46cb8a5c
3
+ metadata.gz: 244364fbe5e40c851dc1afbb79fe8c79ba76fedee6e607d7cf950f043ba7b921
4
+ data.tar.gz: 5f4f4f4462eb64a87ed63df0ece646c100ae8d3a0c37a84eff9cbad76f51c2a8
5
5
  SHA512:
6
- metadata.gz: d61d0fa7b4cb66ef6f9d7e37751df91ebd15da513bcea036c9a96228128462c2414c0534bd141b90c47db9457adab9c00c44a51ce67f93a9d69927918afac29e
7
- data.tar.gz: 663862b46382e41b71729ce28dcfd63c50cf7f89ada3868a053dbfcc72df8d16017d9fde30e7e185c855e5f9ce3225aaace0548703e34a41324f21db35ebbc10
6
+ metadata.gz: ae5c7a99e698db70b74516d415601ee4368fa864cd114a867d44098e0e52a2b68a361fc0178f902c0f0e6fefe3618639a259c92bde33906cb6a0501aa82d18e2
7
+ data.tar.gz: b736ceec481316c6d9cde333299bff4c8145e5b11f5e802acb60a9c59028c9a9444a7a771dcf8f21f952a3cd64e2959e7a87ae224fecad503e34a1d032481123
data/README.md CHANGED
@@ -35,11 +35,11 @@ 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='jimmy-dee'>
39
- <a href='https://github.com/jdee'>
40
- <img src='https://github.com/jdee.png' width='140px;'>
38
+ <td id='roger-oba'>
39
+ <a href='https://github.com/rogerluan'>
40
+ <img src='https://github.com/rogerluan.png' width='140px;'>
41
41
  </a>
42
- <h4 align='center'>Jimmy Dee</h4>
42
+ <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
43
43
  </td>
44
44
  <td id='fumiya-nakamura'>
45
45
  <a href='https://github.com/nafu'>
@@ -47,107 +47,101 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
47
47
  </a>
48
48
  <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
49
49
  </td>
50
- <td id='matthew-ellis'>
51
- <a href='https://github.com/matthewellis'>
52
- <img src='https://github.com/matthewellis.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/mellis1995'>Matthew Ellis</a></h4>
54
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
55
55
  </td>
56
- <td id='luka-mirosevic'>
57
- <a href='https://github.com/lmirosevic'>
58
- <img src='https://github.com/lmirosevic.png' width='140px;'>
56
+ <td id='daniel-jankowski'>
57
+ <a href='https://github.com/mollyIV'>
58
+ <img src='https://github.com/mollyIV.png' width='140px;'>
59
59
  </a>
60
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
60
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
61
61
  </td>
62
- <td id='maksym-grebenets'>
63
- <a href='https://github.com/mgrebenets'>
64
- <img src='https://github.com/mgrebenets.png' width='140px;'>
62
+ <td id='jan-piotrowski'>
63
+ <a href='https://github.com/janpio'>
64
+ <img src='https://github.com/janpio.png' width='140px;'>
65
65
  </a>
66
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
66
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
67
67
  </td>
68
68
  </tr>
69
69
  <tr>
70
- <td id='stefan-natchev'>
71
- <a href='https://github.com/snatchev'>
72
- <img src='https://github.com/snatchev.png' width='140px;'>
70
+ <td id='satoshi-namai'>
71
+ <a href='https://github.com/ainame'>
72
+ <img src='https://github.com/ainame.png' width='140px;'>
73
73
  </a>
74
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
74
+ <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
75
75
  </td>
76
- <td id='helmut-januschka'>
77
- <a href='https://github.com/hjanuschka'>
78
- <img src='https://github.com/hjanuschka.png' width='140px;'>
76
+ <td id='danielle-tomlinson'>
77
+ <a href='https://github.com/endocrimes'>
78
+ <img src='https://github.com/endocrimes.png' width='140px;'>
79
79
  </a>
80
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
80
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
81
81
  </td>
82
- <td id='felix-krause'>
83
- <a href='https://github.com/KrauseFx'>
84
- <img src='https://github.com/KrauseFx.png' width='140px;'>
82
+ <td id='stefan-natchev'>
83
+ <a href='https://github.com/snatchev'>
84
+ <img src='https://github.com/snatchev.png' width='140px;'>
85
85
  </a>
86
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
86
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
87
87
  </td>
88
- <td id='manish-rathi'>
89
- <a href='https://github.com/crazymanish'>
90
- <img src='https://github.com/crazymanish.png' width='140px;'>
88
+ <td id='matthew-ellis'>
89
+ <a href='https://github.com/matthewellis'>
90
+ <img src='https://github.com/matthewellis.png' width='140px;'>
91
91
  </a>
92
- <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
92
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
93
93
  </td>
94
- <td id='aaron-brager'>
95
- <a href='https://github.com/getaaron'>
96
- <img src='https://github.com/getaaron.png' width='140px;'>
94
+ <td id='iulian-onofrei'>
95
+ <a href='https://github.com/revolter'>
96
+ <img src='https://github.com/revolter.png' width='140px;'>
97
97
  </a>
98
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
98
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
99
99
  </td>
100
100
  </tr>
101
101
  <tr>
102
- <td id='satoshi-namai'>
103
- <a href='https://github.com/ainame'>
104
- <img src='https://github.com/ainame.png' width='140px;'>
102
+ <td id='jorge-revuelta-h'>
103
+ <a href='https://github.com/minuscorp'>
104
+ <img src='https://github.com/minuscorp.png' width='140px;'>
105
105
  </a>
106
- <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
106
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
107
107
  </td>
108
- <td id='daniel-jankowski'>
109
- <a href='https://github.com/mollyIV'>
110
- <img src='https://github.com/mollyIV.png' width='140px;'>
108
+ <td id='maksym-grebenets'>
109
+ <a href='https://github.com/mgrebenets'>
110
+ <img src='https://github.com/mgrebenets.png' width='140px;'>
111
111
  </a>
112
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
112
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
113
113
  </td>
114
- <td id='jan-piotrowski'>
115
- <a href='https://github.com/janpio'>
116
- <img src='https://github.com/janpio.png' width='140px;'>
114
+ <td id='luka-mirosevic'>
115
+ <a href='https://github.com/lmirosevic'>
116
+ <img src='https://github.com/lmirosevic.png' width='140px;'>
117
117
  </a>
118
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
118
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
119
119
  </td>
120
- <td id='andrew-mcburney'>
121
- <a href='https://github.com/armcburney'>
122
- <img src='https://github.com/armcburney.png' width='140px;'>
120
+ <td id='manish-rathi'>
121
+ <a href='https://github.com/crazymanish'>
122
+ <img src='https://github.com/crazymanish.png' width='140px;'>
123
123
  </a>
124
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
124
+ <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
125
125
  </td>
126
- <td id='olivier-halligon'>
127
- <a href='https://github.com/AliSoftware'>
128
- <img src='https://github.com/AliSoftware.png' width='140px;'>
126
+ <td id='felix-krause'>
127
+ <a href='https://github.com/KrauseFx'>
128
+ <img src='https://github.com/KrauseFx.png' width='140px;'>
129
129
  </a>
130
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
130
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
131
131
  </td>
132
132
  </tr>
133
133
  <tr>
134
- <td id='joshua-liebowitz'>
135
- <a href='https://github.com/taquitos'>
136
- <img src='https://github.com/taquitos.png' width='140px;'>
137
- </a>
138
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
139
- </td>
140
- <td id='max-ott'>
141
- <a href='https://github.com/max-ott'>
142
- <img src='https://github.com/max-ott.png' width='140px;'>
134
+ <td id='helmut-januschka'>
135
+ <a href='https://github.com/hjanuschka'>
136
+ <img src='https://github.com/hjanuschka.png' width='140px;'>
143
137
  </a>
144
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
138
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
145
139
  </td>
146
- <td id='iulian-onofrei'>
147
- <a href='https://github.com/revolter'>
148
- <img src='https://github.com/revolter.png' width='140px;'>
140
+ <td id='olivier-halligon'>
141
+ <a href='https://github.com/AliSoftware'>
142
+ <img src='https://github.com/AliSoftware.png' width='140px;'>
149
143
  </a>
150
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
144
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
151
145
  </td>
152
146
  <td id='łukasz-grabowski'>
153
147
  <a href='https://github.com/lucgrabowski'>
@@ -155,51 +149,57 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
155
149
  </a>
156
150
  <h4 align='center'>Łukasz Grabowski</h4>
157
151
  </td>
158
- <td id='jorge-revuelta-h'>
159
- <a href='https://github.com/minuscorp'>
160
- <img src='https://github.com/minuscorp.png' width='140px;'>
152
+ <td id='kohki-miki'>
153
+ <a href='https://github.com/giginet'>
154
+ <img src='https://github.com/giginet.png' width='140px;'>
161
155
  </a>
162
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
156
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
157
+ </td>
158
+ <td id='joshua-liebowitz'>
159
+ <a href='https://github.com/taquitos'>
160
+ <img src='https://github.com/taquitos.png' width='140px;'>
161
+ </a>
162
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
163
163
  </td>
164
164
  </tr>
165
165
  <tr>
166
- <td id='josh-holtz'>
167
- <a href='https://github.com/joshdholtz'>
168
- <img src='https://github.com/joshdholtz.png' width='140px;'>
166
+ <td id='jimmy-dee'>
167
+ <a href='https://github.com/jdee'>
168
+ <img src='https://github.com/jdee.png' width='140px;'>
169
169
  </a>
170
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
170
+ <h4 align='center'>Jimmy Dee</h4>
171
171
  </td>
172
- <td id='danielle-tomlinson'>
173
- <a href='https://github.com/endocrimes'>
174
- <img src='https://github.com/endocrimes.png' width='140px;'>
172
+ <td id='manu-wallner'>
173
+ <a href='https://github.com/milch'>
174
+ <img src='https://github.com/milch.png' width='140px;'>
175
175
  </a>
176
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
176
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
177
177
  </td>
178
- <td id='roger-oba'>
179
- <a href='https://github.com/rogerluan'>
180
- <img src='https://github.com/rogerluan.png' width='140px;'>
178
+ <td id='aaron-brager'>
179
+ <a href='https://github.com/getaaron'>
180
+ <img src='https://github.com/getaaron.png' width='140px;'>
181
181
  </a>
182
- <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
182
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
183
183
  </td>
184
- <td id='jérôme-lacoste'>
185
- <a href='https://github.com/lacostej'>
186
- <img src='https://github.com/lacostej.png' width='140px;'>
184
+ <td id='max-ott'>
185
+ <a href='https://github.com/max-ott'>
186
+ <img src='https://github.com/max-ott.png' width='140px;'>
187
187
  </a>
188
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
188
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
189
189
  </td>
190
- <td id='kohki-miki'>
191
- <a href='https://github.com/giginet'>
192
- <img src='https://github.com/giginet.png' width='140px;'>
190
+ <td id='andrew-mcburney'>
191
+ <a href='https://github.com/armcburney'>
192
+ <img src='https://github.com/armcburney.png' width='140px;'>
193
193
  </a>
194
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
194
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
195
195
  </td>
196
196
  </tr>
197
197
  <tr>
198
- <td id='manu-wallner'>
199
- <a href='https://github.com/milch'>
200
- <img src='https://github.com/milch.png' width='140px;'>
198
+ <td id='jérôme-lacoste'>
199
+ <a href='https://github.com/lacostej'>
200
+ <img src='https://github.com/lacostej.png' width='140px;'>
201
201
  </a>
202
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
202
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
203
203
  </td>
204
204
  </table>
205
205
 
@@ -138,26 +138,34 @@ 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
165
  if !Spaceship::ConnectAPI.token.nil?
158
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"
159
167
  else
160
- return Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_INSTALLER
168
+ return [Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_INSTALLER]
161
169
  end
162
170
  else
163
171
  UI.user_error("Unaccepted value for :type - #{Cert.config[:type]}")
@@ -182,7 +190,7 @@ module Cert
182
190
  end
183
191
  end
184
192
 
185
- return cert_type
193
+ return [cert_type]
186
194
  end
187
195
 
188
196
  def create_certificate
@@ -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"
@@ -101,6 +105,7 @@ module Deliver
101
105
  ScreenSize::IOS_55 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_55, # also 7 Plus & 8 Plus
102
106
  ScreenSize::IOS_58 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_58,
103
107
  ScreenSize::IOS_65 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_65,
108
+ ScreenSize::IOS_67 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_67,
104
109
  ScreenSize::IOS_IPAD => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_97,
105
110
  ScreenSize::IOS_IPAD_10_5 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_105,
106
111
  ScreenSize::IOS_IPAD_11 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_PRO_3GEN_11,
@@ -111,6 +116,7 @@ module Deliver
111
116
  ScreenSize::IOS_55_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_55, # also 7 Plus & 8 Plus
112
117
  ScreenSize::IOS_58_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_58,
113
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,
114
120
  ScreenSize::IOS_IPAD_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_97,
115
121
  ScreenSize::IOS_IPAD_PRO_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_PRO_129,
116
122
  ScreenSize::IOS_IPAD_PRO_12_9_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_PRO_3GEN_129,
@@ -135,6 +141,7 @@ module Deliver
135
141
  ScreenSize::IOS_58 => "iPhone XS",
136
142
  ScreenSize::IOS_61 => "iPhone XR",
137
143
  ScreenSize::IOS_65 => "iPhone XS Max",
144
+ ScreenSize::IOS_67 => "iPhone 14 Pro Max",
138
145
  ScreenSize::IOS_IPAD => "iPad",
139
146
  ScreenSize::IOS_IPAD_10_5 => "iPad 10.5",
140
147
  ScreenSize::IOS_IPAD_11 => "iPad 11",
@@ -146,6 +153,7 @@ module Deliver
146
153
  ScreenSize::IOS_58_MESSAGES => "iPhone XS (iMessage)",
147
154
  ScreenSize::IOS_61_MESSAGES => "iPhone XR (iMessage)",
148
155
  ScreenSize::IOS_65_MESSAGES => "iPhone XS Max (iMessage)",
156
+ ScreenSize::IOS_67_MESSAGES => "iPhone 14 Pro Max (iMessage)",
149
157
  ScreenSize::IOS_IPAD_MESSAGES => "iPad (iMessage)",
150
158
  ScreenSize::IOS_IPAD_PRO_MESSAGES => "iPad Pro (iMessage)",
151
159
  ScreenSize::IOS_IPAD_PRO_12_9_MESSAGES => "iPad Pro (12.9-inch) (3rd generation) (iMessage)",
@@ -175,6 +183,7 @@ module Deliver
175
183
  ScreenSize::IOS_55_MESSAGES,
176
184
  ScreenSize::IOS_58_MESSAGES,
177
185
  ScreenSize::IOS_65_MESSAGES,
186
+ ScreenSize::IOS_67_MESSAGES,
178
187
  ScreenSize::IOS_IPAD_MESSAGES,
179
188
  ScreenSize::IOS_IPAD_PRO_MESSAGES,
180
189
  ScreenSize::IOS_IPAD_PRO_12_9_MESSAGES,
@@ -187,6 +196,10 @@ module Deliver
187
196
  # This list does not include iPad Pro 12.9-inch (3rd generation)
188
197
  # because it has same resoluation as IOS_IPAD_PRO and will clobber
189
198
  return {
199
+ ScreenSize::IOS_67_MESSAGES => [
200
+ [1290, 2796],
201
+ [2796, 1290]
202
+ ],
190
203
  ScreenSize::IOS_65_MESSAGES => [
191
204
  [1242, 2688],
192
205
  [2688, 1242],
@@ -247,6 +260,10 @@ module Deliver
247
260
  # This list does not include iPad Pro 12.9-inch (3rd generation)
248
261
  # because it has same resoluation as IOS_IPAD_PRO and will clobber
249
262
  return {
263
+ ScreenSize::IOS_67 => [
264
+ [1290, 2796],
265
+ [2796, 1290]
266
+ ],
250
267
  ScreenSize::IOS_65 => [
251
268
  [1242, 2688],
252
269
  [2688, 1242],
@@ -332,6 +349,7 @@ module Deliver
332
349
  "iPad Pro (12.9-inch) (3rd generation)", # Default simulator has this name
333
350
  "iPad Pro (12.9-inch) (4th generation)", # Default simulator has this name
334
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
335
353
  "IPAD_PRO_3GEN_129", # Screenshots downloaded from App Store Connect has this name
336
354
  "ipadPro129" # Legacy: screenshots downloaded from iTunes Connect used to have this name
337
355
  ].any? { |key| filename.include?(key) }
@@ -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",
@@ -46,6 +46,12 @@ module Deliver
46
46
  end
47
47
 
48
48
  def run
49
+ if options[:verify_only]
50
+ UI.important("Verify flag is set, only package validation will take place and no submission will be made")
51
+ verify_binary
52
+ return
53
+ end
54
+
49
55
  verify_version if options[:app_version].to_s.length > 0 && !options[:skip_app_version_update]
50
56
 
51
57
  # Rejecting before upload meta
@@ -155,39 +161,74 @@ module Deliver
155
161
  UploadPriceTier.new.upload(options)
156
162
  end
157
163
 
164
+ # Verify the binary with App Store Connect
165
+ def verify_binary
166
+ UI.message("Verifying binary with App Store Connect")
167
+
168
+ ipa_path = options[:ipa]
169
+ pkg_path = options[:pkg]
170
+
171
+ platform = options[:platform]
172
+ transporter = transporter_for_selected_team
173
+
174
+ case platform
175
+ when "ios", "appletvos"
176
+ package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(
177
+ app_id: Deliver.cache[:app].id,
178
+ ipa_path: ipa_path,
179
+ package_path: "/tmp",
180
+ platform: platform
181
+ )
182
+ result = transporter.verify(package_path: package_path)
183
+ when "osx"
184
+ package_path = FastlaneCore::PkgUploadPackageBuilder.new.generate(
185
+ app_id: Deliver.cache[:app].id,
186
+ pkg_path: pkg_path,
187
+ package_path: "/tmp",
188
+ platform: platform
189
+ )
190
+ result = transporter.verify(package_path: package_path)
191
+ else
192
+ UI.user_error!("No suitable file found for verify for platform: #{options[:platform]}")
193
+ end
194
+
195
+ unless result
196
+ transporter_errors = transporter.displayable_errors
197
+ UI.user_error!("Error verifying the binary file: \n #{transporter_errors}")
198
+ end
199
+ end
200
+
158
201
  # Upload the binary to App Store Connect
159
202
  def upload_binary
160
203
  UI.message("Uploading binary to App Store Connect")
161
204
 
162
- upload_ipa = options[:ipa]
163
- upload_pkg = options[:pkg]
205
+ ipa_path = options[:ipa]
206
+ pkg_path = options[:pkg]
164
207
 
165
- # 2020-01-27
166
- # Only verify platform if if both ipa and pkg exists (for backwards support)
167
- if upload_ipa && upload_pkg
168
- upload_ipa = ["ios", "appletvos"].include?(options[:platform])
169
- upload_pkg = options[:platform] == "osx"
170
- end
208
+ platform = options[:platform]
209
+ transporter = transporter_for_selected_team(upload: true)
171
210
 
172
- if upload_ipa
211
+ case platform
212
+ when "ios", "appletvos"
173
213
  package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(
174
214
  app_id: Deliver.cache[:app].id,
175
- ipa_path: options[:ipa],
215
+ ipa_path: ipa_path,
176
216
  package_path: "/tmp",
177
- platform: options[:platform]
217
+ platform: platform
178
218
  )
179
- elsif upload_pkg
219
+ result = transporter.upload(package_path: package_path, asset_path: ipa_path, platform: platform)
220
+ when "osx"
180
221
  package_path = FastlaneCore::PkgUploadPackageBuilder.new.generate(
181
222
  app_id: Deliver.cache[:app].id,
182
- pkg_path: options[:pkg],
223
+ pkg_path: pkg_path,
183
224
  package_path: "/tmp",
184
- platform: options[:platform]
225
+ platform: platform
185
226
  )
227
+ result = transporter.upload(package_path: package_path, asset_path: pkg_path, platform: platform)
228
+ else
229
+ UI.user_error!("No suitable file found for upload for platform: #{options[:platform]}")
186
230
  end
187
231
 
188
- transporter = transporter_for_selected_team
189
- result = transporter.upload(package_path: package_path, asset_path: upload_ipa || upload_pkg)
190
-
191
232
  unless result
192
233
  transporter_errors = transporter.displayable_errors
193
234
  UI.user_error!("Error uploading ipa file: \n #{transporter_errors}")
@@ -204,13 +245,9 @@ module Deliver
204
245
  UI.message("Review submission cancellation has been requested")
205
246
 
206
247
  # An app version won't get removed from review instantly
207
- # Polling until app version has a state of DEVELOPER_REJECT
248
+ # Polling until there is no longer an in-progress version
208
249
  loop do
209
- version = app.get_edit_app_store_version(platform: platform)
210
- if version.app_store_state == Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::DEVELOPER_REJECTED
211
- break
212
- end
213
-
250
+ break if app.get_in_progress_review_submission(platform: platform).nil?
214
251
  UI.message("Waiting for cancellation to take effect...")
215
252
  sleep(15)
216
253
  end
@@ -229,25 +266,35 @@ module Deliver
229
266
  # If itc_provider was explicitly specified, use it.
230
267
  # If there are multiple teams, infer the provider from the selected team name.
231
268
  # If there are fewer than two teams, don't infer the provider.
232
- def transporter_for_selected_team
269
+ def transporter_for_selected_team(upload: false)
233
270
  # Use JWT auth
234
271
  api_token = Spaceship::ConnectAPI.token
272
+ api_key = if options[:api_key].nil? && !api_token.nil?
273
+ # Load api key info if user set api_key_path, not api_key
274
+ { key_id: api_token.key_id, issuer_id: api_token.issuer_id, key: api_token.key_raw }
275
+ elsif !options[:api_key].nil?
276
+ api_key = options[:api_key].transform_keys(&:to_sym).dup
277
+ # key is still base 64 style if api_key is loaded from option
278
+ api_key[:key] = Base64.decode64(api_key[:key]) if api_key[:is_key_content_base64]
279
+ api_key
280
+ end
281
+
235
282
  unless api_token.nil?
236
283
  api_token.refresh! if api_token.expired?
237
- return FastlaneCore::ItunesTransporter.new(nil, nil, false, nil, api_token.text)
284
+ return FastlaneCore::ItunesTransporter.new(nil, nil, false, nil, api_token.text, upload: upload, api_key: api_key)
238
285
  end
239
286
 
240
287
  tunes_client = Spaceship::ConnectAPI.client.tunes_client
241
288
 
242
- generic_transporter = FastlaneCore::ItunesTransporter.new(options[:username], nil, false, options[:itc_provider])
289
+ generic_transporter = FastlaneCore::ItunesTransporter.new(options[:username], nil, false, options[:itc_provider], upload: upload, api_key: api_key)
243
290
  return generic_transporter unless options[:itc_provider].nil? && tunes_client.teams.count > 1
244
291
 
245
292
  begin
246
- team = tunes_client.teams.find { |t| t['contentProvider']['contentProviderId'].to_s == tunes_client.team_id }
247
- name = team['contentProvider']['name']
293
+ team = tunes_client.teams.find { |t| t['providerId'].to_s == tunes_client.team_id }
294
+ name = team['name']
248
295
  provider_id = generic_transporter.provider_ids[name]
249
296
  UI.verbose("Inferred provider id #{provider_id} for team #{name}.")
250
- return FastlaneCore::ItunesTransporter.new(options[:username], nil, false, provider_id)
297
+ return FastlaneCore::ItunesTransporter.new(options[:username], nil, false, provider_id, upload: upload, api_key: api_key)
251
298
  rescue => ex
252
299
  UI.verbose("Couldn't infer a provider short name for team with id #{tunes_client.team_id} automatically: #{ex}. Proceeding without provider short name.")
253
300
  return generic_transporter
@@ -12,7 +12,9 @@ module Deliver
12
12
  app = Deliver.cache[:app]
13
13
 
14
14
  attributes = {}
15
- territory_ids = []
15
+
16
+ # Check App update method to understand how to use territory_ids.
17
+ territory_ids = nil # nil won't update app's territory_ids, empty array would remove app from sale.
16
18
 
17
19
  # As of 2020-09-14:
18
20
  # Official App Store Connect does not have an endpoint to get app prices for an app
@@ -145,7 +145,7 @@ module Deliver
145
145
  if duplicate
146
146
  UI.message("Previous uploaded. Skipping '#{screenshot.path}'...")
147
147
  else
148
- UI.verbose("Queued uplaod sceeenshot job for #{localization.locale} #{app_screenshot_set.screenshot_display_type} #{screenshot.path}")
148
+ UI.verbose("Queued upload sceeenshot job for #{localization.locale} #{app_screenshot_set.screenshot_display_type} #{screenshot.path}")
149
149
  worker.enqueue(UploadScreenshotJob.new(app_screenshot_set, screenshot.path))
150
150
  number_of_screenshots_per_set[app_screenshot_set] += 1
151
151
  end
@@ -1,5 +1,5 @@
1
1
  # app_identifier("[[APP_IDENTIFIER]]") # The bundle identifier of your app
2
- # apple_id("[[APPLE_ID]]") # Your Apple email address
2
+ # apple_id("[[APPLE_ID]]") # Your Apple Developer Portal username
3
3
 
4
4
  [[TEAMS]]
5
5
  # For more information about the Appfile, see: