fastlane 2.177.0 → 2.178.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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +80 -80
  3. data/cert/lib/cert/runner.rb +1 -1
  4. data/deliver/lib/deliver/runner.rb +6 -2
  5. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +1 -1
  6. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +4 -1
  7. data/fastlane/lib/fastlane/actions/backup_file.rb +1 -1
  8. data/fastlane/lib/fastlane/actions/commit_github_file.rb +11 -1
  9. data/fastlane/lib/fastlane/actions/create_xcframework.rb +5 -0
  10. data/fastlane/lib/fastlane/actions/get_github_release.rb +11 -1
  11. data/fastlane/lib/fastlane/actions/github_api.rb +2 -1
  12. data/fastlane/lib/fastlane/actions/increment_build_number.rb +8 -1
  13. data/fastlane/lib/fastlane/actions/register_device.rb +1 -1
  14. data/fastlane/lib/fastlane/actions/register_devices.rb +1 -1
  15. data/fastlane/lib/fastlane/actions/restore_file.rb +1 -1
  16. data/fastlane/lib/fastlane/actions/set_changelog.rb +1 -1
  17. data/fastlane/lib/fastlane/erb_template_helper.rb +7 -1
  18. data/fastlane/lib/fastlane/fast_file.rb +9 -5
  19. data/fastlane/lib/fastlane/version.rb +1 -1
  20. data/fastlane/swift/Deliverfile.swift +1 -1
  21. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  22. data/fastlane/swift/Fastlane.swift +20 -11
  23. data/fastlane/swift/Gymfile.swift +1 -1
  24. data/fastlane/swift/GymfileProtocol.swift +1 -1
  25. data/fastlane/swift/Matchfile.swift +1 -1
  26. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  27. data/fastlane/swift/Precheckfile.swift +1 -1
  28. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  29. data/fastlane/swift/Scanfile.swift +1 -1
  30. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  31. data/fastlane/swift/Screengrabfile.swift +1 -1
  32. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  33. data/fastlane/swift/Snapshotfile.swift +1 -1
  34. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  35. data/fastlane/swift/formatting/Brewfile.lock.json +3 -3
  36. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +10 -6
  37. data/fastlane_core/lib/fastlane_core/project.rb +3 -14
  38. data/fastlane_core/lib/fastlane_core/ui/interface.rb +1 -1
  39. data/match/lib/match/importer.rb +1 -1
  40. data/match/lib/match/migrate.rb +1 -1
  41. data/match/lib/match/nuke.rb +1 -1
  42. data/match/lib/match/runner.rb +1 -1
  43. data/match/lib/match/storage/google_cloud_storage.rb +1 -1
  44. data/match/lib/match/storage/s3_storage.rb +1 -1
  45. data/pilot/lib/pilot/build_manager.rb +9 -4
  46. data/pilot/lib/pilot/manager.rb +1 -1
  47. data/pilot/lib/pilot/options.rb +2 -2
  48. data/precheck/lib/precheck/runner.rb +1 -1
  49. data/sigh/lib/sigh/download_all.rb +1 -1
  50. data/sigh/lib/sigh/runner.rb +1 -1
  51. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +5 -0
  52. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +13 -0
  53. data/spaceship/lib/spaceship/connect_api/token.rb +1 -1
  54. metadata +21 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4b4ca8dee8c02f29be511a41ef49cda72c46ceef4f83304bc20a85f030ee7417
4
- data.tar.gz: ee60bf365f058e14edce21e29f709bb9a653dad0e704bc26eecc701587b6cf57
3
+ metadata.gz: 6d8f29ce571c194cdd4205a68d2c3499decca2d3d2fd397105e24e327f1b401a
4
+ data.tar.gz: 225123cb025970e86271c379fed40d6af294adbd5f50ae6047c96311682116e9
5
5
  SHA512:
