fastlane 2.233.1 → 2.234.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +89 -88
  3. data/deliver/lib/deliver/languages.rb +1 -1
  4. data/deliver/lib/deliver/upload_price_tier.rb +4 -2
  5. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +2 -2
  6. data/fastlane/lib/fastlane/actions/appium.rb +1 -1
  7. data/fastlane/lib/fastlane/actions/appledoc.rb +1 -1
  8. data/fastlane/lib/fastlane/actions/create_app_on_managed_play_store.rb +2 -2
  9. data/fastlane/lib/fastlane/actions/gcovr.rb +1 -1
  10. data/fastlane/lib/fastlane/actions/increment_version_number.rb +5 -0
  11. data/fastlane/lib/fastlane/actions/install_on_device.rb +1 -1
  12. data/fastlane/lib/fastlane/actions/lcov.rb +1 -1
  13. data/fastlane/lib/fastlane/actions/oclint.rb +1 -1
  14. data/fastlane/lib/fastlane/actions/sonar.rb +1 -1
  15. data/fastlane/lib/fastlane/actions/sourcedocs.rb +1 -1
  16. data/fastlane/lib/fastlane/actions/swiftlint.rb +1 -1
  17. data/fastlane/lib/fastlane/actions/validate_play_store_json_key.rb +4 -4
  18. data/fastlane/lib/fastlane/actions/xcodebuild.rb +1 -1
  19. data/fastlane/lib/fastlane/actions/xctool.rb +1 -1
  20. data/fastlane/lib/fastlane/helper/xcodebuild_formatter_helper.rb +1 -1
  21. data/fastlane/lib/fastlane/helper/xcodes_helper.rb +1 -1
  22. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +1 -0
  23. data/fastlane/lib/fastlane/swift_runner_upgrader.rb +1 -1
  24. data/fastlane/lib/fastlane/version.rb +2 -2
  25. data/fastlane/swift/Deliverfile.swift +1 -1
  26. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  27. data/fastlane/swift/Fastlane.swift +21 -21
  28. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +4 -4
  29. data/fastlane/swift/Gymfile.swift +1 -1
  30. data/fastlane/swift/GymfileProtocol.swift +1 -1
  31. data/fastlane/swift/Matchfile.swift +1 -1
  32. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  33. data/fastlane/swift/Precheckfile.swift +1 -1
  34. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  35. data/fastlane/swift/Scanfile.swift +1 -1
  36. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  37. data/fastlane/swift/Screengrabfile.swift +1 -1
  38. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  39. data/fastlane/swift/Snapshotfile.swift +1 -1
  40. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  41. data/fastlane_core/lib/fastlane_core/clipboard.rb +1 -1
  42. data/fastlane_core/lib/fastlane_core/helper.rb +14 -1
  43. data/fastlane_core/lib/fastlane_core/languages.rb +1 -1
  44. data/frameit/lib/frameit/dependency_checker.rb +1 -1
  45. data/frameit/lib/frameit/device_types.rb +18 -0
  46. data/frameit/lib/frameit/editor.rb +2 -2
  47. data/match/lib/match/nuke.rb +58 -38
  48. data/match/lib/match/storage/git_storage.rb +1 -1
  49. data/produce/lib/produce/available_default_languages.rb +12 -1
  50. data/scan/lib/scan/detect_values.rb +5 -0
  51. data/sigh/lib/assets/resign.sh +6 -10
  52. data/snapshot/lib/snapshot/reports_generator.rb +7 -0
  53. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +1 -1
  54. data/spaceship/lib/assets/languageMapping.json +66 -0
  55. data/spaceship/lib/spaceship/portal/provisioning_profile.rb +63 -25
  56. data/supply/lib/supply/client.rb +61 -43
  57. data/supply/lib/supply/options.rb +2 -2
  58. metadata +31 -31
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c0eca61fa0396713a78e6de08eaca27b99061aa3316be3f456fd34b5aea05368
4
- data.tar.gz: 1d31711ddcd3b0c745587cc2eb1adbcadefe599f40442efe06c65f4b78c50e8c
3
+ metadata.gz: 525a3a4fbaab6476e3908604bbe7961491cb337a2a389a4ddd5d42248b9ff05c
4
+ data.tar.gz: 1fc064f5f314cebf73705bc011a6074e458b87ba5b2b0d34296f57b6d14a83c7
5
5
  SHA512:
