fastlane 2.233.0 → 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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +99 -98
  3. data/deliver/lib/deliver/detect_values.rb +0 -2
  4. data/deliver/lib/deliver/languages.rb +1 -1
  5. data/deliver/lib/deliver/upload_price_tier.rb +4 -2
  6. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +2 -2
  7. data/fastlane/lib/fastlane/actions/appium.rb +1 -1
  8. data/fastlane/lib/fastlane/actions/appledoc.rb +1 -1
  9. data/fastlane/lib/fastlane/actions/create_app_on_managed_play_store.rb +2 -2
  10. data/fastlane/lib/fastlane/actions/gcovr.rb +1 -1
  11. data/fastlane/lib/fastlane/actions/increment_version_number.rb +5 -0
  12. data/fastlane/lib/fastlane/actions/install_on_device.rb +1 -1
  13. data/fastlane/lib/fastlane/actions/lcov.rb +1 -1
  14. data/fastlane/lib/fastlane/actions/oclint.rb +1 -1
  15. data/fastlane/lib/fastlane/actions/sonar.rb +1 -1
  16. data/fastlane/lib/fastlane/actions/sourcedocs.rb +1 -1
  17. data/fastlane/lib/fastlane/actions/swiftlint.rb +1 -1
  18. data/fastlane/lib/fastlane/actions/validate_play_store_json_key.rb +4 -4
  19. data/fastlane/lib/fastlane/actions/xcodebuild.rb +1 -1
  20. data/fastlane/lib/fastlane/actions/xctool.rb +1 -1
  21. data/fastlane/lib/fastlane/helper/xcodebuild_formatter_helper.rb +1 -1
  22. data/fastlane/lib/fastlane/helper/xcodes_helper.rb +1 -1
  23. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +1 -0
  24. data/fastlane/lib/fastlane/swift_runner_upgrader.rb +1 -1
  25. data/fastlane/lib/fastlane/version.rb +2 -2
  26. data/fastlane/swift/Deliverfile.swift +1 -1
  27. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  28. data/fastlane/swift/Fastlane.swift +21 -21
  29. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +4 -4
  30. data/fastlane/swift/Gymfile.swift +1 -1
  31. data/fastlane/swift/GymfileProtocol.swift +1 -1
  32. data/fastlane/swift/Matchfile.swift +1 -1
  33. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  34. data/fastlane/swift/Precheckfile.swift +1 -1
  35. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  36. data/fastlane/swift/Scanfile.swift +1 -1
  37. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  38. data/fastlane/swift/Screengrabfile.swift +1 -1
  39. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  40. data/fastlane/swift/Snapshotfile.swift +1 -1
  41. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  42. data/fastlane_core/lib/fastlane_core/clipboard.rb +1 -1
  43. data/fastlane_core/lib/fastlane_core/helper.rb +14 -1
  44. data/fastlane_core/lib/fastlane_core/languages.rb +1 -1
  45. data/frameit/lib/frameit/dependency_checker.rb +1 -1
  46. data/frameit/lib/frameit/device_types.rb +18 -0
  47. data/frameit/lib/frameit/editor.rb +2 -2
  48. data/match/lib/match/nuke.rb +58 -38
  49. data/match/lib/match/storage/git_storage.rb +1 -1
  50. data/produce/lib/produce/available_default_languages.rb +12 -1
  51. data/scan/lib/scan/detect_values.rb +5 -0
  52. data/sigh/lib/assets/resign.sh +6 -10
  53. data/snapshot/lib/snapshot/reports_generator.rb +7 -0
  54. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +1 -1
  55. data/spaceship/lib/assets/languageMapping.json +66 -0
  56. data/spaceship/lib/spaceship/portal/provisioning_profile.rb +63 -25
  57. data/supply/lib/supply/client.rb +61 -43
  58. data/supply/lib/supply/options.rb +2 -2
  59. metadata +31 -31
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a1e9ccdeab76489550801ba5eca3943ce3fb8b0f6a54e68281f39879469b5476
4
- data.tar.gz: abd22788dfc2496906517916afbc50d18ae7789e5ba8430ccfdef5b979573f2b
3
+ metadata.gz: 525a3a4fbaab6476e3908604bbe7961491cb337a2a389a4ddd5d42248b9ff05c
4
+ data.tar.gz: 1fc064f5f314cebf73705bc011a6074e458b87ba5b2b0d34296f57b6d14a83c7
5
5
  SHA512:
6
- metadata.gz: a801932f673957a2ce012624ad221efd34d7d0d04deca0f7df0f6dbc7eb976bb5ad1eaf6e0d005e1e60c7e01219665afa0b514e695dc063cf75e2834e79f0aaf
7
- data.tar.gz: 81ff84ead2d0339f588af6fae06452092a97dac684513c5f5b02af084084bd727a6b140d17d01f3d85ed1f6d374f7063828dc6a86aa5ba139d0acbdd36ccb799
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,55 +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='manu-wallner'>
39
- <a href='https://github.com/milch'>
40
- <img src='https://github.com/milch.png' width='140px;'>
41
- </a>
42
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
43
- </td>
44
- <td id='danielle-tomlinson'>
45
- <a href='https://github.com/endocrimes'>
46
- <img src='https://github.com/endocrimes.png' width='140px;'>
47
- </a>
48
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
49
- </td>
50
- <td id='aaron-brager'>
51
- <a href='https://github.com/getaaron'>
52
- <img src='https://github.com/getaaron.png' width='140px;'>
53
- </a>
54
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
55
- </td>
56
- <td id='jimmy-dee'>
57
- <a href='https://github.com/jdee'>
58
- <img src='https://github.com/jdee.png' width='140px;'>
59
- </a>
60
- <h4 align='center'>Jimmy Dee</h4>
61
- </td>
62
- <td id='kohki-miki'>
63
- <a href='https://github.com/giginet'>
64
- <img src='https://github.com/giginet.png' width='140px;'>
65
- </a>
66
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
67
- </td>
68
- </tr>
69
- <tr>
70
- <td id='matthew-ellis'>
71
- <a href='https://github.com/matthewellis'>
72
- <img src='https://github.com/matthewellis.png' width='140px;'>
73
- </a>
74
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
75
- </td>
76
- <td id='fumiya-nakamura'>
77
- <a href='https://github.com/nafu'>
78
- <img src='https://github.com/nafu.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;'>
79
42
  </a>
80
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
43
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
81
44
  </td>
82
- <td id='luka-mirosevic'>
83
- <a href='https://github.com/lmirosevic'>
84
- <img src='https://github.com/lmirosevic.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;'>
85
48
  </a>
86
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
49
+ <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
87
50
  </td>
88
51
  <td id='josh-holtz'>
89
52
  <a href='https://github.com/joshdholtz'>
@@ -91,6 +54,12 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
91
54
  </a>
92
55
  <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
93
56
  </td>
57
+ <td id='satoshi-namai'>
58
+ <a href='https://github.com/ainame'>
59
+ <img src='https://github.com/ainame.png' width='140px;'>
60
+ </a>
61
+ <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
62
+ </td>
94
63
  <td id='jérôme-lacoste'>
95
64
  <a href='https://github.com/lacostej'>
96
65
  <img src='https://github.com/lacostej.png' width='140px;'>
@@ -99,35 +68,35 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
99
68
  </td>
100
69
  </tr>
101
70
  <tr>
102
- <td id='daniel-jankowski'>
103
- <a href='https://github.com/mollyIV'>
104
- <img src='https://github.com/mollyIV.png' width='140px;'>
71
+ <td id='kohki-miki'>
72
+ <a href='https://github.com/giginet'>
73
+ <img src='https://github.com/giginet.png' width='140px;'>
105
74
  </a>
106
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
75
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
107
76
  </td>
108
- <td id='helmut-januschka'>
109
- <a href='https://github.com/hjanuschka'>
110
- <img src='https://github.com/hjanuschka.png' width='140px;'>
77
+ <td id='maksym-grebenets'>
78
+ <a href='https://github.com/mgrebenets'>
79
+ <img src='https://github.com/mgrebenets.png' width='140px;'>
111
80
  </a>
112
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
81
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
113
82
  </td>
114
- <td id='andrew-mcburney'>
115
- <a href='https://github.com/armcburney'>
116
- <img src='https://github.com/armcburney.png' width='140px;'>
83
+ <td id='olivier-halligon'>
84
+ <a href='https://github.com/AliSoftware'>
85
+ <img src='https://github.com/AliSoftware.png' width='140px;'>
117
86
  </a>
118
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
87
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
119
88
  </td>
120
- <td id='iulian-onofrei'>
121
- <a href='https://github.com/revolter'>
122
- <img src='https://github.com/revolter.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;'>
123
92
  </a>
124
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
93
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
125
94
  </td>
126
- <td id='jorge-revuelta-h'>
127
- <a href='https://github.com/minuscorp'>
128
- <img src='https://github.com/minuscorp.png' width='140px;'>
95
+ <td id='daniel-jankowski'>
96
+ <a href='https://github.com/mollyIV'>
97
+ <img src='https://github.com/mollyIV.png' width='140px;'>
129
98
  </a>
130
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
99
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
131
100
  </td>
132
101
  </tr>
133
102
  <tr>
@@ -143,37 +112,37 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
143
112
  </a>
144
113
  <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
145
114
  </td>
146
- <td id='stefan-natchev'>
147
- <a href='https://github.com/snatchev'>
148
- <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;'>
149
118
  </a>
150
- <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>
151
120
  </td>