6
- metadata.gz: 96978521357cda5bd03e0a7138eae6dec3faa42e0fbb26ec2f3ef28f7ff9bedbdc811e2e1e8a123f7354a97b417ee33d1754a7164811a331ef32851eed957311
7
- data.tar.gz: dbe71ffd1304b023ce991aa3ff47d5f9a39b63a24f0ec7fbb7dd2614dae8b4760b77e9352a2ec9e45a830e64bdb7f36440c3fb5297470120383ec86f5a2fa040
6
+ metadata.gz: 2cf3f576b4433b77b6a86edc9cf92fb615e38e2aaaf0090e247f4df3bcdd9233f177cc2ecc26bffa564cf970812a14e14c3e2376f03b41986237708b74c72a21
7
+ data.tar.gz: efe5b450ad7177392e05457915f54a54fc5afcd9c500c87c4a8f9bcaeaa1fbbb7f3fbf7ed2024dfec508afe3b25c272f5280fe6619bec205fbbd821bec24fa0e
data/README.md CHANGED
@@ -34,11 +34,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
34
34
  <!-- This table is regenerated and resorted on each release -->
35
35
  <table id='team'>
36
36
  <tr>
37
- <td id='andrew-mcburney'>
38
- <a href='https://github.com/armcburney'>
39
- <img src='https://github.com/armcburney.png?size=140'>
37
+ <td id='kohki-miki'>
38
+ <a href='https://github.com/giginet'>
39
+ <img src='https://github.com/giginet.png?size=140'>
40
40
  </a>
41
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
41
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
42
42
  </td>
43
43
  <td id='joshua-liebowitz'>
44
44
  <a href='https://github.com/taquitos'>
@@ -46,133 +46,133 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
46
46
  </a>
47
47
  <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
48
48
  </td>
49
- <td id='jérôme-lacoste'>
50
- <a href='https://github.com/lacostej'>
51
- <img src='https://github.com/lacostej.png?size=140'>
49
+ <td id='jimmy-dee'>
50
+ <a href='https://github.com/jdee'>
51
+ <img src='https://github.com/jdee.png?size=140'>
52
52
  </a>
53
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
53
+ <h4 align='center'>Jimmy Dee</h4>
54
54
  </td>
55
- <td id='max-ott'>
56
- <a href='https://github.com/max-ott'>
57
- <img src='https://github.com/max-ott.png?size=140'>
55
+ <td id='jan-piotrowski'>
56
+ <a href='https://github.com/janpio'>
57
+ <img src='https://github.com/janpio.png?size=140'>
58
58
  </a>
59
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
59
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
60
60
  </td>
61
- <td id='jorge-revuelta-h'>
62
- <a href='https://github.com/minuscorp'>
63
- <img src='https://github.com/minuscorp.png?size=140'>
61
+ <td id='jérôme-lacoste'>
62
+ <a href='https://github.com/lacostej'>
63
+ <img src='https://github.com/lacostej.png?size=140'>
64
64
  </a>
65
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
65
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
66
66
  </td>
67
67
  </tr>
68
68
  <tr>
69
+ <td id='josh-holtz'>
70
+ <a href='https://github.com/joshdholtz'>
71
+ <img src='https://github.com/joshdholtz.png?size=140'>
72
+ </a>
73
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
74
+ </td>
69
75
  <td id='danielle-tomlinson'>
70
76
  <a href='https://github.com/endocrimes'>
71
77
  <img src='https://github.com/endocrimes.png?size=140'>
72
78
  </a>
73
79
  <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
74
80
  </td>
75
- <td id='felix-krause'>
76
- <a href='https://github.com/KrauseFx'>
77
- <img src='https://github.com/KrauseFx.png?size=140'>
78
- </a>
79
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
80
- </td>
81
- <td id='iulian-onofrei'>
82
- <a href='https://github.com/revolter'>
83
- <img src='https://github.com/revolter.png?size=140'>
84
- </a>
85
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
86
- </td>
87
- <td id='jan-piotrowski'>
88
- <a href='https://github.com/janpio'>
89
- <img src='https://github.com/janpio.png?size=140'>
90
- </a>
91
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
92
- </td>
93
81
  <td id='matthew-ellis'>
94
82
  <a href='https://github.com/matthewellis'>
95
83
  <img src='https://github.com/matthewellis.png?size=140'>
