fastlane 2.176.0 → 2.180.1

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 (131) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +97 -84
  4. data/cert/lib/cert/options.rb +1 -0
  5. data/cert/lib/cert/runner.rb +5 -1
  6. data/deliver/lib/deliver/app_screenshot.rb +6 -2
  7. data/deliver/lib/deliver/download_screenshots.rb +1 -2
  8. data/deliver/lib/deliver/options.rb +1 -0
  9. data/deliver/lib/deliver/runner.rb +11 -3
  10. data/deliver/lib/deliver/setup.rb +0 -1
  11. data/deliver/lib/deliver/upload_metadata.rb +5 -4
  12. data/deliver/lib/deliver/upload_screenshots.rb +10 -10
  13. data/fastlane/lib/fastlane/.fastlane_require.rb.swp +0 -0
  14. data/fastlane/lib/fastlane/actions/.cocoapods.rb.swp +0 -0
  15. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +6 -1
  16. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +8 -5
  17. data/fastlane/lib/fastlane/actions/appaloosa.rb +7 -2
  18. data/fastlane/lib/fastlane/actions/backup_file.rb +1 -1
  19. data/fastlane/lib/fastlane/actions/build_app.rb +4 -0
  20. data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +4 -0
  21. data/fastlane/lib/fastlane/actions/commit_github_file.rb +11 -1
  22. data/fastlane/lib/fastlane/actions/create_xcframework.rb +5 -0
  23. data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +2 -1
  24. data/fastlane/lib/fastlane/actions/get_github_release.rb +11 -1
  25. data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +4 -0
  26. data/fastlane/lib/fastlane/actions/get_version_number.rb +17 -10
  27. data/fastlane/lib/fastlane/actions/git_branch.rb +4 -10
  28. data/fastlane/lib/fastlane/actions/git_tag_exists.rb +4 -0
  29. data/fastlane/lib/fastlane/actions/github_api.rb +2 -1
  30. data/fastlane/lib/fastlane/actions/increment_build_number.rb +8 -1
  31. data/fastlane/lib/fastlane/actions/install_provisioning_profile.rb +4 -0
  32. data/fastlane/lib/fastlane/actions/jira.rb +61 -14
  33. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +1 -0
  34. data/fastlane/lib/fastlane/actions/match_nuke.rb +59 -0
  35. data/fastlane/lib/fastlane/actions/notarize.rb +98 -51
  36. data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +0 -1
  37. data/fastlane/lib/fastlane/actions/register_device.rb +1 -1
  38. data/fastlane/lib/fastlane/actions/register_devices.rb +1 -1
  39. data/fastlane/lib/fastlane/actions/restore_file.rb +1 -1
  40. data/fastlane/lib/fastlane/actions/set_changelog.rb +1 -1
  41. data/fastlane/lib/fastlane/actions/sourcedocs.rb +164 -0
  42. data/fastlane/lib/fastlane/actions/spaceship_logs.rb +1 -1
  43. data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +1 -2
  44. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +4 -5
  45. data/fastlane/lib/fastlane/erb_template_helper.rb +7 -1
  46. data/fastlane/lib/fastlane/fast_file.rb +9 -5
  47. data/fastlane/lib/fastlane/fastlane_require.rb +7 -1
  48. data/fastlane/lib/fastlane/helper/git_helper.rb +11 -7
  49. data/fastlane/lib/fastlane/plugins/plugin_fetcher.rb +1 -2
  50. data/fastlane/lib/fastlane/plugins/plugin_info_collector.rb +1 -2
  51. data/fastlane/lib/fastlane/plugins/plugin_manager.rb +1 -2
  52. data/fastlane/lib/fastlane/setup/setup.rb +23 -10
  53. data/fastlane/lib/fastlane/swift_fastlane_function.rb +4 -0
  54. data/fastlane/lib/fastlane/swift_runner_upgrader.rb +2 -0
  55. data/fastlane/lib/fastlane/version.rb +1 -1
  56. data/fastlane/swift/Deliverfile.swift +1 -1
  57. data/fastlane/swift/DeliverfileProtocol.swift +3 -3
  58. data/fastlane/swift/Fastlane.swift +557 -326
  59. data/fastlane/swift/Gymfile.swift +1 -1
  60. data/fastlane/swift/GymfileProtocol.swift +1 -1
  61. data/fastlane/swift/LaneFileProtocol.swift +9 -3
  62. data/fastlane/swift/Matchfile.swift +1 -1
  63. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  64. data/fastlane/swift/Precheckfile.swift +1 -1
  65. data/fastlane/swift/PrecheckfileProtocol.swift +3 -3
  66. data/fastlane/swift/RubyCommand.swift +1 -1
  67. data/fastlane/swift/Scanfile.swift +1 -1
  68. data/fastlane/swift/ScanfileProtocol.swift +9 -1
  69. data/fastlane/swift/Screengrabfile.swift +1 -1
  70. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  71. data/fastlane/swift/Snapshotfile.swift +1 -1
  72. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  73. data/fastlane/swift/SocketClient.swift +2 -1
  74. data/fastlane/swift/SocketResponse.swift +4 -2
  75. data/fastlane/swift/formatting/Brewfile.lock.json +13 -13
  76. data/fastlane_core/lib/fastlane_core.rb +1 -0
  77. data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +5 -3
  78. data/fastlane_core/lib/fastlane_core/helper.rb +24 -1
  79. data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +3 -2
  80. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +14 -8
  81. data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +3 -2
  82. data/fastlane_core/lib/fastlane_core/project.rb +3 -14
  83. data/{deliver/lib/deliver → fastlane_core/lib/fastlane_core}/queue_worker.rb +4 -4
  84. data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +12 -1
  85. data/fastlane_core/lib/fastlane_core/ui/interface.rb +1 -1
  86. data/gym/lib/gym/generators/.package_command_generator_xcode7.rb.swp +0 -0
  87. data/gym/lib/gym/generators/package_command_generator.rb +4 -0
  88. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +13 -8
  89. data/gym/lib/gym/runner.rb +11 -4
  90. data/match/lib/match/change_password.rb +3 -3
  91. data/match/lib/match/encryption/interface.rb +1 -1
  92. data/match/lib/match/encryption/openssl.rb +2 -2
  93. data/match/lib/match/importer.rb +1 -1
  94. data/match/lib/match/migrate.rb +1 -1
  95. data/match/lib/match/module.rb +1 -0
  96. data/match/lib/match/nuke.rb +1 -1
  97. data/match/lib/match/runner.rb +1 -1
  98. data/match/lib/match/storage/google_cloud_storage.rb +1 -1
  99. data/match/lib/match/storage/s3_storage.rb +1 -1
  100. data/pilot/lib/pilot/build_manager.rb +18 -6
  101. data/pilot/lib/pilot/manager.rb +5 -1
  102. data/pilot/lib/pilot/options.rb +3 -2
  103. data/precheck/lib/precheck/options.rb +1 -0
  104. data/precheck/lib/precheck/runner.rb +5 -1
  105. data/scan/lib/scan/detect_values.rb +4 -1
  106. data/scan/lib/scan/options.rb +15 -5
  107. data/scan/lib/scan/runner.rb +52 -1
  108. data/scan/lib/scan/test_command_generator.rb +8 -8
  109. data/screengrab/lib/screengrab/android_environment.rb +6 -4
  110. data/screengrab/lib/screengrab/runner.rb +1 -1
  111. data/sigh/lib/sigh/download_all.rb +1 -1
  112. data/sigh/lib/sigh/options.rb +1 -0
  113. data/sigh/lib/sigh/runner.rb +5 -1
  114. data/snapshot/lib/assets/SnapshotHelper.swift +1 -1
  115. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +2 -1
  116. data/spaceship/lib/spaceship/client.rb +18 -17
  117. data/spaceship/lib/spaceship/connect_api/api_client.rb +24 -6
  118. data/spaceship/lib/spaceship/connect_api/models/app.rb +1 -1
  119. data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +5 -0
  120. data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +1 -1
  121. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +5 -0
  122. data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +6 -0
  123. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +5 -0
  124. data/spaceship/lib/spaceship/connect_api/models/build.rb +5 -0
  125. data/spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb +4 -0
  126. data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +13 -0
  127. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +13 -0
  128. data/spaceship/lib/spaceship/connect_api/token.rb +8 -2
  129. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +15 -0
  130. metadata +28 -22
  131. data/pilot/lib/pilot/.build_manager.rb.swp +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7ba261e1e70a178f818c12e9f44a9da7d339da6f103aad678777f0a66592bf97