152
- <td id='manish-rathi'>
153
- <a href='https://github.com/crazymanish'>
154
- <img src='https://github.com/crazymanish.png' width='140px;'>
121
+ <td id='max-ott'>
122
+ <a href='https://github.com/max-ott'>
123
+ <img src='https://github.com/max-ott.png' width='140px;'>
155
124
  </a>
156
- <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
125
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
157
126
  </td>
158
- <td id='olivier-halligon'>
159
- <a href='https://github.com/AliSoftware'>
160
- <img src='https://github.com/AliSoftware.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;'>
161
130
  </a>
162
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
131
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
163
132
  </td>
164
133
  </tr>
165
134
  <tr>
166
- <td id='roger-oba'>
167
- <a href='https://github.com/rogerluan'>
168
- <img src='https://github.com/rogerluan.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;'>
169
138
  </a>
170
- <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
139
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
171
140
  </td>
172
- <td id='maksym-grebenets'>
173
- <a href='https://github.com/mgrebenets'>
174
- <img src='https://github.com/mgrebenets.png' width='140px;'>
141
+ <td id='danielle-tomlinson'>
142
+ <a href='https://github.com/endocrimes'>
143
+ <img src='https://github.com/endocrimes.png' width='140px;'>
175
144
  </a>
176
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
145
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
177
146
  </td>
178
147
  <td id='felix-krause'>
179
148
  <a href='https://github.com/KrauseFx'>
@@ -181,31 +150,63 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
181
150
  </a>
182
151
  <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
183
152
  </td>
153
+ <td id='stefan-natchev'>
154
+ <a href='https://github.com/snatchev'>
155
+ <img src='https://github.com/snatchev.png' width='140px;'>
156
+ </a>
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>
164
+ </td>
165
+ </tr>
166
+ <tr>
167
+ <td id='manu-wallner'>
168
+ <a href='https://github.com/milch'>
169
+ <img src='https://github.com/milch.png' width='140px;'>
170
+ </a>
171
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
172
+ </td>
173
+ <td id='andrew-mcburney'>
174
+ <a href='https://github.com/armcburney'>
175
+ <img src='https://github.com/armcburney.png' width='140px;'>
176
+ </a>
177
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
178
+ </td>
184
179
  <td id='łukasz-grabowski'>
185
180
  <a href='https://github.com/lucgrabowski'>
186
181
  <img src='https://github.com/lucgrabowski.png' width='140px;'>
187
182
  </a>
188
183
  <h4 align='center'>Łukasz Grabowski</h4>
189
184
  </td>
190
- <td id='joshua-liebowitz'>
191
- <a href='https://github.com/taquitos'>
192
- <img src='https://github.com/taquitos.png' width='140px;'>
185
+ <td id='jimmy-dee'>
186
+ <a href='https://github.com/jdee'>
187
+ <img src='https://github.com/jdee.png' width='140px;'>
193
188
  </a>
194
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
189
+ <h4 align='center'>Jimmy Dee</h4>
190
+ </td>
191
+ <td id='helmut-januschka'>
192
+ <a href='https://github.com/hjanuschka'>
193
+ <img src='https://github.com/hjanuschka.png' width='140px;'>
194
+ </a>
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='satoshi-namai'>
199
- <a href='https://github.com/ainame'>
200
- <img src='https://github.com/ainame.png' width='140px;'>
199
+ <td id='roger-oba'>
200
+ <a href='https://github.com/rogerluan'>
201
+ <img src='https://github.com/rogerluan.png' width='140px;'>
201
202
  </a>
202
- <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
203
+ <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
203
204
  </td>
204
- <td id='max-ott'>
205
- <a href='https://github.com/max-ott'>
206
- <img src='https://github.com/max-ott.png' width='140px;'>
205
+ <td id='iulian-onofrei'>
206
+ <a href='https://github.com/revolter'>
207
+ <img src='https://github.com/revolter.png' width='140px;'>
207
208
  </a>
208
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
209
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
209
210
  </td>
210
211
  </table>
211
212
 
@@ -58,13 +58,11 @@ module Deliver
58
58
  def find_folders(options)
59
59
  containing = Helper.fastlane_enabled? ? FastlaneCore::FastlaneFolder.path : '.'
60
60
  options[:screenshots_path] ||= File.join(containing, 'screenshots')
61
- options[:app_previews_path] ||= File.join(containing, 'app-previews')
62
61
  options[:metadata_path] ||= File.join(containing, 'metadata')
63
62
  end
64
63
 
65
64
  def ensure_folders_created(options)
66
65
  FileUtils.mkdir_p(options[:screenshots_path])
67
- FileUtils.mkdir_p(options[:app_previews_path])
68
66
  FileUtils.mkdir_p(options[:metadata_path])
69
67
  end
70
68
 
@@ -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.0'.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.0
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.145]
500
+ // FastlaneRunnerAPIVersion [0.9.147]