96
84
  </a>
97
85
  <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
98
86
  </td>
99
- </tr>
100
- <tr>
101
- <td id='fumiya-nakamura'>
102
- <a href='https://github.com/nafu'>
103
- <img src='https://github.com/nafu.png?size=140'>
87
+ <td id='max-ott'>
88
+ <a href='https://github.com/max-ott'>
89
+ <img src='https://github.com/max-ott.png?size=140'>
104
90
  </a>
105
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
91
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
92
+ </td>
93
+ <td id='manu-wallner'>
94
+ <a href='https://github.com/milch'>
95
+ <img src='https://github.com/milch.png?size=140'>
96
+ </a>
97
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
106
98
  </td>
99
+ </tr>
100
+ <tr>
107
101
  <td id='luka-mirosevic'>
108
102
  <a href='https://github.com/lmirosevic'>
109
103
  <img src='https://github.com/lmirosevic.png?size=140'>
110
104
  </a>
111
105
  <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
112
106
  </td>
113
- <td id='manu-wallner'>
114
- <a href='https://github.com/milch'>
115
- <img src='https://github.com/milch.png?size=140'>
107
+ <td id='stefan-natchev'>
108
+ <a href='https://github.com/snatchev'>
109
+ <img src='https://github.com/snatchev.png?size=140'>
116
110
  </a>
117
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
111
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
118
112
  </td>
119
- <td id='olivier-halligon'>
120
- <a href='https://github.com/AliSoftware'>
121
- <img src='https://github.com/AliSoftware.png?size=140'>
113
+ <td id='maksym-grebenets'>
114
+ <a href='https://github.com/mgrebenets'>
115
+ <img src='https://github.com/mgrebenets.png?size=140'>
122
116
  </a>
123
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
117
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
124
118
  </td>
125
- <td id='jimmy-dee'>
126
- <a href='https://github.com/jdee'>
127
- <img src='https://github.com/jdee.png?size=140'>
119
+ <td id='felix-krause'>
120
+ <a href='https://github.com/KrauseFx'>
121
+ <img src='https://github.com/KrauseFx.png?size=140'>
128
122
  </a>
129
- <h4 align='center'>Jimmy Dee</h4>
123
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
124
+ </td>
125
+ <td id='helmut-januschka'>
126
+ <a href='https://github.com/hjanuschka'>
127
+ <img src='https://github.com/hjanuschka.png?size=140'>
128
+ </a>
129
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
130
130
  </td>
131
131
  </tr>
132
132
  <tr>
133
- <td id='kohki-miki'>
134
- <a href='https://github.com/giginet'>
135
- <img src='https://github.com/giginet.png?size=140'>
133
+ <td id='aaron-brager'>
134
+ <a href='https://github.com/getaaron'>
135
+ <img src='https://github.com/getaaron.png?size=140'>
136
136
  </a>
137
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
137
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
138
138
  </td>
139
- <td id='daniel-jankowski'>
140
- <a href='https://github.com/mollyIV'>
141
- <img src='https://github.com/mollyIV.png?size=140'>
139
+ <td id='andrew-mcburney'>
140
+ <a href='https://github.com/armcburney'>
141
+ <img src='https://github.com/armcburney.png?size=140'>
142
142
  </a>
143
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
143
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
144
144
  </td>
145
- <td id='josh-holtz'>
146
- <a href='https://github.com/joshdholtz'>
147
- <img src='https://github.com/joshdholtz.png?size=140'>
145
+ <td id='iulian-onofrei'>
146
+ <a href='https://github.com/revolter'>
147
+ <img src='https://github.com/revolter.png?size=140'>
148
148
  </a>
149
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
149
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
150
150
  </td>
151
- <td id='stefan-natchev'>
152
- <a href='https://github.com/snatchev'>
153
- <img src='https://github.com/snatchev.png?size=140'>
151
+ <td id='jorge-revuelta-h'>
152
+ <a href='https://github.com/minuscorp'>
153
+ <img src='https://github.com/minuscorp.png?size=140'>
154
154
  </a>
155
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
155
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
156
156
  </td>