6
- metadata.gz: 44249e561611f1f9cd093155561bc034e6c257abc1b8a0d45f2a7b36f8a8daf857cb0a9ec2a4efb40c056d135f595dff8313c4df157beb17ff0e7f823e37d1d9
7
- data.tar.gz: 16e33277c3dfa404406a1664e6c1cb240e2df037052e437a3f525c7943956606d67b45688af945119ec29a034ef9ba3a8bb95505217edff32831d644838f9f30
6
+ metadata.gz: 9b9d73f37397f4f03ada825e099f3904adb879133c7c777a95418e8898922ef3d04b2594c1db5e95cfb34e202f9d493ba613428deccfaacc7401dbe2a941f95b
7
+ data.tar.gz: db0c73f50e6c6e8d745944739ab3f0c86bdc6328026c03eed1dae1d0402031553af1d506e970206438df4638d64b32c15b7321295929ffd9ed98c936691d6d93
data/README.md CHANGED
@@ -10,6 +10,7 @@
10
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)
11
11
  [![Build Status](https://img.shields.io/circleci/project/github/fastlane/fastlane/master.svg)](https://circleci.com/gh/fastlane/fastlane)
12
12
  [![PRs welcome!](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/fastlane/fastlane/blob/master/CONTRIBUTING.md)
13
+ [![OpenCollective!](https://opencollective.com/fastlane/tiers/badge.svg)](https://opencollective.com/fastlane)
13
14
 
14
15
  _fastlane_ is a tool for iOS and Android developers to automate tedious tasks like generating screenshots, dealing with provisioning profiles, and releasing your application.
15
16
 
@@ -35,23 +36,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
35
36
  <!-- This table is regenerated and resorted on each release -->
36
37
  <table id='team'>
37
38
  <tr>
38
- <td id='jorge-revuelta-h'>
39
- <a href='https://github.com/minuscorp'>
40
- <img src='https://github.com/minuscorp.png' width='140px;'>
41
- </a>
42
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
43
- </td>
44
- <td id='łukasz-grabowski'>
45
- <a href='https://github.com/lucgrabowski'>
46
- <img src='https://github.com/lucgrabowski.png' width='140px;'>
39
+ <td id='joshua-liebowitz'>
40
+ <a href='https://github.com/taquitos'>
41
+ <img src='https://github.com/taquitos.png' width='140px;'>
47
42
  </a>
48
- <h4 align='center'>Łukasz Grabowski</h4>
43
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
49
44
  </td>
50
- <td id='fumiya-nakamura'>
51
- <a href='https://github.com/nafu'>
52
- <img src='https://github.com/nafu.png' width='140px;'>
45
+ <td id='manish-rathi'>
46
+ <a href='https://github.com/crazymanish'>
47
+ <img src='https://github.com/crazymanish.png' width='140px;'>
53
48
  </a>
54
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
49
+ <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
55
50
  </td>
56
51
  <td id='josh-holtz'>
57
52
  <a href='https://github.com/joshdholtz'>
@@ -59,63 +54,69 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
59
54
  </a>
60
55
  <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
61
56
  </td>
62
- <td id='aaron-brager'>
63
- <a href='https://github.com/getaaron'>
64
- <img src='https://github.com/getaaron.png' width='140px;'>
57
+ <td id='satoshi-namai'>
58
+ <a href='https://github.com/ainame'>
59
+ <img src='https://github.com/ainame.png' width='140px;'>
65
60
  </a>
66
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
61
+ <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
67
62
  </td>
68
- </tr>
69
- <tr>
70
63
  <td id='jérôme-lacoste'>
71
64
  <a href='https://github.com/lacostej'>
72
65
  <img src='https://github.com/lacostej.png' width='140px;'>
73
66
  </a>
74
67
  <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
75
68
  </td>
76
- <td id='andrew-mcburney'>
77
- <a href='https://github.com/armcburney'>
78
- <img src='https://github.com/armcburney.png' width='140px;'>
79
- </a>
80
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
81
- </td>
69
+ </tr>
70
+ <tr>
82
71
  <td id='kohki-miki'>
83
72
  <a href='https://github.com/giginet'>
84
73
  <img src='https://github.com/giginet.png' width='140px;'>
85
74
  </a>
86
75
  <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
87
76
  </td>
77
+ <td id='maksym-grebenets'>
78
+ <a href='https://github.com/mgrebenets'>
79
+ <img src='https://github.com/mgrebenets.png' width='140px;'>
80
+ </a>
81
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
82
+ </td>
88
83
  <td id='olivier-halligon'>
89
84
  <a href='https://github.com/AliSoftware'>
90
85
  <img src='https://github.com/AliSoftware.png' width='140px;'>
91
86
  </a>
92
87
  <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
93
88
  </td>
94
- <td id='connor-tumbleson'>
95
- <a href='https://github.com/ibotpeaches'>
96
- <img src='https://github.com/ibotpeaches.png' width='140px;'>
89
+ <td id='matthew-ellis'>
90
+ <a href='https://github.com/matthewellis'>
91
+ <img src='https://github.com/matthewellis.png' width='140px;'>
97
92
  </a>
98
- <h4 align='center'><a href='https://twitter.com/ibotpeaches'>Connor Tumbleson</a></h4>
93
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
94
+ </td>
95
+ <td id='daniel-jankowski'>
96
+ <a href='https://github.com/mollyIV'>
97
+ <img src='https://github.com/mollyIV.png' width='140px;'>
98
+ </a>
99
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
99
100
  </td>
100
101
  </tr>
101
102
  <tr>
102
- <td id='satoshi-namai'>
103
- <a href='https://github.com/ainame'>
104
- <img src='https://github.com/ainame.png' width='140px;'>
103
+ <td id='connor-tumbleson'>
104
+ <a href='https://github.com/ibotpeaches'>
105
+ <img src='https://github.com/ibotpeaches.png' width='140px;'>
105
106
  </a>
106
- <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
107
+ <h4 align='center'><a href='https://twitter.com/ibotpeaches'>Connor Tumbleson</a></h4>
107
108
  </td>
108
- <td id='maksym-grebenets'>
109
- <a href='https://github.com/mgrebenets'>
110
- <img src='https://github.com/mgrebenets.png' width='140px;'>
109
+ <td id='jan-piotrowski'>
110
+ <a href='https://github.com/janpio'>
111
+ <img src='https://github.com/janpio.png' width='140px;'>
111
112
  </a>
112
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
113
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
113
114
  </td>
114
- <td id='stefan-natchev'>
115
- <a href='https://github.com/snatchev'>
116
- <img src='https://github.com/snatchev.png' width='140px;'>
115
+ <td id='jorge-revuelta-h'>
116
+ <a href='https://github.com/minuscorp'>
117
+ <img src='https://github.com/minuscorp.png' width='140px;'>
117
118
  </a>
118
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
119
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
119
120
  </td>
120
121
  <td id='max-ott'>
121
122
  <a href='https://github.com/max-ott'>
@@ -123,25 +124,19 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
123
124
  </a>
124
125
  <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
125
126
  </td>
126
- <td id='iulian-onofrei'>
127
- <a href='https://github.com/revolter'>
128
- <img src='https://github.com/revolter.png' width='140px;'>
127
+ <td id='luka-mirosevic'>
128
+ <a href='https://github.com/lmirosevic'>
129
+ <img src='https://github.com/lmirosevic.png' width='140px;'>
129
130
  </a>
130
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
131
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
131
132
  </td>
132
133
  </tr>
133
134
  <tr>
134
- <td id='matthew-ellis'>
135
- <a href='https://github.com/matthewellis'>
136
- <img src='https://github.com/matthewellis.png' width='140px;'>
137
- </a>
138
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
139
- </td>
140
- <td id='manish-rathi'>
141
- <a href='https://github.com/crazymanish'>
142
- <img src='https://github.com/crazymanish.png' width='140px;'>
135
+ <td id='fumiya-nakamura'>
136
+ <a href='https://github.com/nafu'>
137
+ <img src='https://github.com/nafu.png' width='140px;'>
143
138
  </a>
144
- <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
139
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
145
140
  </td>
146
141
  <td id='danielle-tomlinson'>
147
142
  <a href='https://github.com/endocrimes'>
@@ -149,31 +144,43 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
149
144
  </a>
150
145
  <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
151
146
  </td>
152
- <td id='joshua-liebowitz'>
153
- <a href='https://github.com/taquitos'>
154
- <img src='https://github.com/taquitos.png' width='140px;'>
147
+ <td id='felix-krause'>
148
+ <a href='https://github.com/KrauseFx'>
149
+ <img src='https://github.com/KrauseFx.png' width='140px;'>
155
150
  </a>
156
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
151
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
157
152
  </td>
158
- <td id='jan-piotrowski'>
159
- <a href='https://github.com/janpio'>
160
- <img src='https://github.com/janpio.png' width='140px;'>
153
+ <td id='stefan-natchev'>
154
+ <a href='https://github.com/snatchev'>
155
+ <img src='https://github.com/snatchev.png' width='140px;'>
161
156
  </a>
162
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
157
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
158
+ </td>
159
+ <td id='aaron-brager'>
160
+ <a href='https://github.com/getaaron'>
161
+ <img src='https://github.com/getaaron.png' width='140px;'>
162
+ </a>
163
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
163
164
  </td>
164
165
  </tr>
165
166
  <tr>
166
- <td id='helmut-januschka'>
167
- <a href='https://github.com/hjanuschka'>
168
- <img src='https://github.com/hjanuschka.png' width='140px;'>
167
+ <td id='manu-wallner'>
168
+ <a href='https://github.com/milch'>
169
+ <img src='https://github.com/milch.png' width='140px;'>
169
170
  </a>
170
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
171
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
171
172
  </td>
172
- <td id='felix-krause'>
173
- <a href='https://github.com/KrauseFx'>
174
- <img src='https://github.com/KrauseFx.png' width='140px;'>
173
+ <td id='andrew-mcburney'>
174
+ <a href='https://github.com/armcburney'>
175
+ <img src='https://github.com/armcburney.png' width='140px;'>
175
176
  </a>
176
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
177
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
178
+ </td>
179
+ <td id='łukasz-grabowski'>
180
+ <a href='https://github.com/lucgrabowski'>
181
+ <img src='https://github.com/lucgrabowski.png' width='140px;'>
182
+ </a>
183
+ <h4 align='center'>Łukasz Grabowski</h4>
177
184
  </td>
178
185
  <td id='jimmy-dee'>
179
186
  <a href='https://github.com/jdee'>
@@ -181,32 +188,26 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
181
188
  </a>
182
189
  <h4 align='center'>Jimmy Dee</h4>
183
190
  </td>
184
- <td id='daniel-jankowski'>
185
- <a href='https://github.com/mollyIV'>
186
- <img src='https://github.com/mollyIV.png' width='140px;'>
187
- </a>
188
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
189
- </td>
190
- <td id='manu-wallner'>
191
- <a href='https://github.com/milch'>
192
- <img src='https://github.com/milch.png' width='140px;'>
191
+ <td id='helmut-januschka'>
192
+ <a href='https://github.com/hjanuschka'>
193
+ <img src='https://github.com/hjanuschka.png' width='140px;'>
193
194
  </a>
194
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
195
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
195
196
  </td>
196
197
  </tr>
197
198
  <tr>
198
- <td id='luka-mirosevic'>
199
- <a href='https://github.com/lmirosevic'>
200
- <img src='https://github.com/lmirosevic.png' width='140px;'>
201
- </a>
202
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
203
- </td>
204
199
  <td id='roger-oba'>
205
200
  <a href='https://github.com/rogerluan'>
206
201
  <img src='https://github.com/rogerluan.png' width='140px;'>
207
202
  </a>
208
203
  <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
209
204
  </td>
205
+ <td id='iulian-onofrei'>
206
+ <a href='https://github.com/revolter'>
207
+ <img src='https://github.com/revolter.png' width='140px;'>
208
+ </a>
209
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
210
+ </td>
210
211
  </table>
211
212
 
212
213
  Special thanks to all [contributors](https://github.com/fastlane/fastlane/graphs/contributors) for extending and improving _fastlane_.
@@ -2,6 +2,6 @@ module Deliver
2
2
  module Languages
3
3
  # 2020-08-24 - Available locales are not available as an endpoint in App Store Connect
4
4
  # Update with Spaceship::Tunes.client.available_languages.sort (as long as endpoint is available)
5
- ALL_LANGUAGES = %w[ar-SA ca cs da de-DE el en-AU en-CA en-GB en-US es-ES es-MX fi fr-CA fr-FR he hi hr hu id it ja ko ms nl-NL no pl pt-BR pt-PT ro ru sk sv th tr uk vi zh-Hans zh-Hant]
5
+ ALL_LANGUAGES = %w[ar-SA bn-BD ca cs da de-DE el en-AU en-CA en-GB en-US es-ES es-MX fi fr-CA fr-FR gu-IN he hi hr hu id it ja kn-IN ko ml-IN mr-IN ms nl-NL no or-IN pa-IN pl pt-BR pt-PT ro ru sk sl-SI sv ta-IN te-IN th tr uk ur-PK vi zh-Hans zh-Hant]
6
6
  end
7
7
  end
@@ -13,8 +13,10 @@ module Deliver
13
13
 
14
14
  attributes = {}
15
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
+ # nil leaves existing territory availability unchanged.
17
+ # [] intentionally removes the app from sale in all territories.
18
+ # Pass explicit territory IDs to make the app available only in those territories.
19
+ territory_ids = nil
18
20
 
19
21
  # As of 2020-09-14:
20
22
  # Official App Store Connect does not have an endpoint to get app prices for an app
@@ -9,8 +9,8 @@ module Fastlane
9
9
 
10
10
  class AppStoreConnectApiKeyAction < Action
11
11
  def self.run(options)
12
- key_id = options[:key_id]
13
- issuer_id = options[:issuer_id]
12
+ key_id = options[:key_id]&.strip
13
+ issuer_id = options[:issuer_id]&.strip
14
14
  key_content = options[:key_content]
15
15
  is_key_content_base64 = options[:is_key_content_base64]
16
16
  key_filepath = options[:key_filepath]
@@ -41,7 +41,7 @@ module Fastlane
41
41
  end
42
42
 
43
43
  def self.detect_appium(params)
44
- appium_path = params[:appium_path] || `which appium`.to_s.strip
44
+ appium_path = params[:appium_path] || Helper.which('appium').to_s
45
45
 
46
46
  if appium_path.empty?
47
47
  if File.exist?(APPIUM_PATH_HOMEBREW)
@@ -56,7 +56,7 @@ module Fastlane
56
56
  def self.run(params)
57
57
  unless Helper.test?
58
58
  UI.message("Install using `brew install appledoc`")
59
- UI.user_error!("appledoc not installed") if `which appledoc`.length == 0
59
+ UI.user_error!("appledoc not installed") unless Helper.which('appledoc')
60
60
  end
61
61
 
62
62
  params_hash = params.values
@@ -57,7 +57,7 @@ module Fastlane
57
57
  short_option: "-j",
58
58
  conflicting_options: [:json_key_data],
59
59
  optional: true, # optional until it is possible specify either json_key OR json_key_data are required
60
- description: "The path to a file containing service account JSON, used to authenticate with Google",
60
+ description: "The path to a Google credentials JSON file (Application Default, Workload Identity, or Service Account), used to authenticate with Google",
61
61
  code_gen_sensitive: true,
62
62
  default_value: CredentialsManager::AppfileConfig.try_fetch_value(:json_key_file),
63
63
  default_value_dynamic: true,
@@ -70,7 +70,7 @@ module Fastlane
70
70
  short_option: "-c",
71
71
  conflicting_options: [:json_key],
72
72
  optional: true,
73
- description: "The raw service account JSON data used to authenticate with Google",
73
+ description: "The raw content of a Google credentials JSON file (Application Default, Workload Identity, or Service Account) used to authenticate with Google",
74
74
  code_gen_sensitive: true,
75
75
  default_value: CredentialsManager::AppfileConfig.try_fetch_value(:json_key_data_raw),
76
76
  default_value_dynamic: true,
@@ -53,7 +53,7 @@ module Fastlane
53
53
 
54
54
  def self.run(params)
55
55
  unless Helper.test?
56
- UI.user_error!("gcovr not installed") if `which gcovr`.length == 0
56
+ UI.user_error!("gcovr not installed") unless Helper.which('gcovr')
57
57
  end
58
58
 
59
59
  # The args we will build with
@@ -29,6 +29,11 @@ module Fastlane
29
29
  .split("\n")
30
30
  .last
31
31
  .strip
32
+
33
+ if current_version =~ /\$\(([\w\-]+)\)/ || current_version =~ /\$\{([\w\-]+)\}/
34
+ UI.verbose("agvtool returned $(MARKETING_VERSION), resolving it...")
35
+ current_version = GetVersionNumberAction.run(xcodeproj: params[:xcodeproj])
36
+ end
32
37
  rescue
33
38
  current_version = ''
34
39
  end
@@ -5,7 +5,7 @@ module Fastlane
5
5
  class InstallOnDeviceAction < Action
6
6
  def self.run(params)
7
7
  unless Helper.test?
8
- UI.user_error!("ios-deploy not installed, see https://github.com/ios-control/ios-deploy for instructions") if `which ios-deploy`.length == 0
8
+ UI.user_error!("ios-deploy not installed, see https://github.com/ios-control/ios-deploy for instructions") unless Helper.which('ios-deploy')
9
9
  end
10
10
  taxi_cmd = [
11
11
  "ios-deploy",
@@ -7,7 +7,7 @@ module Fastlane
7
7
 
8
8
  def self.run(options)
9
9
  unless Helper.test?
10
- UI.user_error!("lcov not installed, please install using `brew install lcov`") if `which lcov`.length == 0
10
+ UI.user_error!("lcov not installed, please install using `brew install lcov`") unless Helper.which('lcov')
11
11
  end
12
12
  gen_cov(options)
13
13
  end
@@ -8,7 +8,7 @@ module Fastlane
8
8
  # rubocop:disable Metrics/PerceivedComplexity
9
9
  def self.run(params)
10
10
  oclint_path = params[:oclint_path]
11
- if `which #{oclint_path}`.to_s.empty? && !Helper.test?
11
+ unless Helper.which(oclint_path) || Helper.test?
12
12
  UI.user_error!("You have to install oclint or provide path to oclint binary. Fore more details: ") + "http://docs.oclint.org/en/stable/intro/installation.html".yellow
13
13
  end
14
14
 
@@ -40,7 +40,7 @@ module Fastlane
40
40
  end
41
41
 
42
42
  def self.verify_sonar_scanner_binary
43
- UI.user_error!("You have to install sonar-scanner using `brew install sonar-scanner`") unless `which sonar-scanner`.to_s.length > 0
43
+ UI.user_error!("You have to install sonar-scanner using `brew install sonar-scanner`") unless Helper.which('sonar-scanner')
44
44
  end
45
45
 
46
46
  #####################################################
@@ -2,7 +2,7 @@ module Fastlane
2
2
  module Actions
3
3
  class SourcedocsAction < Action
4
4
  def self.run(params)
5
- UI.user_error!("You have to install sourcedocs using `brew install sourcedocs`") if `which sourcedocs`.to_s.length == 0 && !Helper.test?
5
+ UI.user_error!("You have to install sourcedocs using `brew install sourcedocs`") unless Helper.which('sourcedocs') || Helper.test?
6
6
 
7
7
  command = "sourcedocs generate"
8
8
  command << " --all-modules" if params[:all_modules]
@@ -2,7 +2,7 @@ module Fastlane
2
2
  module Actions
3
3
  class SwiftlintAction < Action
4
4
  def self.run(params)
5
- if `which swiftlint`.to_s.length == 0 && params[:executable].nil? && !Helper.test?
5
+ unless Helper.which('swiftlint') || params[:executable] || Helper.test?
6
6
  UI.user_error!("You have to install swiftlint using `brew install swiftlint` or specify the executable path with the `:executable` option.")
7
7
  end
8
8
 
@@ -21,7 +21,7 @@ module Fastlane
21
21
  end
22
22
 
23
23
  def self.description
24
- "Validate that the Google Play Store `json_key` works"
24
+ "Validate Google credentials JSON for the Google Play Store"
25
25
  end
26
26
 
27
27
  def self.authors
@@ -29,7 +29,7 @@ module Fastlane
29
29
  end
30
30
 
31
31
  def self.details
32
- "Use this action to test and validate your private key json key file used to connect and authenticate with the Google Play API"
32
+ "Use this action to test and validate your Google credentials JSON file (of type authorized_user, external_account, service_account) used to connect and authenticate with the Google Play API"
33
33
  end
34
34
 
35
35
  def self.example_code
@@ -47,7 +47,7 @@ module Fastlane
47
47
  short_option: "-j",
48
48
  conflicting_options: [:json_key_data],
49
49
  optional: true,
50
- description: "The path to a file containing service account JSON, used to authenticate with Google",
50
+ description: "The path to a Google credentials JSON file (Application Default, Workload Identity, or Service Account), used to authenticate with Google",
51
51
  code_gen_sensitive: true,
52
52
  default_value: CredentialsManager::AppfileConfig.try_fetch_value(:json_key_file),
53
53
  default_value_dynamic: true,
@@ -60,7 +60,7 @@ module Fastlane
60
60
  short_option: "-c",
61
61
  conflicting_options: [:json_key],
62
62
  optional: true,
63
- description: "The raw service account JSON data used to authenticate with Google",
63
+ description: "The raw content of a Google credentials JSON file (Application Default, Workload Identity, or Service Account), used to authenticate with Google",
64
64
  code_gen_sensitive: true,
65
65
  default_value: CredentialsManager::AppfileConfig.try_fetch_value(:json_key_data_raw),
66
66
  default_value_dynamic: true,
@@ -74,7 +74,7 @@ module Fastlane
74
74
 
75
75
  def self.run(params)
76
76
  unless Helper.test?
77
- UI.user_error!("xcodebuild not installed") if `which xcodebuild`.length == 0
77
+ UI.user_error!("xcodebuild not installed") unless Helper.which('xcodebuild')
78
78
  end
79
79
 
80
80
  # The args we will build with
@@ -4,7 +4,7 @@ module Fastlane
4
4
  def self.run(params)
5
5
  UI.important("Have you seen the new 'scan' tool to run tests? https://docs.fastlane.tools/actions/scan/")
6
6
  unless Helper.test?
7
- UI.user_error!("xctool not installed, please install using `brew install xctool`") if `which xctool`.length == 0
7
+ UI.user_error!("xctool not installed, please install using `brew install xctool`") unless Helper.which('xctool')
8
8
  end
9
9
 
10
10
  params = [] if params.kind_of?(FastlaneCore::Configuration)
@@ -2,7 +2,7 @@ module Fastlane
2
2
  module Helper
3
3
  class XcodebuildFormatterHelper
4
4
  def self.xcbeautify_installed?
5
- return `which xcbeautify`.include?("xcbeautify")
5
+ return !!FastlaneCore::Helper.which('xcbeautify')
6
6
  end
7
7
  end
8
8
  end
@@ -12,7 +12,7 @@ module Fastlane
12
12
  end
13
13
 
14
14
  def self.find_xcodes_binary_path
15
- `which xcodes`.strip
15
+ FastlaneCore::Helper.which('xcodes').to_s
16
16
  end
17
17
 
18
18
  module Verify
@@ -4,6 +4,7 @@ require:
4
4
  - rubocop-performance
5
5
  AllCops:
6
6
  TargetRubyVersion: 2.7
7
+ SuggestExtensions: false
7
8
  NewCops: enable
8
9
  Include:
9
10
  - "**/*.rb"
@@ -224,7 +224,7 @@ module Fastlane
224
224
  # Proceed to upgrade
225
225
  self.fastlane_runner_target.build_configurations.each { |config|
226
226
  config.build_settings["CODE_SIGN_IDENTITY"] = "-"
227
- config.build_settings["MACOSX_DEPLOYMENT_TARGET"] = "10.12"
227
+ config.build_settings["MACOSX_DEPLOYMENT_TARGET"] = "14.6"
228
228
  }
229
229
  target_project.save
230
230
  end
@@ -1,8 +1,8 @@
1
1
  module Fastlane
2
- VERSION = '2.233.1'.freeze
2
+ VERSION = '2.234.0'.freeze
3
3
  SUMMARY = "The easiest way to build and release mobile apps.".freeze
4
4
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
5
5
  MINIMUM_XCODE_RELEASE = "7.0".freeze
6
6
  RUBOCOP_REQUIREMENT = '1.50.2'.freeze
7
- SUGGESTED_MINIMUM_RUBY = '3.2.0'.freeze
7
+ SUGGESTED_MINIMUM_RUBY = '3.3.0'.freeze
8
8
  end
@@ -17,4 +17,4 @@ public class Deliverfile: DeliverfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.233.1
20
+ // Generated with fastlane 2.234.0
@@ -497,4 +497,4 @@ public extension DeliverfileProtocol {
497
497
 
498
498
  // Please don't remove the lines below
499
499
  // They are used to detect outdated files
500
- // FastlaneRunnerAPIVersion [0.9.146]
500
+ // FastlaneRunnerAPIVersion [0.9.147]