4
- data.tar.gz: f1b3689af027c08af744d5a25a4dedb5b1e96ca89ed61cc30c30756526726117
3
+ metadata.gz: 163349126d102ca91b188c06ebf4f0cdca8e412a5e90323f30b1e173906a15d2
4
+ data.tar.gz: 9df2a6ee820366f89c531fa8ffc8a9aaddba6aae5f5c7374b719d5209db4c45a
5
5
  SHA512:
6
- metadata.gz: 4f45f74114acc9ad5585743e3a352e75ebc2bb671372206d217c3d5bcb14c79bd7fe672b6b35cb94068bc9dbc66c7942a9afbb27680d37233f37f9c0bc780d7a
7
- data.tar.gz: dd59ef529c0ac9f650dfe8afb9ce18ea4dbec6c0b637fb57ff9f52105399558f63186c97b795531536fd557af10ef5b05e3d8010cb40b2444a6e5bbc4368f409
6
+ metadata.gz: 9f29ea5cbe8e9df6d6eb0f6cd2e59fb2053ae7298bffa924b8db9fbf1fbd3618ba776431b17a1727858f5c3e8b6700e7eea0e1cc315b825933d7c64379503d99
7
+ data.tar.gz: 3acea8ce3adf71c5d22a9a52e5e26d2a7c3a76d5901da8306104ae26396eccd70c4f9da4573082eaf7cc1c1236ef6e52c5c0ef26f25d860888664f76ebc56599
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2015-2020 The Fastlane Authors
3
+ Copyright (c) 2015-2021 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
@@ -7,6 +7,7 @@
7
7
  [![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
8
8
  [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/LICENSE)
9
9
  [![Gem](https://img.shields.io/gem/v/fastlane.svg?style=flat)](https://rubygems.org/gems/fastlane)
10
+ [![Homebrew](https://img.shields.io/badge/dynamic/json.svg?url=https://formulae.brew.sh/api/formula/fastlane.json&query=$.versions.stable&label=homebrew)](https://formulae.brew.sh/formula/fastlane)
10
11
  [![Build Status](https://img.shields.io/circleci/project/github/fastlane/fastlane/master.svg)](https://circleci.com/gh/fastlane/fastlane)
11
12
  [![PRs welcome!](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/fastlane/fastlane/blob/master/CONTRIBUTING.md)
12
13
 
@@ -34,55 +35,43 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
34
35
  <!-- This table is regenerated and resorted on each release -->
35
36
  <table id='team'>
36
37
  <tr>
37
- <td id='matthew-ellis'>
38
- <a href='https://github.com/matthewellis'>
39
- <img src='https://github.com/matthewellis.png?size=140'>
38
+ <td id='jérôme-lacoste'>
39
+ <a href='https://github.com/lacostej'>
40
+ <img src='https://github.com/lacostej.png?size=140'>
40
41
  </a>
41
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
42
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
42
43
  </td>
43
- <td id='maksym-grebenets'>
44
- <a href='https://github.com/mgrebenets'>
45
- <img src='https://github.com/mgrebenets.png?size=140'>
44
+ <td id='max-ott'>
45
+ <a href='https://github.com/max-ott'>
46
+ <img src='https://github.com/max-ott.png?size=140'>
46
47
  </a>
47
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
48
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
48
49
  </td>
49
- <td id='aaron-brager'>
50
- <a href='https://github.com/getaaron'>
51
- <img src='https://github.com/getaaron.png?size=140'>
50
+ <td id='kohki-miki'>
51
+ <a href='https://github.com/giginet'>
52
+ <img src='https://github.com/giginet.png?size=140'>
52
53
  </a>
53
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
54
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
54
55
  </td>
55
- <td id='jorge-revuelta-h'>
56
- <a href='https://github.com/minuscorp'>
57
- <img src='https://github.com/minuscorp.png?size=140'>
56
+ <td id='josh-holtz'>
57
+ <a href='https://github.com/joshdholtz'>
58
+ <img src='https://github.com/joshdholtz.png?size=140'>
58
59
  </a>
59
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
60
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
60
61
  </td>
61
- <td id='felix-krause'>
62
- <a href='https://github.com/KrauseFx'>
63
- <img src='https://github.com/KrauseFx.png?size=140'>
62
+ <td id='maksym-grebenets'>
63
+ <a href='https://github.com/mgrebenets'>
64
+ <img src='https://github.com/mgrebenets.png?size=140'>
64
65
  </a>
65
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
66
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
66
67
  </td>
67
68
  </tr>
68
69
  <tr>
69
- <td id='jimmy-dee'>
70
- <a href='https://github.com/jdee'>
71
- <img src='https://github.com/jdee.png?size=140'>
72
- </a>
73
- <h4 align='center'>Jimmy Dee</h4>
74
- </td>
75
- <td id='kohki-miki'>
76
- <a href='https://github.com/giginet'>
77
- <img src='https://github.com/giginet.png?size=140'>
78
- </a>
79
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
80
- </td>
81
- <td id='stefan-natchev'>
82
- <a href='https://github.com/snatchev'>
83
- <img src='https://github.com/snatchev.png?size=140'>
70
+ <td id='fumiya-nakamura'>
71
+ <a href='https://github.com/nafu'>
72
+ <img src='https://github.com/nafu.png?size=140'>
84
73
  </a>
85
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
74
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
86
75
  </td>
87
76
  <td id='joshua-liebowitz'>
88
77
  <a href='https://github.com/taquitos'>
@@ -90,19 +79,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
90
79
  </a>
91
80
  <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
92
81
  </td>
93
- <td id='fumiya-nakamura'>
94
- <a href='https://github.com/nafu'>
95
- <img src='https://github.com/nafu.png?size=140'>
82
+ <td id='luka-mirosevic'>
83
+ <a href='https://github.com/lmirosevic'>
84
+ <img src='https://github.com/lmirosevic.png?size=140'>
96
85
  </a>
97
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
86
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
87
+ </td>
88
+ <td id='aaron-brager'>
89
+ <a href='https://github.com/getaaron'>
90
+ <img src='https://github.com/getaaron.png?size=140'>
91
+ </a>
92
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
93
+ </td>
94
+ <td id='satoshi-namai'>
95
+ <a href='https://github.com/ainame'>
96
+ <img src='https://github.com/ainame.png?size=140'>
97
+ </a>
98
+ <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
98
99
  </td>
99
100
  </tr>
100
101
  <tr>
101
- <td id='andrew-mcburney'>
102
- <a href='https://github.com/armcburney'>
103
- <img src='https://github.com/armcburney.png?size=140'>
102
+ <td id='daniel-jankowski'>
103
+ <a href='https://github.com/mollyIV'>
104
+ <img src='https://github.com/mollyIV.png?size=140'>
104
105
  </a>
105
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
106
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
106
107
  </td>
107
108
  <td id='olivier-halligon'>
108
109
  <a href='https://github.com/AliSoftware'>
@@ -110,49 +111,37 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
110
111
  </a>
111
112
  <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
112
113
  </td>
113
- <td id='jérôme-lacoste'>
114
- <a href='https://github.com/lacostej'>
115
- <img src='https://github.com/lacostej.png?size=140'>
114
+ <td id='roger-oba'>
115
+ <a href='https://github.com/rogerluan'>
116
+ <img src='https://github.com/rogerluan.png?size=140'>
116
117
  </a>
117
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
118
+ <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
118
119
  </td>
119
- <td id='jan-piotrowski'>
120
- <a href='https://github.com/janpio'>
121
- <img src='https://github.com/janpio.png?size=140'>
120
+ <td id='manu-wallner'>
121
+ <a href='https://github.com/milch'>
122
+ <img src='https://github.com/milch.png?size=140'>
122
123
  </a>
123
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
124
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
124
125
  </td>
125
- <td id='danielle-tomlinson'>
126
- <a href='https://github.com/endocrimes'>
127
- <img src='https://github.com/endocrimes.png?size=140'>
126
+ <td id='jorge-revuelta-h'>
127
+ <a href='https://github.com/minuscorp'>
128
+ <img src='https://github.com/minuscorp.png?size=140'>
128
129
  </a>
129
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
130
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
130
131
  </td>
131
132
  </tr>
132
133
  <tr>
133
- <td id='luka-mirosevic'>
134
- <a href='https://github.com/lmirosevic'>
135
- <img src='https://github.com/lmirosevic.png?size=140'>
136
- </a>
137
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
138
- </td>
139
134
  <td id='helmut-januschka'>
140
135
  <a href='https://github.com/hjanuschka'>
141
136
  <img src='https://github.com/hjanuschka.png?size=140'>
142
137
  </a>
143
138
  <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
144
139
  </td>
145
- <td id='max-ott'>
146
- <a href='https://github.com/max-ott'>
147
- <img src='https://github.com/max-ott.png?size=140'>
148
- </a>
149
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
150
- </td>
151
- <td id='josh-holtz'>
152
- <a href='https://github.com/joshdholtz'>
153
- <img src='https://github.com/joshdholtz.png?size=140'>
140
+ <td id='jimmy-dee'>
141
+ <a href='https://github.com/jdee'>
142
+ <img src='https://github.com/jdee.png?size=140'>
154
143
  </a>
155
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
144
+ <h4 align='center'>Jimmy Dee</h4>
156
145
  </td>
157
146
  <td id='iulian-onofrei'>
158
147
  <a href='https://github.com/revolter'>
@@ -160,19 +149,43 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
160
149
  </a>
161
150
  <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
162
151
  </td>
152
+ <td id='felix-krause'>
153
+ <a href='https://github.com/KrauseFx'>
154
+ <img src='https://github.com/KrauseFx.png?size=140'>
155
+ </a>
156
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
157
+ </td>
158
+ <td id='stefan-natchev'>
159
+ <a href='https://github.com/snatchev'>
160
+ <img src='https://github.com/snatchev.png?size=140'>
161
+ </a>
162
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
163
+ </td>
163
164
  </tr>
164
165
  <tr>
165
- <td id='daniel-jankowski'>
166
- <a href='https://github.com/mollyIV'>
167
- <img src='https://github.com/mollyIV.png?size=140'>
166
+ <td id='danielle-tomlinson'>
167
+ <a href='https://github.com/endocrimes'>
168
+ <img src='https://github.com/endocrimes.png?size=140'>
168
169
  </a>
169
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
170
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
170
171
  </td>
171
- <td id='manu-wallner'>
172
- <a href='https://github.com/milch'>
173
- <img src='https://github.com/milch.png?size=140'>
172
+ <td id='jan-piotrowski'>
173
+ <a href='https://github.com/janpio'>
174
+ <img src='https://github.com/janpio.png?size=140'>
174
175
  </a>
175
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
176
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
177
+ </td>
178
+ <td id='matthew-ellis'>
179
+ <a href='https://github.com/matthewellis'>
180
+ <img src='https://github.com/matthewellis.png?size=140'>
181
+ </a>
182
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
183
+ </td>
184
+ <td id='andrew-mcburney'>
185
+ <a href='https://github.com/armcburney'>
186
+ <img src='https://github.com/armcburney.png?size=140'>
187
+ </a>
188
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
176
189
  </td>
177
190
  </table>
178
191
 
@@ -187,12 +200,12 @@ Check out [CONTRIBUTING.md](CONTRIBUTING.md) for more information on how to help
187
200
  Help us keep _fastlane_ open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/fastlane/blob/master/CODE_OF_CONDUCT.md).
188
201
 
189
202
  ## Metrics
190
-
191
- _fastlane_ tracks a few key metrics to understand how developers are using the tool and to help us know what areas need improvement. No personal/sensitive information is ever collected. Metrics that are collected include:
192
-
203
+
204
+ _fastlane_ tracks a few key metrics to understand how developers are using the tool and to help us know what areas need improvement. No personal/sensitive information is ever collected. Metrics that are collected include:
205
+
193
206
  * The number of _fastlane_ runs
194
207
  * A salted hash of the app identifier or package name, which helps us anonymously identify unique usage of _fastlane_
195
-
208
+
196
209
  You can easily opt-out of metrics collection by adding `opt_out_usage` at the top of your `Fastfile` or by setting the environment variable `FASTLANE_OPT_OUT_USAGE`. [Check out the metrics code on GitHub](https://github.com/fastlane/fastlane/tree/master/fastlane_core/lib/fastlane_core/analytics)
197
210
 
198
211
  ## License
@@ -58,6 +58,7 @@ module Cert
58
58
  short_option: "-u",
59
59
  env_name: "CERT_USERNAME",
60
60
  description: "Your Apple ID Username",
61
+ optional: true,
61
62
  default_value: user,
62
63
  default_value_dynamic: true),
63
64
  FastlaneCore::ConfigItem.new(key: :team_id,
@@ -24,6 +24,10 @@ module Cert
24
24
  UI.message("Creating authorization token for App Store Connect API")
25
25
  Spaceship::ConnectAPI.token = api_token
26
26
  else
27
+ # Username is now optional since addition of App Store Connect API Key
28
+ # Force asking for username to prompt user if not already set
29
+ Cert.config.fetch(:username, force_ask: true)
30
+
27
31
  UI.message("Starting login with user '#{Cert.config[:username]}'")
28
32
  Spaceship::ConnectAPI.login(Cert.config[:username], nil, use_portal: true, use_tunes: false)
29
33
  UI.message("Successfully logged in")
@@ -31,7 +35,7 @@ module Cert
31
35
  end
32
36
 
33
37
  def api_token
34
- @api_token ||= Spaceship::ConnectAPI::Token.create(Cert.config[:api_key]) if Cert.config[:api_key]
38
+ @api_token ||= Spaceship::ConnectAPI::Token.create(**Cert.config[:api_key]) if Cert.config[:api_key]
35
39
  @api_token ||= Spaceship::ConnectAPI::Token.from_json_file(Cert.config[:api_key_path]) if Cert.config[:api_key_path]
36
40
  return @api_token
37
41
  end
@@ -195,7 +195,9 @@ module Deliver
195
195
  ],
196
196
  ScreenSize::IOS_58_MESSAGES => [
197
197
  [1125, 2436],
198
- [2436, 1125]
198
+ [2436, 1125],
199
+ [1170, 2532],
200
+ [2532, 1170]
199
201
  ],
200
202
  ScreenSize::IOS_55_MESSAGES => [
201
203
  [1242, 2208],
@@ -253,7 +255,9 @@ module Deliver
253
255
  ],
254
256
  ScreenSize::IOS_58 => [
255
257
  [1125, 2436],
256
- [2436, 1125]
258
+ [2436, 1125],
259
+ [1170, 2532],
260
+ [2532, 1170]
257
261
  ],
258
262
  ScreenSize::IOS_55 => [
259
263
  [1242, 2208],
@@ -1,6 +1,5 @@
1
1
  require_relative 'module'
2
2
  require 'spaceship'
3
- require 'open-uri'
4
3
 
5
4
  module Deliver
6
5
  class DownloadScreenshots
@@ -68,7 +67,7 @@ module Deliver
68
67
  end
69
68
 
70
69
  path = File.join(containing_folder, file_name)
71
- File.binwrite(path, open(url).read)
70
+ File.binwrite(path, FastlaneCore::Helper.open_uri(url).read)
72
71
  end
73
72
  end
74
73
  end
@@ -32,6 +32,7 @@ module Deliver
32
32
  short_option: "-u",
33
33
  env_name: "DELIVER_USERNAME",
34
34
  description: "Your Apple ID Username",
35
+ optional: true,
35
36
  default_value: user,
36
37
  default_value_dynamic: true),
37
38
  FastlaneCore::ConfigItem.new(key: :app_identifier,
@@ -30,6 +30,10 @@ module Deliver
30
30
  UI.message("Creating authorization token for App Store Connect API")
31
31
  Spaceship::ConnectAPI.token = api_token
32
32
  else
33
+ # Username is now optional since addition of App Store Connect API Key
34
+ # Force asking for username to prompt user if not already set
35
+ options.fetch(:username, force_ask: true)
36
+
33
37
  # Team selection passed though FASTLANE_TEAM_ID and FASTLANE_TEAM_NAME environment variables
34
38
  # Prompts select team if multiple teams and none specified
35
39
  UI.message("Login to App Store Connect (#{options[:username]})")
@@ -39,7 +43,7 @@ module Deliver
39
43
  end
40
44
 
41
45
  def api_token
42
- @api_token ||= Spaceship::ConnectAPI::Token.create(options[:api_key]) if options[:api_key]
46
+ @api_token ||= Spaceship::ConnectAPI::Token.create(**options[:api_key]) if options[:api_key]
43
47
  @api_token ||= Spaceship::ConnectAPI::Token.from_json_file(options[:api_key_path]) if options[:api_key_path]
44
48
  return @api_token
45
49
  end
@@ -178,8 +182,12 @@ module Deliver
178
182
  end
179
183
 
180
184
  transporter = transporter_for_selected_team
181
- result = transporter.upload(options[:app].id, package_path)
182
- UI.user_error!("Could not upload binary to App Store Connect. Check out the error above", show_github_issues: true) unless result
185
+ result = transporter.upload(package_path: package_path)
186
+
187
+ unless result
188
+ transporter_errors = transporter.displayable_errors
189
+ UI.user_error!("Error uploading ipa file: \n #{transporter_errors}")
190
+ end
183
191
  end
184
192
 
185
193
  def reject_version_if_possible
@@ -1,4 +1,3 @@
1
- require 'open-uri'
2
1
  require 'spaceship/tunes/tunes'
3
2
 
4
3
  require_relative 'module'
@@ -1,7 +1,7 @@
1
+ require 'fastlane_core'
1
2
  require 'spaceship'
2
3
 
3
4
  require_relative 'module'
4
- require_relative 'queue_worker'
5
5
 
6
6
  module Deliver
7
7
  # upload description, rating, etc.
@@ -200,7 +200,7 @@ module Deliver
200
200
  sleep(1)
201
201
 
202
202
  # Update app store version localizations
203
- store_version_worker = Deliver::QueueWorker.new do |app_store_version_localization|
203
+ store_version_worker = FastlaneCore::QueueWorker.new do |app_store_version_localization|
204
204
  attributes = localized_version_attributes_by_locale[app_store_version_localization.locale]
205
205
  if attributes
206
206
  UI.message("Uploading metadata to App Store Connect for localized version '#{app_store_version_localization.locale}'")
@@ -211,7 +211,7 @@ module Deliver
211
211
  store_version_worker.start
212
212
 
213
213
  # Update app info localizations
214
- app_info_worker = Deliver::QueueWorker.new do |app_info_localization|
214
+ app_info_worker = FastlaneCore::QueueWorker.new do |app_info_localization|
215
215
  attributes = localized_info_attributes_by_locale[app_info_localization.locale]
216
216
  if attributes
217
217
  UI.message("Uploading metadata to App Store Connect for localized info '#{app_info_localization.locale}'")
@@ -592,8 +592,9 @@ module Deliver
592
592
  end
593
593
 
594
594
  def set_review_information(version, options)
595
- return unless options[:app_review_information]
596
595
  info = options[:app_review_information]
596
+ return if info.nil? || info.empty?
597
+
597
598
  info = info.collect { |k, v| [k.to_sym, v] }.to_h
598
599
  UI.user_error!("`app_review_information` must be a hash", show_github_issues: true) unless info.kind_of?(Hash)
599
600
 
@@ -1,16 +1,16 @@
1
+ require 'fastlane_core'
1
2
  require 'spaceship/tunes/tunes'
2
3
  require 'digest/md5'
3
4
 
4
5
  require_relative 'app_screenshot'
5
6
  require_relative 'module'
6
7
  require_relative 'loader'
7
- require_relative 'queue_worker'
8
8
  require_relative 'app_screenshot_iterator'
9
9
 
10
10
  module Deliver
11
11
  # upload screenshots to App Store Connect
12
12
  class UploadScreenshots
13
- DeleteScreenshotJob = Struct.new(:app_screenshot, :localization, :app_screenshot_set)
13
+ DeleteScreenshotSetJob = Struct.new(:app_screenshot_set, :localization)
14
14
  UploadScreenshotJob = Struct.new(:app_screenshot_set, :path)
15
15
 
16
16
  def upload(options, screenshots)
@@ -67,12 +67,12 @@ module Deliver
67
67
  def delete_screenshots(localizations, screenshots_per_language, tries: 5)
68
68
  tries -= 1
69
69
 
70
- worker = QueueWorker.new do |job|
70
+ worker = FastlaneCore::QueueWorker.new do |job|
71
71
  start_time = Time.now
72
- target = "#{job.localization.locale} #{job.app_screenshot_set.screenshot_display_type} #{job.app_screenshot.id}"
72
+ target = "#{job.localization.locale} #{job.app_screenshot_set.screenshot_display_type}"
73
73
  begin
74
74
  UI.verbose("Deleting '#{target}'")
75
- job.app_screenshot.delete!
75
+ job.app_screenshot_set.delete!
76
76
  UI.message("Deleted '#{target}' - (#{Time.now - start_time} secs)")
77
77
  rescue => error
78
78
  UI.error("Failed to delete screenshot #{target} - (#{Time.now - start_time} secs)")
@@ -81,12 +81,12 @@ module Deliver
81
81
  end
82
82
 
83
83
  iterator = AppScreenshotIterator.new(localizations)
84
- iterator.each_app_screenshot do |localization, app_screenshot_set, app_screenshot|
84
+ iterator.each_app_screenshot_set do |localization, app_screenshot_set|
85
85
  # Only delete screenshots if trying to upload
86
86
  next unless screenshots_per_language.keys.include?(localization.locale)
87
87
 
88
- UI.verbose("Queued delete sceeenshot job for #{localization.locale} #{app_screenshot_set.screenshot_display_type} #{app_screenshot.id}")
89
- worker.enqueue(DeleteScreenshotJob.new(app_screenshot, localization, app_screenshot_set))
88
+ UI.verbose("Queued delete sceeenshot set job for #{localization.locale} #{app_screenshot_set.screenshot_display_type}")
89
+ worker.enqueue(DeleteScreenshotSetJob.new(app_screenshot_set, localization))
90
90
  end
91
91
 
92
92
  worker.start
@@ -113,7 +113,7 @@ module Deliver
113
113
  tries -= 1
114
114
 
115
115
  # Upload screenshots
116
- worker = QueueWorker.new do |job|
116
+ worker = FastlaneCore::QueueWorker.new do |job|
117
117
  begin
118
118
  UI.verbose("Uploading '#{job.path}'...")
119
119
  start_time = Time.now
@@ -235,7 +235,7 @@ module Deliver
235
235
  iterator = AppScreenshotIterator.new(localizations)
236
236
 
237
237
  # Re-order screenshots within app_screenshot_set
238
- worker = QueueWorker.new do |app_screenshot_set|
238
+ worker = FastlaneCore::QueueWorker.new do |app_screenshot_set|
239
239
  original_ids = app_screenshot_set.app_screenshots.map(&:id)
240
240
  sorted_ids = Naturally.sort(app_screenshot_set.app_screenshots, by: :file_name).map(&:id)
241
241
  if original_ids != sorted_ids