157
- <td id='aaron-brager'>
158
- <a href='https://github.com/getaaron'>
159
- <img src='https://github.com/getaaron.png?size=140'>
157
+ <td id='olivier-halligon'>
158
+ <a href='https://github.com/AliSoftware'>
159
+ <img src='https://github.com/AliSoftware.png?size=140'>
160
160
  </a>
161
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
161
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
162
162
  </td>
163
163
  </tr>
164
164
  <tr>
165
- <td id='maksym-grebenets'>
166
- <a href='https://github.com/mgrebenets'>
167
- <img src='https://github.com/mgrebenets.png?size=140'>
165
+ <td id='daniel-jankowski'>
166
+ <a href='https://github.com/mollyIV'>
167
+ <img src='https://github.com/mollyIV.png?size=140'>
168
168
  </a>
169
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
169
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
170
170
  </td>
171
- <td id='helmut-januschka'>
172
- <a href='https://github.com/hjanuschka'>
173
- <img src='https://github.com/hjanuschka.png?size=140'>
171
+ <td id='fumiya-nakamura'>
172
+ <a href='https://github.com/nafu'>
173
+ <img src='https://github.com/nafu.png?size=140'>
174
174
  </a>
175
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
175
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
176
176
  </td>
177
177
  </table>
178
178
 
@@ -31,7 +31,7 @@ module Cert
31
31
  end
32
32
 
33
33
  def api_token
34
- @api_token ||= Spaceship::ConnectAPI::Token.create(Cert.config[:api_key]) if Cert.config[:api_key]
34
+ @api_token ||= Spaceship::ConnectAPI::Token.create(**Cert.config[:api_key]) if Cert.config[:api_key]
35
35
  @api_token ||= Spaceship::ConnectAPI::Token.from_json_file(Cert.config[:api_key_path]) if Cert.config[:api_key_path]
36
36
  return @api_token
37
37
  end
@@ -39,7 +39,7 @@ module Deliver
39
39
  end
40
40
 
41
41
  def api_token
42
- @api_token ||= Spaceship::ConnectAPI::Token.create(options[:api_key]) if options[:api_key]
42
+ @api_token ||= Spaceship::ConnectAPI::Token.create(**options[:api_key]) if options[:api_key]
43
43
  @api_token ||= Spaceship::ConnectAPI::Token.from_json_file(options[:api_key_path]) if options[:api_key_path]
44
44
  return @api_token
45
45
  end
@@ -179,7 +179,11 @@ module Deliver
179
179
 
180
180
  transporter = transporter_for_selected_team
181
181
  result = transporter.upload(package_path: 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
182
+
183
+ unless result
184
+ transporter_errors = transporter.displayable_errors
185
+ UI.user_error!("Error uploading ipa file: \n #{transporter_errors}")
186
+ end
183
187
  end
184
188
 
185
189
  def reject_version_if_possible
@@ -100,7 +100,7 @@ module Fastlane
100
100
 
101
101
  def self.api_token(params)
102
102
  params[:api_key] ||= Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY]
103
- api_token ||= Spaceship::ConnectAPI::Token.create(params[:api_key]) if params[:api_key]
103
+ api_token ||= Spaceship::ConnectAPI::Token.create(**params[:api_key]) if params[:api_key]
104
104
  api_token ||= Spaceship::ConnectAPI::Token.from_json_file(params[:api_key_path]) if params[:api_key_path]
105
105
  return api_token
106
106
  end
@@ -76,7 +76,10 @@ module Fastlane
76
76
  description: "The token session duration",
77
77
  optional: true,
78
78
  default_value: Spaceship::ConnectAPI::Token::MAX_TOKEN_DURATION,
79
- type: Integer),
79
+ type: Integer,
80
+ verify_block: proc do |value|
81
+ UI.user_error!("The duration can't be more than 1200 (20 minutes) and the value entered was '#{value}'") unless value <= 1200
82
+ end),
80
83
  FastlaneCore::ConfigItem.new(key: :in_house,
81
84
  env_name: "APP_STORE_CONNECT_API_KEY_IN_HOUSE",
82
85
  description: "Is App Store or Enterprise (in house) team? App Store Connect API cannot determine this on its own (yet)",
@@ -3,7 +3,7 @@ module Fastlane
3
3
  class BackupFileAction < Action
4
4
  def self.run(params)
5
5
  path = params[:path]
6
- FileUtils.cp(path, "#{path}.back", { preserve: true })
6
+ FileUtils.cp(path, "#{path}.back", preserve: true)
7
7
  UI.message("Successfully created a backup 💾")
8
8
  end
9
9
 
@@ -33,6 +33,7 @@ module Fastlane
33
33
  GithubApiAction.run({
34
34
  server_url: params[:server_url],
35
35
  api_token: params[:api_token],
36
+ api_bearer: params[:api_bearer],
36
37
  secure: params[:secure],
37
38
  http_method: "PUT",
38
39
  path: File.join("repos", params[:repository_name], "contents", api_file_path),
@@ -104,12 +105,21 @@ module Fastlane
104
105
  FastlaneCore::ConfigItem.new(key: :api_token,
105
106
  env_name: "FL_COMMIT_GITHUB_FILE_API_TOKEN",
106
107
  description: "Personal API Token for GitHub - generate one at https://github.com/settings/tokens",
108
+ conflicting_options: [:api_bearer],
107
109
  sensitive: true,
108
110
  is_string: true,
109
111
  code_gen_sensitive: true,
110
112
  default_value: ENV["GITHUB_API_TOKEN"],
111
113
  default_value_dynamic: true,
112
- optional: false),
114
+ optional: true),
115
+ FastlaneCore::ConfigItem.new(key: :api_bearer,
116
+ env_name: "FL_COMMIT_GITHUB_FILE_API_BEARER",
117
+ sensitive: true,
118
+ code_gen_sensitive: true,
119
+ description: "Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable",
120
+ conflicting_options: [:api_token],
121
+ optional: true,
122
+ default_value: nil),
113
123
  FastlaneCore::ConfigItem.new(key: :branch,
114
124
  env_name: "FL_COMMIT_GITHUB_FILE_BRANCH",
115
125
  description: "The branch that the file should be committed on (default: master)",
@@ -14,6 +14,11 @@ module Fastlane
14
14
  create_command << ['-output', "\"#{params[:output]}\""]
15
15
  create_command << ['-allow-internal-distribution'] if params[:allow_internal_distribution]
16
16
 
17
+ if File.directory?(params[:output])
18
+ UI.message("Deleting existing: #{params[:output]}")
19
+ FileUtils.remove_dir(params[:output])
20
+ end
21
+
17
22
  Actions.lane_context[SharedValues::XCFRAMEWORK_PATH] = params[:output]
18
23
 
19
24
  sh(create_command)
@@ -11,6 +11,7 @@ module Fastlane
11
11
  GithubApiAction.run(
12
12
  server_url: params[:server_url],
13
13
  api_token: params[:api_token],
14
+ api_bearer: params[:api_bearer],
14
15
  http_method: 'GET',
15
16
  path: "repos/#{params[:url]}/releases",
16
17
  error_handlers: {
@@ -133,7 +134,16 @@ module Fastlane
133
134
  default_value: ENV["GITHUB_API_TOKEN"],
134
135
  default_value_dynamic: true,
135
136
  description: "GitHub Personal Token (required for private repositories)",
136
- optional: true)
137
+ conflicting_options: [:api_bearer],
138
+ optional: true),
139
+ FastlaneCore::ConfigItem.new(key: :api_bearer,
140
+ env_name: "FL_GITHUB_RELEASE_API_BEARER",
141
+ sensitive: true,
142
+ code_gen_sensitive: true,
143
+ description: "Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable",
144
+ conflicting_options: [:api_token],
145
+ optional: true,
146
+ default_value: nil)
137
147
  ]
138
148
  end
139
149
 
@@ -143,8 +143,9 @@ module Fastlane
143
143
  default_value: {},
144
144
  optional: true),
145
145
  FastlaneCore::ConfigItem.new(key: :headers,
146
+ env_name: "FL_GITHUB_API_HEADERS",
146
147
  description: "Optional headers to apply",
147
- is_string: false,
148
+ type: Hash,
148
149
  default_value: {},
149
150
  optional: true),
150
151
  FastlaneCore::ConfigItem.new(key: :secure,
@@ -33,10 +33,11 @@ module Fastlane
33
33
  agv_disabled = !system([command_prefix, 'agvtool what-version', command_suffix].join(' '))
34
34
  raise "Apple Generic Versioning is not enabled." if agv_disabled && params[:build_number].nil?
35
35
 
36
+ mode = params[:skip_info_plist] ? '' : ' -all'
36
37
  command = [
37
38
  command_prefix,
38
39
  'agvtool',
39
- params[:build_number] ? "new-version -all #{params[:build_number].to_s.strip}" : 'next-version -all',
40
+ params[:build_number] ? "new-version#{mode} #{params[:build_number].to_s.strip}" : "next-version#{mode}",
40
41
  command_suffix
41
42
  ].join(' ')
42
43
 
@@ -66,6 +67,12 @@ module Fastlane
66
67
  description: "Change to a specific version. When you provide this parameter, Apple Generic Versioning does not have to be enabled",
67
68
  optional: true,
68
69
  is_string: false),
70
+ FastlaneCore::ConfigItem.new(key: :skip_info_plist,
71
+ env_name: "FL_BUILD_NUMBER_SKIP_INFO_PLIST",
72
+ description: "Don't update Info.plist files when updating the build version",
73
+ is_string: false,
74
+ type: Boolean,
75
+ default_value: false),
69
76
  FastlaneCore::ConfigItem.new(key: :xcodeproj,
70
77
  env_name: "FL_BUILD_NUMBER_PROJECT",
71
78
  description: "optional, you must specify the path to your main Xcode project if it is not in the project root directory",
@@ -39,7 +39,7 @@ module Fastlane
39
39
 
40
40
  def self.api_token(params)
41
41
  params[:api_key] ||= Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY]
42
- api_token ||= Spaceship::ConnectAPI::Token.create(params[:api_key]) if params[:api_key]
42
+ api_token ||= Spaceship::ConnectAPI::Token.create(**params[:api_key]) if params[:api_key]
43
43
  api_token ||= Spaceship::ConnectAPI::Token.from_json_file(params[:api_key_path]) if params[:api_key_path]
44
44
  return api_token
45
45
  end
@@ -85,7 +85,7 @@ module Fastlane
85
85
 
86
86
  def self.api_token(params)
87
87
  params[:api_key] ||= Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY]
88
- api_token ||= Spaceship::ConnectAPI::Token.create(params[:api_key]) if params[:api_key]
88
+ api_token ||= Spaceship::ConnectAPI::Token.create(**params[:api_key]) if params[:api_key]
89
89
  api_token ||= Spaceship::ConnectAPI::Token.from_json_file(params[:api_key_path]) if params[:api_key_path]
90
90
  return api_token
91
91
  end
@@ -5,7 +5,7 @@ module Fastlane
5
5
  path = params[:path]
6
6
  backup_path = "#{path}.back"
7
7
  UI.user_error!("Could not find file '#{backup_path}'") unless File.exist?(backup_path)
8
- FileUtils.cp(backup_path, path, { preserve: true })
8
+ FileUtils.cp(backup_path, path, preserve: true)
9
9
  FileUtils.rm(backup_path)
10
10
  UI.message("Successfully restored backup 📤")
11
11
  end
@@ -80,7 +80,7 @@ module Fastlane
80
80
 
81
81
  def self.api_token(params)
82
82
  params[:api_key] ||= Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY]
83
- api_token ||= Spaceship::ConnectAPI::Token.create(params[:api_key]) if params[:api_key]
83
+ api_token ||= Spaceship::ConnectAPI::Token.create(**params[:api_key]) if params[:api_key]
84
84
  api_token ||= Spaceship::ConnectAPI::Token.from_json_file(params[:api_key_path]) if params[:api_key_path]
85
85
  return api_token
86
86
  end